이 튜토리얼에서는 OpenAI API를 사용하는 애플리케이션에서 채팅 기록을 저장하는 방법을 알아봅니다. 지금까지는 간단한 질문과 답변만 테스트했을 수 있지만, 진정한 대화형 참여형 대화를 하려면 채팅의 전체 컨텍스트를 저장하는 것이 중요합니다. 이 가이드에서는 클라이언트와 서버 모두에서 채팅 기록을 관리하여 이를 달성하는 방법을 단계별로 보여드리겠습니다.
주요 결과
- OpenAI API는 지속성을 제공하지 않으므로 채팅 기록을 수동으로 저장해야 합니다.
- 효과적인 방법은 서버에 기록을 저장하여 효율성을 높이고 장기적으로 데이터를 보호하는 것입니다.
- 메시지 배열은 사용자 상호작용과 AI 응답을 관리하는 데 있어 중심적인 역할을 합니다.
단계별 가이드
1단계: 개념 정의하기
지금까지 간단한 질의응답 애플리케이션을 만들었습니다. 이를 본격적인 채팅 애플리케이션으로 전환하려면 요청과 응답 사이에 선택된 컨텍스트가 유지되도록 해야 합니다. 또한 전체 채팅 기록을 저장해야 합니다. 이를 위해서는 데이터베이스에서 데이터를 관리할 수 있는 가능성을 제공하므로 서버에 기록을 저장하는 것이 좋습니다.

2단계: 메시지 배열 만들기
서버 앱에서 모든 메시지의 저장소 역할을 하는 배열을 정의해야 합니다. 메시지라고 부르는 이 배열에는 주고받은 모든 메시지가 포함됩니다. appichat.js 파일에서 배열을 선언할 수 있습니다.
3단계: 사용자 요청 추가하기
사용자로부터 메시지를 받을 때마다 메시지 배열에 태그를 지정하는 것이 중요합니다. 이를 위해 푸시 명령을 사용합니다. 메시지의 역할(사용자)과 내용을 담고 있는 개체를 만들어야 합니다. 이렇게 하면 AI가 그에 따라 대화를 맥락화할 수 있습니다.
4단계: API 호출
메시지 배열에 사용자 메시지를 추가한 후에는 API를 호출할 때마다 이 배열을 전달해야 합니다. 이 경우 함수를 호출하여 채팅 완료를 생성하는 것은 전체 메시지 배열을 전달하는 것처럼 보입니다. 간단한 사용자 질문으로 한 번 구현을 테스트해 볼 수 있습니다.
5단계: AI로부터 답변 받기
API가 요청을 처리한 후 AI로부터 응답을 받게 됩니다. 또한 이 응답을 메시지 배열에 추가해야 합니다. 응답이 해당 콘텐츠와 함께 역할: 어시스턴트로 저장되었는지 확인하세요. 이렇게 하면 다음 사용자 요청이 이전 대화를 계속 고려할 수 있습니다.

6단계: 대화 다시 테스트하기
이제 몇 가지 질문을 통해 애플리케이션의 기능을 확인할 수 있습니다. 이전 메시지에도 불구하고 AI의 응답이 여전히 의미 있는지 확인하세요. 이전 질문과 답변의 맥락을 고려한 연속적인 대화가 이루어져야 합니다.
7단계: 메시지 출력 및 검토
모든 것이 메시지 배열에 올바르게 저장되었는지 확인하기 위해 콘솔 출력을 사용하여 배열을 모니터링할 수 있습니다. 이렇게 하면 어떤 메시지가 저장되고 있는지 확인하고 모든 것이 정상적으로 작동하는지 확인할 수 있습니다.
8단계: 구현 마무리하기
이제 채팅의 전체 기록을 저장하는 채팅 애플리케이션이 작동합니다. 추가 기능을 추가하거나 저장소를 데이터베이스에 통합하여 대화를 장기간 저장할 수 있도록 하여 이를 더욱 세분화할 수 있습니다.
요약
이 가이드에서는 OpenAI API를 사용하여 채팅 기록을 관리하고 저장하는 방법을 배웠습니다. 서버에 메시지 배열을 구현하면 모든 사용자 요청과 AI 응답을 올바르게 추적하여 일관성 있고 맥락에 맞는 사용자 경험을 제공할 수 있습니다.
자주 묻는 질문
채팅 기록은 어떻게 저장하나요?모든 메시지가 저장되는 메시지 배열을 사용합니다.
서버에 대화 내용을 저장해야 하는 이유는 무엇인가요? 서버에 저장하면보다 효율적으로 사용할 수 있고 데이터를 데이터베이스에 영구적으로 저장할 수 있는 옵션이 있습니다.
배열 대신 데이터베이스를 사용할 수도 있나요?네, 이는 채팅 기록을 장기간 저장하고 관리할 때 좋은 옵션입니다.