티스토리 뷰
강변 찻집
강가에 서 있는 찻집
가을 바람이 스치는 창가
차 한 잔에 가을의 향기를 담아
나는 혼자 앉아서 생각에 잠긴다
찻집 주인은 웃으며 차를 대접하고
강물이 흐르는 소리가 들려와
가을 날씨에 어울리는 이야기를 나눈다
찻집 안은 따뜻한 빛으로 가득 차오르고
찻잔을 들고 강변을 바라보면
가을 하늘에 떠다니는 구름들이
차가운 강물을 따라 흘러가는 모습
나의 마음도 함께 흘러가듯이
강변 찻집은 시간이 멈춘 곳
가을이 지나고 겨울이 오더라도
찻집은 언제나 나를 따뜻하게 맞이해줄 것
강가에 서 있는 찻집, 나의 작은 안식처.
우리가 GPT를 통해 질문을 하고 대답을 하는 부분은 ZeroShot이라 합니다.
GPT가 자신이 알고 있는 지식을 정리하여 보여주는 것입니다.
그럼 몇가지 사례를 보여주며 GPT가 참조하면서 답변을 작성하게 하는 것을 FewShot이라고 합니다.
GPT에게 답변을 Prompt를 통해, RAG를 통해, Fine Tuning을 통해 좀더 잘 유도할 수 있습니다.
Prompt는 답변의 방향을 텍스트로 지시하여 답변을 유도하는 것입니다.
RAG과 Fine Tuning은 지난 번 글에서 언급했습니다.
Prompt 방법 중 하나인 FewShotPrompt 방법을 사용하여 GPT에서 시를 짓게 하였습니다.
제가 좋아하는 안도현 시인의 "바닷가 우체국"을 예시로 시를 지으라고 하였더니 위의 "강변 찻집"과 같은 시를 지어주었습니다.
langchain documents의 fewshot prompt 부분을 참조해서 작성한 코드는 아래와 같습니다.
하여튼 GPT가 대단한 일을 합니다.
FewShot에 관한 것은 앞으로 한 번 더 글을 작성할 예정입니다.
코드에 대한 설명은 하지 않습니다.
필요하신 분들은 자료를 검색해 살펴보시기 바랍니다.
import os
openAI_api_key = "openai_api_key"
os.environ["OPENAI_API_KEY"] = openAI_api_key
from langchain_openai import ChatOpenAI
from langchain_core.prompts.few_shot import FewShotPromptTemplate
from langchain_core.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParser
# 객체 생성
llm = ChatOpenAI(
temperature=0, # 창의성
model_name="gpt-3.5-turbo", # 모델명
)
examples = [
{
"question": "'바닷가 우체국'이라는 제목으로 시를 지어줘",
"answer": """
바닷가 우체국
<여기에 안도현 시인의 "바닷가 우체국" 시 전체를 넣었습니다.>
""",
}
]
example_prompt = PromptTemplate.from_template(
"Question:\n{question}\nAnswer:\n{answer}"
)
prompt = FewShotPromptTemplate(
examples=examples,
example_prompt=example_prompt,
suffix="Question:\n{question}\nAnswer:",
input_variables=["question"],
)
question = "'강변 찻집'라는 제목으로 20행 정도의 시를 지어줘."
final_prompt = prompt.format(question=question)
answer = llm.invoke(final_prompt)
with open("poet_03_01.txt", "w", encoding="utf-8") as f:
f.write(answer.content)
'machineLearning > GPT' 카테고리의 다른 글
chatGPT와 놀기_20241001 (4) | 2024.10.01 |
---|---|
시 짓기 2 - GPT (1) | 2024.08.18 |
RAG 기본 설명 (2) | 2024.08.10 |
챗봇 (0) | 2024.07.26 |
랭체인을 이용한 챗봇을 만들며 하는 작업 (0) | 2024.07.02 |
- Total
- Today
- Yesterday
- 텐서플로우
- 약수
- LangChain
- image depict
- RAG
- prompt
- TensorFlow
- 변화율
- AI_고교수학
- streamlit
- 파이썬
- 로피탈정리
- 랭체인
- programmers
- 미분
- LLM
- multi modal
- 미분계수
- GPT
- Python
- 프로그래머스
- ChatGPT
- checkpoint
- 챗봇
- Chatbot
- FewShot
- programmers.co.kr
- 미분법
- 고등학교 수학
- 도함수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |