Langchain의 모델
템플릿을 활용하는 형태는 다음의 예로 확인해볼 수 있다.
from langchain_core.prompts import PromptTemplate
information="""Carter is..... """
summary_template="""내용을 요약해줘"""
summary_prompt_template=PromptTemplate(input_variables=["information"], template=summary_template)
#PromptTemplate는 명령과 템플릿을 담는다.
llm=ChatOpenAI(temperature=0, model_name="gpt-3.5-turbo")
chain= summary_prompt_template|llm
chain.invoke(input={"information":information})
PromptTemplate 메소드, ChatOpenAI 메소드와 Chain |이 핵심적인 형태다.
PromptTemplate
- 프롬프트 템플릿은 LLM의 템플릿 예) {X} X=FPV 처럼 입력과 매개변수를 받는다. 위의 예를 본다면 input_variable(요약을할지, 특징을 뽑을 지 등등의 요청)과 template(말뭉치)이 입력이 된다.
Fewshot도 가능
from langchain_core.prompts import FewShotPromptTemplate
ChatOpenAI
- 모델 사용과 관련된 부분으로 OpenAI를 사용할때에 해당. 당연히 이전에 .env에 OPENAI_API_KEY는 입력해 주어야 한다. from langchain_openai import ChatOpenAI로 불러준다.
인스턴스를 생성할때는
llm=ChatOpenAI(model='gpt-4o", temperature=0, max_tokens=None, timeout=None, max_retries=2, api_key=".env에 입력 안했을 경우")
호출할때는 llm.invoke(msg)
msg=["번역해줘", "나는 어쩌구~~~"]
Chain
체인은 |로 파이프라인처럼 처리한다.
chain = prompt | model | StrOutputParser()
.pipe() 메소드를 사용하기도 한다.
예를 들자면
chain=(RunnableParallel({"joke":chain}).pipe(analysis_prompt).pipe(model).pipe(StrOutputParser()))