디스크립션: ChatGPT API를 통해 이전 대화에 대해 반영하는 방법을 자세히 설명해 드립니다. 제가 직접 경험해본 결과, API 호출 시 이전 대화 내용이 필요할 때 어떻게 효율적으로 설정할 수 있는지 살펴보려고 합니다.
ChatGPT API를 활용한 이전 대화 반영
이전 대화를 기억하며 대화의 흐름을 이어가고 싶다면, ChatGPT API에서 messages 인자로 이전 대화의 맥락을 포함하여 호출하는 것이 필수적이에요. 제가 직접 확인해본 결과, 이렇게 하면 보다 자연스러운 대화가 가능하답니다.
대화를 설정할 때 중요한 점은 각메시지의 role을 제대로 달아주는 것이에요. 예를 들어, 사용자가 질문한 내용은 user로, AI가 답변한 내용은 assistant로 설정해서 순서에 맞춰서 리스트로 구성해야 하죠. 여기에 대한 간단한 예시를 들어볼게요.
“`python
import openai
openai.api_key = “sk-…” # API Key
completion = openai.ChatCompletion.create(
model=”gpt-3.5-turbo”,
messages=[
{“role”: “user”, “content”: “두 숫자를 말하면 두 개를 더한 답을 알려줘. 10와 20”},
{“role”: “assistant”, “content”: “10과 20을 더한 값은 30입니다.”},
{“role”: “user”, “content”: “40과 50은요?”}
]
)
결과 출력
print(completion[‘choices’][0][‘message’][‘content’]) # 40과 50을 더한 값은 90입니다.
“`
위의 코드에서는 첫 번째 질문에 대해 10과 20의 합을 요청하고, 그에 대한 응답을 저장했어요. 마지막으로 “40과 50″을 입력했을 때 AI가 적절한 대답을 해주었어요. 중요한 것은 단순히 마지막 질문만 전달한 것이 아니라, 대화의 이전 맥락을 완전히 반영했다는 점이에요.
메시지의 토큰 제한 고려하기
그러나 이때 주의할 점은, 전체 대화의 맥락이 토큰 제한을 초과하지 않아야 해요. API 호출 시 한 번에 처리할 수 있는 토큰 수가 제한되어 있으니, 대화의 길이에 딱 맞게 잘라내는 것이 중요한 사실이에요.
제가 직접 경험해본 결과로는 대화의 맥락이 너무 길어지면, 이전 내용이 잘리거나 잘못 해석될 가능성이 높아지더라구요.
System role을 활용한 대화 조정
API에서 system role을 활용하여 기본적인 답변 스타일이나 특정 지식을 초기 설정할 수 있어요. 이는 초기 요청 시 어떤 방식으로 응답해야 하는지 지시하는 형태랍니다. 아래의 예시를 통해 보여드릴게요.
“`python
import openai
openai.api_key = “sk-…” # API Key
completion = openai.ChatCompletion.create(
model=”gpt-3.5-turbo”,
messages=[
{“role”: “system”, “content”: “답변은 항상 한국어로 해줘.”},
{“role”: “user”, “content”: “What is Artificial Intelligence?”}
]
)
결과 출력
print(completion[‘choices’][0][‘message’][‘content’])
“`
위 코드는 사용자와 AI 간의 대화에서 초기 설정을 통해 한국어로 응답하도록 하였어요. 첫 질문이 영어로 진행되었지만, AI의 응답은 한국어로 설정된 것을 확인할 수 있죠.
사용자 및 어시스턴트 역할 유지
이렇게 system role을 추가함으로써 대화의 방향성을 설정할 수 있고, 이후 user와 assistant를 통해 계속해서 대화를 이어갈 수 있어요. ChatGPT API의 여러 역할을 활용해보시면 훨씬 더 유용한 결과를 얻을 수 있으실 거에요.
결론
이 글에서 ChatGPT API를 통해 이전 대화의 내용을 반영하여 호출하는 방법과 system role을 효과적으로 활용하는 방법에 대해 살펴보았어요. 이 과정을 통해 좀 더 맥락 있는 대화를 이끌어낼 수 있으니, 트릭이나 팁을 적용해보시면 도움이 될 것입니다.
키워드: ChatGPT API, 이전 대화 반영, 대화 맥락, system role, 사용자 역할, assistant 역할, API 호출 방법, 자연어 처리, 인공지능, 대화형 AI, Python