1. RAG를 LangGraph로 구현하기- 간단한 RAG- Vector DB를 tool로 사용 1) 간단한 RAG- State 정의class State(TypedDict): messages: Annotated[list, add_messages] - Vector DB 정의단순 프롬프트만 응답형태from langchain.document_loaders import CSVLoader# CSV 파일 로드file_name = "sample.csv"csv_loader = CSVLoader(file_path= path + file_name)documents_csv = csv_loader.load()# 벡터 DB 정의embedding = OpenAIEmbeddings(model="")vectorstore = C..

Memory - AI Agent가 이전 상태나 대화기록을 유지하고 재사용할 수 있도록 하는 기능- 유저와 AI간의 대화를 저장하고 지속적인 맥락을 유지- 단기기억과 장기기억 정보를 제어하기 위한 로직을 넣을 수 있음. 메모리의 종류 2가지- Short-term memory: MemorySaver => memory- Long-term memory: SqliteSaver => file, dbMemorySaver- LangGraph에서 제공하는 체크포인트 저장소- 그래프 실행 중 생성되는 state를 자동으로 저장하고 필요시 복원 할 수 있게해주는 메모리 기반 저장소 1. 기억력 없는 chatbot 1) State 정의class State(TypedDict): messages: Annotated[lis..

메모리란 무엇인가?대화의 맥락을 이어가려면 챗봇은 이전대화를 기억하고 이전 질문 답변을 메모리에 저장하고 이를 프롬프토에 포함해야한다.해결방법: 메모리를 사용하기위해서 체인으로 엮어야한다. 1. 메모리가 없을 때- 먼저 메모리가 없을 때 예시를 보며 메모리의 필요성을 이해하자llm = ChatOpenAI(model_name = 'gpt-4o-mini', temperature=0.5)result = llm.invoke("안녕? 나는 정훈이야.")print(result.content)result = llm.invoke("내 이름이 뭐라고?")print(result.content) 이런식으로 챗봇이 메모리에 대한 옵션을 주지않으면 기억을 하지 못한다. 이제 메모리의 종류를 알아보자. 2. 메모리의 종류 메..

프롬프트란 인간이 인공지능에게 전달하는 지시문으로 모델의 응답을 결정짓는 핵심 입력 역할: LLM에게 무엇을 할지 설명PromptTemplate: 변수 기반 동적 프롬프트 생성ChatPromptTemplate: 여러 메시지를 구조화하여 대화 설계 1. PromptTemplateLangChain에서 프롬프트를 템플릿 형태로 추상화한 클래스사용자 입력을 동적으로 삽입할 수 있는 문자열 포맷 객체유동적 템플릿 생성가능, 변수만 바꿔서 다양한 결과 실험 가능 1) PromptTemplate 활용하여 다국어 번역기 만들기prompt = PromptTemplate( input_variables=["text", "language"], template="{language} 언어로 번역해 : {text}..
LangChain:- LangChain은 대규모 언어 모델을 활용하여 체인을 구성- 복잡한 작업을 자동화하고 쉽게 수행할 수 있도록 돕는 라이브러리- LLM 프레임워크라고 보면됨 1. OpenAI 모델 활용 OpenAI에서 제공하는 모델 사용: gpt-4o-mini, whisper-1여러 모델을 쉽게 전환하고 비교할 수있음 1) 모델선언chat = ChatOpenAI(model="") 2) 모델사용chat.invoke("세계에서 가장 큰 산은?") 3) 역할부여해서 모델 사용하기# 역할부여sys_role = '당신은 애국심을 가지고 있는 건전한 대한민국 국민입니다.'question = "독도는 어느나라 땅이야?"result = chat.invoke([HumanMessage(content = questio..
Fine-Tuning-사전 훈련된 모델을 특정 작업이나 데이터셋에 맞게 미세 조정하는 과정 파인튜닝 수행 절차- 사전 훈련된 모델 선택- 데이터 준비- 모델 수정- 추가 학습 1. 데이터 준비 특정 작업에 사용할 데이터 준비사전 훈련된 모델과 호환되는 형태로 전처리NLP: 텍스트 토큰화컴퓨터 비전: 이미지를 적절한 크기로 resize 1) Dataset 만들기: train, valtrain, val = train_test_split(data, test_size=0.2, random_state=42) 데이터셋 만들기from datasets import Dataset# df로 부터 텐서 데이터셋 만들기train_ts = Dataset.from_pandas(train)val_ts = Dataset.from_..