■ ChatOpenAI 클래스에서 FewShotPromptTemplate 객체를 사용해 채팅하는 방법을 보여준다.
※ OPENAI_API_KEY 환경 변수 값은 .env 파일에 정의한다.
▶ main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
from dotenv import load_dotenv from langchain_core.prompts import PromptTemplate from langchain_core.prompts.few_shot import FewShotPromptTemplate from langchain_openai import ChatOpenAI load_dotenv() exampleList = [ { "question" : "아이유로 삼행시 만들어주세요.", "answer" : """ 아 : 아이유는 이 : 이런 강의를 들을 이 유 : 유가 없다. """ }, { "question" : "김민수로 삼행시를 만들어주세요.", "answer" : """ 김 : 김치는 맛있다. 민 : 민달팽이도 좋아하는 김치! 수 : 수억을 줘도 김치는 내꺼! """ } ] examplePromptTemplate = PromptTemplate(input_variables = ["quesiton", "answer"], template = "Question : {question}\n{answer}") fewShotPromptTemplate = FewShotPromptTemplate( examples = exampleList, example_prompt = examplePromptTemplate, suffix = "Question : {input}", input_variables = ["input"] ) chatOpenAI = ChatOpenAI(model_name = "gpt-4o-mini") runnableSequence = fewShotPromptTemplate | chatOpenAI responseAIMessage = runnableSequence.invoke({"input" : "홍길동으로 삼행시를 만들어주세요."}) print(responseAIMessage.content) |
▶ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
annotated-types==0.7.0 anyio==4.4.0 certifi==2024.8.30 charset-normalizer==3.3.2 colorama==0.4.6 distro==1.9.0 h11==0.14.0 httpcore==1.0.5 httpx==0.27.2 idna==3.8 jiter==0.5.0 jsonpatch==1.33 jsonpointer==3.0.0 langchain-core==0.2.39 langchain-openai==0.1.23 langsmith==0.1.117 openai==1.44.1 orjson==3.10.7 packaging==24.1 pydantic==2.9.1 pydantic_core==2.23.3 python-dotenv==1.0.1 PyYAML==6.0.2 regex==2024.7.24 requests==2.32.3 sniffio==1.3.1 tenacity==8.5.0 tiktoken==0.7.0 tqdm==4.66.5 typing_extensions==4.12.2 urllib3==2.2.2 |
※ pip install python-dotenv langchain-openai 명령을 실행했다.