Predict Messages

샤워실의 바보·2024년 5월 21일

GPT

목록 보기
3/11

위 코드는 LangChain 라이브러리를 사용하여 대화형 AI 모델을 설정하고, 특정 질문에 대한 응답을 생성하는 과정입니다. 코드를 단계별로 설명하겠습니다.

1. 필요한 라이브러리 및 클래스 임포트

from langchain.chat_models import ChatOpenAI
from langchain.prompts import PromptTemplate, ChatPromptTemplate
  • ChatOpenAI: OpenAI의 챗 모델을 사용하기 위한 클래스.
  • PromptTemplate: 일반 템플릿을 정의하기 위한 클래스.
  • ChatPromptTemplate: 대화형 프롬프트를 정의하기 위한 클래스.

2. 챗 모델 초기화

chat = ChatOpenAI(temperature=0.1)
  • ChatOpenAI 클래스의 인스턴스를 생성합니다.
  • temperature는 생성된 텍스트의 창의성 수준을 조절합니다. 낮은 값(0.1)은 더 결정적인 응답을 의미합니다.

3. 프롬프트 템플릿 생성 및 사용

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 모델에 전달하고, 응답을 예측합니다.

4. 대화형 프롬프트 템플릿 생성 및 사용

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 모델에 질문을 전달하여 응답을 생성하는 과정을 보여줍니다. 첫 번째 템플릿은 일반적인 질문을 위해 사용되고, 두 번째 템플릿은 대화형 설정을 사용하여 지정된 언어로 응답하는 지리 전문가 역할을 수행합니다.

profile
공부하는 개발자

0개의 댓글