위 코드는 LangChain 라이브러리를 사용하여 대화형 AI 모델을 설정하고, 특정 질문에 대한 응답을 생성하는 과정입니다. 코드를 단계별로 설명하겠습니다.
from langchain.chat_models import ChatOpenAI
from langchain.prompts import PromptTemplate, ChatPromptTemplate
ChatOpenAI: OpenAI의 챗 모델을 사용하기 위한 클래스.PromptTemplate: 일반 템플릿을 정의하기 위한 클래스.ChatPromptTemplate: 대화형 프롬프트를 정의하기 위한 클래스.chat = ChatOpenAI(temperature=0.1)
ChatOpenAI 클래스의 인스턴스를 생성합니다.temperature는 생성된 텍스트의 창의성 수준을 조절합니다. 낮은 값(0.1)은 더 결정적인 응답을 의미합니다.template = PromptTemplate.from_template(
"What is the distance between {country_a} and {country_b}",
)
PromptTemplate.from_template 메서드를 사용하여 프롬프트 템플릿을 생성합니다.{country_a}와 {country_b}를 사용하여 두 나라 간의 거리를 묻는 질문을 정의합니다.prompt = template.format(country_a="Mexico", country_b="Thailand")
template.format 메서드를 사용하여 템플릿에 실제 값을 채워 넣습니다.country_a를 "Mexico"로, country_b를 "Thailand"로 설정합니다.chat.predict(prompt)
chat.predict 메서드를 사용하여 생성된 프롬프트를 AI 모델에 전달하고, 응답을 예측합니다.template = ChatPromptTemplate.from_messages(
[
("system", "You are a geography expert. And you only reply in {language}."),
("ai", "Ciao, mi chiamo {name}!"),
(
"human",
"What is the distance between {country_a} and {country_b}. Also, what is your name?",
),
]
)
ChatPromptTemplate.from_messages 메서드를 사용하여 대화형 프롬프트 템플릿을 생성합니다.system 메시지는 AI 모델에게 역할을 부여합니다. 여기서는 지리 전문가 역할을 하고, {language}로 지정된 언어로만 응답하도록 지시합니다.ai 메시지는 AI 모델이 스스로를 소개하는 메시지입니다. {name}으로 지정된 이름을 사용합니다.human 메시지는 사용자가 질문을 입력하는 부분입니다. 두 나라 간의 거리와 AI의 이름을 묻습니다.prompt = template.format_messages(
language="Greek",
name="Socrates",
country_a="Mexico",
country_b="Thailand",
)
template.format_messages 메서드를 사용하여 템플릿에 실제 값을 채워 넣습니다.language를 "Greek"으로, name을 "Socrates"로, country_a를 "Mexico"로, country_b를 "Thailand"로 설정합니다.chat.predict_messages(prompt)
chat.predict_messages 메서드를 사용하여 생성된 메시지 프롬프트를 AI 모델에 전달하고, 응답을 예측합니다.이 코드는 LangChain 라이브러리를 사용하여 두 가지 프롬프트 템플릿을 정의하고, 이를 사용하여 AI 모델에 질문을 전달하여 응답을 생성하는 과정을 보여줍니다. 첫 번째 템플릿은 일반적인 질문을 위해 사용되고, 두 번째 템플릿은 대화형 설정을 사용하여 지정된 언어로 응답하는 지리 전문가 역할을 수행합니다.