티스토리챌린지 19

TIL 43 도전 과제

도전 구현 과제LangSmith의 Prompt Library를 참고하여 prompt engineering을 수행해보자.  RAG의 성능은 prompt 의 품질에도 많은 영향을 받는다. 이번 도전 구현과제는 prompt engineering을 해보고, prompt 실험 결과를 외부에서 잘 비교 정리할 수 있도록 코드를 고쳐보는 것이다.LangSmith의 Prompt Library 를 참고하여 프롬프트를 3개 이상 아래와 같은 파일 구조로 저장하자.예시).├── main.jupynb└── Prompts/ ├── prompt1.txt ├── prompt2.txt └── prompt3.txt 각 프롬프트를 외부에서 불러와서 실행할 수 있도록 코드를 고쳐보자.실행 결과는 자동으로 Result 디렉..

TIL 42

강의 외부에서 추가로 알게 된 내용 DATE_ADD 함수 DATE_ADD 함수는 SQL에서 날짜 또는 시간을 더하는 데 사용하는 함수다. 기준 날짜에 특정 간격(일, 월, 년 등)을 더한 결과를 반환한다. 기본 문법은 아래와 같다.DATE_ADD(date, INTERVAL expression unit)date는 기준이 되는 날짜 또는 시간이다. expression는 더할 숫자(정수)다. unit는 더할 단위로, DAY, MONTH, YEAR 등 다양한 값이 가능하다. 주요 시간 단위는 DAY(일), MONTH(월), YEAR(년), HOUR(시간), MINUTE(분), SECOND(초) 등이 있고, YEAR_MONTH, DAY_HOUR 등으로 두 단위를 동시에 다룰 수도 있다. 예시를 통해 자세히 알아보..

TIL 41

강의 외부에서 추가로 알게 된 내용eval() 함수Python에서 문자열 형태로 작성된 표현식을 실행하여 그 결과를 반환하는 함수다. 즉, 코드나 수식을 문자열로 받아서 실행시켜 결과를 돌려준다. 예를 들어보자.# 기본적인 사용 예시expression = "3 + 5 * 2"result = eval(expression) # 문자열 안의 수식을 계산하여 실행print(result) # 출력: 13위 코드에서 eval()은 문자열 "3 + 5 * 2"를 실제 코드처럼 계산해서 결과값인 13을 반환한다. 그러나 eval()은 보안상의 위험이 있을 수 있다. 입력된 문자열이 안전한지 확인하지 않으면 의도치 않은 코드를 실행하여 보안 문제가 발생할 수 있다. 예를 들어, 악의적인 코드가 포함된 문자열을 eva..

TIL 40

이번에는 영어 텍스트를 입력받아서 한국어로 번역하고, 해당 번역문을 한국어 음성으로 변환해서 재생하는 프로그램을 만들어볼 것이다. 우리는 이전에 배운 페이스북 번역 모델과, ElevenLabs의 음성 합성 API를 사용해서, 번역과 음성 생성을 처리하고, 이걸 PyQt로 사용자 친화적인 인터페이스를 통해 제공할 예정이다. 바로 시작해보자.필요한 라이브러리들을 import하자. 이 중 pydub는 음성을 재생하거나 미디어 파일을 관리할 때 유용한 라이브러리 중 하나다.import osimport requestsfrom dotenv import load_dotenvfrom PyQt5 import QtWidgetsfrom PyQt5.QtCore import QUrlfrom PyQt5.QtMultimedia i..

TIL 39 필수 과제

5. 벡터 임베딩 생성OpenAI 모델을 사용했기 때문에 OpenAIEmbeddings를 이용해 텍스트를 벡터로 변환할 벡터 임베딩을 생성했다. langchain_openai 라이브러리에서 OpenAIEmbeddings 클래스를 불러온다.from langchain_openai import OpenAIEmbeddings# OpenAI 임베딩 모델 초기화embeddings = OpenAIEmbeddings(model="text-embedding-ada-002")text-embedding-ada-002 모델을 사용하여 텍스트 데이터를 임베딩 벡터로 변환한다. 이 모델은 텍스트 데이터를 고차원 벡터로 변환하는 데 사용된다. 자연어 처리(NLP) 작업에서 텍스트를 벡터 공간으로 변환하여, 유사도 검색, 클러스터링..

TIL 38 개인 과제

LLM 과 RAG를 활용하여 AI 챗봇을 구현해보자 1. 사용환경 준비 환경 변수에서 api 키를 가져오는 과정에서 문제가 발생했다. 처음에 작성한 코드는 아래와 같다.import openaiimport osfrom dotenv import load_dotenv# .env 파일 로드load_dotenv() # .env 파일을 로드하여 환경 변수들을 설정한다.# .env 파일에서 api 키 가져오기API_KEY = os.getenv('sparta_api_key')# openai 클라이언트에 API 키 설정openai.api_key = API_KEY이 코드를 통해 api 키를 가져왔고, 전체 코드를 실행하니 자꾸 오류가 발생했다.openai.OpenAIError: The api_key client opt..

TIL 37

RAG vs Prompt engineering vs Fine tuning각각이 무엇이고, 차이점이 무엇인가?이 3가지 개념은 생성형 AI 모델을 최적화하거나, 특정 목적에 맞춰 성능을 높이기 위한 방법들이다.RAGRetrieval-Augmented Generation. 검색-증강 생성외부 소스에서 가져온 사실을 통해 생성형 AI 모델의 정확성과 신뢰성을 향상시키는 기술기존 정보 검색 시스템(예: 검색 및 데이터베이스)의 강점과 생성형 대규모 언어 모델(LLM)의 기능을 결합한 AI 프레임워크개념 : 생성형 AI 모델이 정보를 생성할 때, 사전에 학습된 지식만을 사용하는 것이 아니라, 외부 데이터베이스에서 관련 정보를 검색하고, 이를 바탕으로 답변을 생성하는 방식이다.예) 고객 지원 챗봇이 실시간으로 최신..