■ FewShotPromptTemplate 클래스의 생성자에서 examples/example_prompt/suffix/input_variables 인자를 사용해 FewShotPromptTemplate 객체를 만드는 방법을 보여준다.
▶ 예제 코드 (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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
from langchain_core.prompts import PromptTemplate from langchain_core.prompts.few_shot import FewShotPromptTemplate exampleDictionaryList = [ { "question" : "스티브 잡스와 아인슈타인 중 누가 더 오래 살았습니까?", "answer" : """이 질문에 추가 질문이 필요합니까? : 예 추가 질문 : 스티브 잡스는 몇 살에 사망했습니까? 중간 답변 : 스티브 잡스는 56세에 사망했습니다. 추가 질문 : 아인슈타인은 몇 살에 사망했습니까? 중간 답변 : 아인슈타인은 76세에 사망했습니다. 최종 답변 : 아인슈타인 """, }, { "question" : "네이버의 창립자는 언제 태어났습니까?", "answer" : """이 질문에 추가 질문이 필요합니까? : 예 추가 질문 : 네이버의 창립자는 누구입니까? 중간 답변 : 네이버는 이해진에 의해 창립되었습니다. 추가 질문 : 이해진은 언제 태어났습니까? 중간 답변 : 이해진은 1967년 6월 22일에 태어났습니다. 최종 답변 : 1967년 6월 22일 """, }, { "question" : "율곡 이이의 어머니가 태어난 해의 통치하던 왕은 누구입니까?", "answer" : """이 질문에 추가 질문이 필요합니까? : 예 추가 질문 : 율곡 이이의 어머니는 누구입니까? 중간 답변 : 율곡 이이의 어머니는 신사임당입니다. 추가 질문 : 신사임당은 언제 태어났습니까? 중간 답변 : 신사임당은 1504년에 태어났습니다. 추가 질문 : 1504년에 조선을 통치한 왕은 누구입니까? 중간 답변 : 1504년에 조선을 통치한 왕은 연산군입니다. 최종 답변 : 연산군 """, }, { "question" : "올드보이와 기생충의 감독이 같은 나라 출신입니까?", "answer" : """이 질문에 추가 질문이 필요합니까? : 예 추가 질문 : 올드보이의 감독은 누구입니까? 중간 답변 : 올드보이의 감독은 박찬욱입니다. 추가 질문 : 박찬욱은 어느 나라 출신입니까? 중간 답변 : 박찬욱은 대한민국 출신입니다. 추가 질문 : 기생충의 감독은 누구입니까? 중간 답변 : 기생충의 감독은 봉준호입니다. 추가 질문 : 봉준호는 어느 나라 출신입니까? 중간 답변 : 봉준호는 대한민국 출신입니다. 최종 답변 : 예 """, }, ] promptTemplate = PromptTemplate.from_template("Question :\n{question}\nAnswer :\n{answer}") fewShotPromptTemplate = FewShotPromptTemplate( examples = exampleDictionaryList, example_prompt = promptTemplate, suffix = "Question :\n{question}\nAnswer :", input_variables = ["question"] ) fewShotPromptString = fewShotPromptTemplate.format(question = "Google이 창립된 연도에 Bill Gates의 나이는 몇 살인가요?") print(fewShotPromptString) """ Question : 스티브 잡스와 아인슈타인 중 누가 더 오래 살았습니까? Answer : 이 질문에 추가 질문이 필요합니까? : 예 추가 질문 : 스티브 잡스는 몇 살에 사망했습니까? 중간 답변 : 스티브 잡스는 56세에 사망했습니다. 추가 질문 : 아인슈타인은 몇 살에 사망했습니까? 중간 답변 : 아인슈타인은 76세에 사망했습니다. 최종 답변 : 아인슈타인 Question : 네이버의 창립자는 언제 태어났습니까? Answer : 이 질문에 추가 질문이 필요합니까? : 예 추가 질문 : 네이버의 창립자는 누구입니까? 중간 답변 : 네이버는 이해진에 의해 창립되었습니다. 추가 질문 : 이해진은 언제 태어났습니까? 중간 답변 : 이해진은 1967년 6월 22일에 태어났습니다. 최종 답변 : 1967년 6월 22일 Question : 율곡 이이의 어머니가 태어난 해의 통치하던 왕은 누구입니까? Answer : 이 질문에 추가 질문이 필요합니까? : 예 추가 질문 : 율곡 이이의 어머니는 누구입니까? 중간 답변 : 율곡 이이의 어머니는 신사임당입니다. 추가 질문 : 신사임당은 언제 태어났습니까? 중간 답변 : 신사임당은 1504년에 태어났습니다. 추가 질문 : 1504년에 조선을 통치한 왕은 누구입니까? 중간 답변 : 1504년에 조선을 통치한 왕은 연산군입니다. 최종 답변 : 연산군 Question : 올드보이와 기생충의 감독이 같은 나라 출신입니까? Answer : 이 질문에 추가 질문이 필요합니까? : 예 추가 질문 : 올드보이의 감독은 누구입니까? 중간 답변 : 올드보이의 감독은 박찬욱입니다. 추가 질문 : 박찬욱은 어느 나라 출신입니까? 중간 답변 : 박찬욱은 대한민국 출신입니다. 추가 질문 : 기생충의 감독은 누구입니까? 중간 답변 : 기생충의 감독은 봉준호입니다. 추가 질문 : 봉준호는 어느 나라 출신입니까? 중간 답변 : 봉준호는 대한민국 출신입니다. 최종 답변 : 예 Question : Google이 창립된 연도에 Bill Gates의 나이는 몇 살인가요? Answer : """ |
※ pip install langchain 명령을 실행했다.