Как сделать так, чтобы GPT API (Chat-GPT) запоминал контекст разговора в чате телеграм?
Я делаю бота (проект по практике) с GPT API и промтом для него. Но проблема в том, что он отвечает только на контекст вопроса одного сообщения, а не целого диалога. Помогите исправить. Пишу на пайтоне. Вот код:
@dp.message()
async def gpt_reply(message: types.Message, chat_context: list):
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "You are helpful chat gpt bot in telegram"},
{"role": "user", "content": message.text}
]
)
for i in range(1):
chat_context.append({"role": "user", "content": message.text})
chat_context.append({"role": "assistant", "content": gpt_reply(chat_context)})
openai_reply = (completion.choices[0].message)
await message.answer(openai_reply)
async def main():
await dp.start_polling(bot, chat_context=[])
if __name__ == "__main__":
asyncio.run(main())
Я понимаю, что лучше использовать while вместо for i in range, но это пока что просто черновик. Хочу понять как мне сделать "запоминание контекста" для бота.
Диспетчер и прочее установлено и подключено
Ответы (1 шт):
Автор решения: JustAQ
→ Ссылка
При запросе на сервера OpenAI вы передаете параметр messages в который вы передаете список сообщений в чате. Если вы хотите сохранять контекст вам нужно передавать туда предыдущие сообщения пользователя