대화내용이 누적됨에 따라 토큰이 초과하여 api 오류가 발생함

This model's maximum context length is 4097 tokens. However, you requested 4103 tokens (2103 in the messages, 2000 in the completion). Please reduce the length of the messages or completion

https://velog.io/@noh0907/ChatGPT-API-Token-Limit-해결하기-요금-줄이기

토큰을 줄이는 방법으로 해결할 수 있고, 위 링크에 토큰을 줄이는 팁이 설명되어 있다.

해결방안 1

최근 두개의 대화 내역만 프롬프트로 넣어준다.

단점 : 이전의 대화 내용을 기억하지 못한다.

해결방안 2 ☑️

매 대화내역을 다시 gpt에 넣어서 요약한 후 프롬프트로 넣어준다.

단점 : gpt를 두번 호출하므로 시간이 오래 걸린다.

→ 비동기로 동시에 실행하고 프로미스 배열로 처리해보자

해결방안 2로 진행

init prompt는 요약하지 않고, 그 이후에 추가되는 messages들만 요약하여 계속 prompt를 갱신해준다.

프롬프트의 구성은 (init prompt + 요약된 prompt 배열 + 면접관의 직전 질문 + 면접자의 직전 답변) 으로 이루어지도록 한다.

메세지를 요약하는 함수를 모듈화하여 생성한다. —> summarizePrompt 함수 생성summarizePrompt : 메세지를 인자로 받아 gpt를 이용하여 한 줄로 요약함

→ 깊은복사와 얕은복사에 의한 이슈가 발생하였고, 구글링 후 해결했음