프롬프트를 구성할때는 LLM에게 지시, 예시, 맥락제공, 질문 등의 언어행위등을 한다고 생각하자.
코랩에서 실습해보자.
from langchain_core.prompts import PromptTemplate
# 'name'과 'age'라는 두 개의 변수를 사용하는 프롬프트 템플릿 정의
template_text = "안녕 내 이름은 {name}이고 나이는 {age}살이야."
# PromptTemplate 인스턴스 생성
prompt_template = PromptTemplate.from_template(template_text)
# 템플릿 빈칸 채워서 프롬프트 완성
filled_prompt = prompt_template.format(name="홍길동", age=30)
filled_prompt
프롬프트가 완성되어있다.
프롬프트는 문자열 기반이기 때문에 파이썬의 문자열 연산자를 사용할 수 있다.
위 예시는 파이썬의 format()
메서드를 이용해 빈칸을 채운 예시임.
이전의 템플릿은 메시지 하나를 바탕으로 하나의 응답을 생성해내는 프롬프트 템플릿이었다면, ChatPromptTemplate
은 대화형 상황에서 여러 메시지를 배열로 만들어서 전달해 하나의 응답을 만들어내는데 쓰인다.
이 여러 메시지는 역할(role)과 내용(content)로 구성된다.
메시지 종류