반응형
안녕하세요. 위기의 코딩맨입니다.
오늘은 RAG의 langchain프레임 워크에서 FewShotPromptTemplate에 대해서 알아보겠습니다~!
요즘 RAG에 관련된 내용을 공부하고있는데 아주 재밌더라구요.

[ FewShotPromptTemplate ]
FewShotPromptTemplate는 간단하게 말하면 몇가지 사례를 주고,
사용자가 질의를 입력하면, 해당 사례를 기반으로 프롬프트를 구성하여 답변을 주는 것으로 보시면 됩니다.
예시를 보겠습니다.
- 질문 : "아이언맨의 실제 이름이 뭐야?"
- 답변 : "토니 스타크"
- 질문 : "캡틴아메리카의 실제 이름이 뭐야?"
- 답변 : "스티브 로저스"
이런식으로 답과 질의를 생성하여 사례를 만들고 프롬프트에 적용하면
"블랙위도우의 실제 이름이 뭐야??"의 질문을 하게되면 "나타샤 로마노프"의 답변을 받게될 것입니다!
- Few-shot prompting - 사례를 주고 답변을 받는 기법
- FewShotPromptTemplate - 파이썬에서 사용되는 함수
import os
from dotenv import load_dotenv
from langchain import FewShotPromptTemplate, PromptTemplate
from langchain_community.chat_models import ChatOpenAI
from langchain.chains import LLMChain
load_dotenv()
api_key = os.getenv("Your Key")
examples = [
{"question": "아이언맨의 진짜 이름은?", "answer": "토니 스타크"},
{"question": "캡틴 아메리카의 진짜 이름은??", "answer": "스티브 로저스"},
]
example_template = PromptTemplate(
input_variables=["question", "answer"],
template="Q: {question}\nA: {answer}\n"
)
few_shot = FewShotPromptTemplate(
examples=examples,
example_prompt=example_template,
prefix="아래는 슈퍼히어로 본명 예시입니다.\n\n",
suffix="Q: {user_question}\nA:",
input_variables=["user_question"],
example_separator="\n"
)
llm = ChatOpenAI(
model_name="your modeli",
temperature=0.7,
openai_api_key=api_key
)
chain = LLMChain(llm=llm, prompt=few_shot, verbose=True)
if __name__ == "__main__":
answer = chain.run(user_question="블랙 위도우의 진짜 이름은??")
print(answer)
코드의 순서는
- Key 불러오기
- 예제 생성
- 템플릿 생성
- few_shot 설정
- llm 설정
- chin 설정
결과는 제가 생각한 결과와 동일하게
"나타샤 로마노프"가 나왔습니다.

앞으로도 계속 RAG와 Langchain에 대해서
공부해보도록 하겠습니다.

반응형
'기타' 카테고리의 다른 글
| [We-Co] RAG - LangChain , return_source_documents (0) | 2025.07.16 |
|---|---|
| [We-Co] RAG 검색과 응답 최적화 - Chunking (0) | 2025.07.08 |
| [We-Co] RAG(Retrieval-Augmented Generation) - 검색, 문서 (1) | 2025.06.25 |
| [We-Co] Jenkins, Gitlab 연동(Docker) [3] (0) | 2025.02.07 |
| [We-Co] Jenkins, Gitlab 연동(Docker) [2] (0) | 2025.02.05 |