랭체인 문서에 따르면 언어 모델은 크게 두가지로 나눌 수 있다. 하나가 LLM 클래스, 다른 하나가 Chat Model이다.
전자는 단일 요청에 대한 복잡한 출력에 적합하고, 후자는 사용자와의 상호작용을 통한 연속적인 대화 관리에 더 적합하다.
이 클래스는 입력으로 메시지의 배열을 받는다. 그리고 하나의 메시지를 반환함.
먼저 LLM부터 실습해보자.
from langchain_openai import OpenAI
llm = OpenAI()
result = llm.invoke("한국의 대표적인 관광지 3군데 추천해봐")
result
그냥 지피티한테 물어보는 거랑 다름없다.
이번엔 ChatModel을 실습해보자.
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
# 객체 모델 생성
chat = ChatOpenAI()
# 프롬프트 생성
chat_prompt = ChatPromptTemplate.from_messages([
("system", "이 시스템은 여행 전문가 입니다."),
("user", "{user_input}"),
])
# 체인 생성
chain = chat_prompt | chat
# 체인 실행
chain.invoke({"user_input": "한국의 대표 관광지 3가지를 추천해주세요"})