LangChain - PromptTemplate

전지환·2024년 11월 20일

딥러닝입문기

목록 보기
4/5

PromptTemplate: 프롬프트 관리의 핵심

안녕하세요 오늘은 LangChain 라이브러리의 핵심 기능 중 하나인 PromptTemplate에 대해 알아보겠습니다. LLM(대규모 언어 모델)을 활용한 애플리케이션 개발에서 프롬프트 관리는 매우 중요하기 때문에 이를 효과적으로 관하기 위해서 사용하는 것이 PromptTemplate입니다.

PromptTemplate이란?

PromptTemplate은 LLM에 전달할 프롬프트를 동적으로 생성하고 관리하는 도구입니다. 이를 통해 일관된 형식의 프롬프트를 쉽게 만들 수 있으며, 변수를 활용해 유연한 프롬프트 생성이 가능합니다.

PromptTemplate 사용하기

기본적인 PromptTemplate 사용법은 다음과 같습니다:

from langchain.prompts import PromptTemplate

template = "{city}에 대해 알려줘."
prompt = PromptTemplate.from_template(template)

result = prompt.format(city="부산")
print(result)  # 출력: 부산에 대해 알려줘.

PromptTemplate의 장점

  1. 재사용성: 동일한 템플릿을 여러 번 사용할 수 있어 코드 중복을 줄일 수 있습니다.
  2. 유지보수성: 프롬프트 형식을 한 곳에서 관리할 수 있어 수정이 용이합니다.
  3. 가독성: 프롬프트의 구조를 명확히 볼 수 있어 코드 이해가 쉬워집니다.

다양한 PromptTemplate 활용

LangChain은 여러 종류의 PromptTemplate을 제공합니다

ChatPromptTemplate

대화형 모델을 위한 템플릿으로, 시스템 메시지, 사용자 메시지, AI 메시지 등을 포함할 수 있습니다.

from langchain.prompts import ChatPromptTemplate

template = ChatPromptTemplate.from_messages([
    ("system", "당신은 {language} 번역 전문가입니다."),
    ("human", "{text}를 번역해주세요.")
])

messages = template.format_messages(language="영어", text="안녕하세요")

FewShotPromptTemplate

몇 가지 예제를 포함하여 모델에 컨텍스트를 제공하는 템플릿입니다

from langchain.prompts import FewShotPromptTemplate

examples = [
    {"input": "고양이에 대한 농담", "output": "고양이는 왜 정글에서 포커를 하지 않을까요? 치타가 너무 많아서요!"},
    {"input": "개에 대한 농담", "output": "개는 왜 그늘에 앉았을까요? 핫도그가 되기 싫어서요!"}
]

template = FewShotPromptTemplate.from_examples(
    examples,
    ["input", "output"],
    "다음 주제에 대한 농담을 만들어주세요: {input}\n농담: "
)

result = template.format(input="곰")
print(result)

마치며

PromptTemplate은 LLM 기반 애플리케이션 개발에서 프롬프트 관리를 효율적으로 할 수 있게 해주는 강력한 도구입니다. 이를 활용하면 더 체계적이고 유지보수가 쉬운 코드를 작성할 수 있습니다. 프로젝트에서 PromptTemplate을 활용해 보시기 바랍니다.

profile
언제나 탐구하는 개발자입니다.

0개의 댓글