LangChain 실습 1 - Prompt
응답 디버깅을 위해 LangSmith 연동 먼저 할 것
1. Simple Chain(Prompt+LLM+OutputParser)

사용자 입력값을 바탕으로 프롬프트를 생성하고, 생성한 Prompt를 Chain을 통해 LLM에게 전달하고, LLM의 응답결과를 Chain을 통해 Output Parser로 전달하는 과정.
1) PromptTemplate 설정
PromptTemplate ? 사용자의 입력값을 활용하여 문자열 프롬프트를 만드는 데 사용되는 LangChain 기본 API.
2) LLM 설정
프롬프트를 실행할 LLM 모델 설정
3) OutputParser 설정
LLM응답을 간단한 문자열로 변환하는 응답파서
그밖에 JsonParser, PDFParser, ListParser등 변환하고자 하는 데이터에 맞는 다양한 Paraser클래스가 존재한다
4) Chain 설정
LCEC사용하여 체인 생성
5) Chain 실행
2. Chain Invoke Methods
사용자가 정의한 체인을 실행할 수 있는 메서드들
1) invoke / ainvoke(동기/비동기)
체인을 호출하고 결과를 반환하는 함수
2) stream / astream
체인을 호출하고 결과값을 토큰 형태로 스트리밍 하는 함수
3) batch / abatch
입력 목록에 대해 체인을 호출하고 목록형태로 값을 반환하는 함수
3. PromptTemplate
1) PromptTemplate
사용자의 입력값을 활용하여 문자열 프롬프트를 만드는 데 사용되는 LangChain 기본 API.
1. format : 탬플릿에 값을 채워서 문자열을 생성하는 함수
2. input_variables : 템플릿 문자열의 변수와 비교하여 올바른 변수를 사용 중인지 유효성 검사를 하기 위해 사용하는 설정
4. prompt 결합
PromptTemplate은 문자열 기반 프롬프트를 생성하기 때문에 +연산자를 활용하여 여러 템플릿을 연결할 수 있다.
템플릿 + 템플릿 (O) , 템플릿 + 문자열 (O)
2) ChatPromptTemplate
대화목록(Chat)을 입력하여 응답결과를 생성할 때 사용하는 템플릿
대화형 프롬프트, 챗봇 개발시 선택하는 프롬프트
메세지는 튜플형태로 구성되며 (Role, Message)의 구조로 이루어져 있다.
3) MessagePlaceholder
입력값으로 대화목록을 넣어야 하는 경우 사용하는 컴포넌트
4)FewShotPromptTemplate
FewShot Prompt로 템플릿 설계시 사용하는 컴포넌트
5) Example Selector
2022
주어진 예제들에서 사용자의 입력과 가장 유사한 예제를 선택하도록 도와주는 컴포넌트
실습에서 사용할 SemanticSimilarityExampleSelector는 의미적 유사성(Semantic Similarity)을 기준으로 예제를 선택한다.
유사도 분석에 대해서 여기에 설명하기
6) Langchain Hub를 활용한 Prompt 형상관리
Last updated
