안녕하세요 오늘은 LangChain 라이브러리의 핵심 기능 중 하나인 PromptTemplate에 대해 알아보겠습니다. LLM(대규모 언어 모델)을 활용한 애플리케이션 개발에서 프롬프트 관리는 매우 중요한데PromptTemplate을 사용하면 이를 효과적으로 할 수 있습니다.
PromptTemplate은 LLM에 전달할 프롬프트를 동적으로 생성하고 관리하는 도구입니다. 이를 통해 일관된 형식의 프롬프트를 쉽게 만들 수 있고 변수를 활용해 유연한 프롬프트 생성이 가능합니다
기본적인 PromptTemplate 사용법은 다음과 같습니다:
from langchain.prompts import PromptTemplate
template = "{city}에 대해 알려줘."
prompt = PromptTemplate.from_template(template)
result = prompt.format(city="부산")
print(result) # 출력: 부산에 대해 알려줘.
이 예제에서 {city}는 동적으로 변경될 수 있는 변수입니다
LangChain은 여러 종류의 PromptTemplate을 제공합니다:
대화형 모델을 위한 템플릿으로, 시스템 메시지, 사용자 메시지, AI 메시지 등을 포함할 수 있습니다[3].
from langchain.prompts import ChatPromptTemplate
template = ChatPromptTemplate.from_messages([
("system", "당신은 {language} 번역 전문가입니다."),
("human", "{text}를 번역해주세요.")
])
messages = template.format_messages(language="영어", text="안녕하세요")
몇 가지 예제를 포함하여 모델에 컨텍스트를 제공하는 템플릿입니다[5].
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을 활용해 보시기 바랍니다!
다음 포스트에서는 LangChain의 다른 핵심 기능들에 대해 알아보겠습니다. 궁금한 점이나 의견이 있으시면 댓글로 남겨주세요. 감사합니다!
Citations:
[1] https://rudaks.tistory.com/entry/langchain-Prompt-Template-%EC%82%AC%EC%9A%A9%EB%B2%95
[2] https://pkgpl.org/2023/09/17/langchain-prompt-template/
[3] https://yeonjinj.tistory.com/25
[4] https://wikidocs.net/233351
[5] https://wikidocs.net/252230