LangChain 의 기초는 Promp -> LLM -> Output 으로 구성되어 있다.
LangChain 의 프로그래밍 방법도 이러한 구조와 동일하다.
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
prompt = ChatPromptTemplate.from_template("tell me a short joke about {topic}")
model = ChatOpenAI(model="gpt-4")
output_parser = StrOutputParser()
chain = prompt | model | output_parser
chain.invoke({"topic": "ice cream"})
# Prompt
Prompt 를 쉽게 만들기 위해서 PromptTemplate 이 존재한다.
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_template("tell me a short joke about {topic}")
# LLM Model
다양한 모델의 객체를 생성한다.
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-4")
# Output 파싱
결과값을 쉽게 파싱할 수 있다.
from langchain_core.output_parsers import StrOutputParser
output_parser = StrOutputParser()
# 모두 모아서
최종적으로 각 모듈을 파이프( | )의 개념을 통해서 연결한다.
* Pipe는 어떤 것의 output 을 다음 프로세스의 input 으로 넣는 개념인데, LangChain에서도 이 컨셉을 활용한다.
* 즉 prompt를 Model로 넣고, Model의 결과값을 output_parser의 입력값으로 넣는다.
chain = prompt | model | output_parser
#실행
chain.invoke({"topic": "ice cream"})