OpenAI API에서 멀티턴 대화는 messages 배열을 통해 구현됩니다.
이전 대화 내용을 누적해서 전달함으로써 대화의 맥락(context)을 유지할 수 있습니다.
예시 코드:
import openai
from openai import OpenAI
from typing import List
client = OpenAI()
class Conversation:
def __init__(self):
self.messages: List[dict] = [
{"role": "system", "content": "당신은 요리 전문가입니다."}
]
def get_response(self, user_input: str) -> str:
# 사용자 메시지 추가
self.messages.append({"role": "user", "content": user_input})
# API 호출
response = client.chat.completions.create(
model="gpt-4-0125-preview",
messages=self.messages
)
# 어시스턴트 응답 저장
assistant_response = response.choices[0].message.content
self.messages.append({"role": "assistant", "content": assistant_response})
return assistant_response
# 사용 예시
conversation = Conversation()
# 첫 번째 질문
response1 = conversation.get_response("김치로 만들 수 있는 요리 추천해줘")
print("AI:", response1)
# 두 번째 질문 (이전 대화 맥락 유지)
response2 = conversation.get_response("그 중에서 30분 안에 만들 수 있는 요리는 뭐야?")
print("AI:", response2)
이런 방식의 장점:
- 대화 맥락 유지
- 이전 답변 참조 가능
- 자연스러운 대화 흐름
주의할 점:
- 토큰 제한 고려 필요
- 오래된 대화는 적절히 제거
- 비용 관리
'Today I Learned' 카테고리의 다른 글
내가 보려고 정리한 협업 깃 명령어 (2) | 2025.03.05 |
---|---|
openai로 내용 보강법 (0) | 2025.02.21 |
Branch Rules (브랜치 규칙) (0) | 2025.02.20 |
ERD(Entity-Relationship Diagram)를 작성해보다! (0) | 2025.02.12 |
SA문서 파트 분배 해보기 (0) | 2025.02.12 |