Пользовательская память для ChatGPT API

User memory for ChatGPT API

Введение в типы памяти LangChain

Собственный gif

Если вы когда-либо использовали API OpenAI, я уверен, что вы заметили одну особенность.

Понятно?

Верно! Каждый раз, когда вы вызываете API ChatGPT, модель не помнит предыдущие запросы, которые вы делали. Другими словами: каждый вызов API является отдельным взаимодействием.

И это определенно раздражает, когда вам нужно выполнять последующие взаимодействия с моделью. Чат-бот – это золотой пример, где требуются последующие взаимодействия.

В этой статье мы рассмотрим, как дать память ChatGPT при использовании API OpenAI, чтобы он помнил наши предыдущие взаимодействия.

Разминка!

Давайте проведем некоторые взаимодействия с моделью, чтобы мы сами испытали это явление отсутствия памяти по умолчанию:

prompt = "Меня зовут Андреа"response = chatgpt_call(prompt)print(response)# Вывод: Приятно познакомиться, Андреа! Чем я могу вам помочь сегодня?

Но когда задается последующий вопрос:

prompt = "Вы помните мое имя?"response = chatgpt_call(prompt)print(response)# Вывод: Извините, как модель искусственного интеллекта, у меня нет способности запоминать конкретную информацию о отдельных пользователях.

Верно, поэтому модель на самом деле не помнит мое имя, хотя оно было указано в первом взаимодействии.

Примечание: Метод chatgpt_call() является просто оболочкой для API OpenAI. Мы уже попробовали, насколько легко вызывать модели GPT в статье ChatGPT API Calls: Введение.

Некоторые люди обычно обходят эту ситуацию без памяти, предварительно подавая историю предыдущих разговоров модели каждый раз при новом вызове API. Тем не менее, такая практика не является оптимизированной с точки зрения затрат и имеет свои ограничения для длинных разговоров.

Для создания памяти для ChatGPT, чтобы он был осведомлен о предыдущих взаимодействиях, мы будем использовать популярный фреймворк langchain. Этот фреймворк позволяет легко управлять историей разговора ChatGPT и оптимизировать его, выбирая правильный тип памяти для вашего приложения.

Фреймворк LangChain