1. LangChain의 구조
- LLM: 생성 모델의 핵심 구성 요소
-ex) GPT-3.5, LLAMA, StableVicuna 등등
- Prompt: LLM에 지시하는 명령문
- Index: LLM이 문서를 쉽게 탐색할 수 있도록 구조화하는 모듈
- ex) Document Loaders, Text Splitter, Vector stores, Retrievers
- Memory: 채팅 이력을 기억하고, 그 중 유용한 정보를 Agent에 저장하여 다음 대화, 작업을 결정하는 용도로 사용
- Chain: LLM 사슬을 형성하여, 연속적인 LLM 호출이 가능하도록 하는 핵심 요소
- Agents: LLM이 기존 Prompt Template으로 수행할 수 없는 작업을 가능케하는 모듈
- ex) 웹 검색, SQL Query 작성 등의 툴을 자체적으로 판단하여 가동
2. LangChain의 기본 작동 원리 예시 - PDF 챗봇 구축 시
1. 문서 업로드: PyPDFLoader를 활용한 문서 가져오기
2. 문서 분할: PDF 문서를 Text Splitter로 여러 문서(Chunk)로 분할
- why? LLM에는 Token 제한이 있어서
3. 문서 임베딩: 분할된 텍스트를 Vector로 임베딩 후, 고차원의 Vector store에 위치시킴
4. 임베딩 검색: Vectorstore Retriever로 질문과 연관성 높은 문서 추출
5. 답변 생성: QA Chain으로 답변 생성 --> Fine Tuning이 아님
1) Question + Retriever를 통해 가져온 Text를 프롬프트 1을 만듬
2) 이를 LLM에 전달하여 두번째 텍스트 프롬프트 2를 만듬
3) 프롬프트 2를 LLM에 다시 전달하여 답변 제시