랭체인 문서에 따르면 언어 모델은 크게 두가지로 나눌 수 있다. 하나가 LLM 클래스, 다른 하나가 Chat Model이다.

전자는 단일 요청에 대한 복잡한 출력에 적합하고, 후자는 사용자와의 상호작용을 통한 연속적인 대화 관리에 더 적합하다.

Chat Model

이 클래스는 입력으로 메시지의 배열을 받는다. 그리고 하나의 메시지를 반환함.

먼저 LLM부터 실습해보자.

from langchain_openai import OpenAI

llm = OpenAI()

result = llm.invoke("한국의 대표적인 관광지 3군데 추천해봐")

result

image.png

그냥 지피티한테 물어보는 거랑 다름없다.

이번엔 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가지를 추천해주세요"})

image.png