В этом руководстве вы узнаете, как сбросить чат с помощью OpenAI API, не перезагружая сервер. Часто возникают ситуации, когда вы хотите просто забыть предыдущую историю чата и начать сначала. Здесь ключевую роль играет идентификатор чата, поскольку он позволяет сбросить историю на сервере. Следующее руководство покажет вам, как реализовать эту функцию.

Основные выводы

  • Для сброса чата можно сгенерировать новый идентификатор чата.
  • Идентификатор чата генерируется при перезагрузке страницы и передается на сервер.
  • Сервер сравнивает новый идентификатор чата с текущим и сбрасывает историю чата, если они различаются.

Пошаговое руководство

У вас уже есть рабочее приложение для чата, но есть небольшая проблема: вы не можете сбросить историю чата. Чтобы это исправить, нам необходимо ввести идентификатор, который генерируется при каждой перезагрузке страницы.

Как ты можешь сбросить чат с помощью API OpenAI

Затем этот новый идентификатор чата должен быть передан на ваш сервер. Когда сервер получает новый идентификатор, он сбрасывает историю чата. Это происходит с помощью простого сравнения: если новый идентификатор чата отличается от текущего, список сообщений сбрасывается.

Для реализации этого важно, чтобы клиент мог генерировать случайный идентификатор. Вы будете передавать идентификатор с помощью параметра ID. Давайте посмотрим код вашего компонента React в файле index.jsx.

Как ты можешь сбросить чат с помощью API OpenAI

Здесь в этом файле вы уже передали необходимое сообщение (MSG). Теперь вы можете также передать и идентификатор. Это можно сделать эффективно с помощью строкового шаблона, чтобы вставка переменных была проще.

Как ты можешь сбросить чат с помощью API OpenAI

Преобразуйте код в строковый шаблон и вставьте переменные соответственно. Это может выглядеть следующим образом: MSG, это ваше поле ввода, и ID равен вашему новому идентификатору.

Теперь вам нужно подумать о генерации идентификатора. Простым способом является использование текущей даты. Вы можете просто определить константу, которая использует текущее время в миллисекундах с 1970 года. Для этого вы можете использовать Date.now() и затем преобразовать это время в строку.

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

Как сбросить чат с помощью API OpenAI

Если вы отправите сообщение «how are you», вы увидите на сервере, что есть два сообщения: одно от пользователя и одно от помощника.

Как сбросить чат с помощью API OpenAI

Однако если вы отправите еще один вопрос, например, «why does it not have feelings», история должна быть сброшена соответственно. Там должен быть только текущий вопрос и его ответ.

Как ты можешь сбросить чат с помощью API OpenAI

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

Как можно сбросить чат с помощью API OpenAI

Чтобы убедиться, что все работает, выполните тест еще раз. Перезагрузите страницу и отправьте сообщение еще раз. Теперь должны быть сохранены четыре сообщения в массиве.

Как ты можешь сбросить чат с помощью API OpenAI

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

Как ты можешь сбросить чат с помощью API OpenAI

Однако обратите внимание, что поле ввода не очищается автоматически после отправки сообщения. Полная история чатов до сих пор не видна, что означает, что вы всегда видите только последний вопрос и ответ. Мы также рассмотрим это в будущих учебных пособиях.

Как сбросить чат с помощью API OpenAI

Резюме

В этом руководстве вы узнали, как реализовать функцию сброса истории чата в вашем чат-приложении. Путем введения нового идентификатора чата при перезагрузке страницы история была успешно сброшена. Есть еще несколько улучшений, которые мы внесем на следующих этапах, такие как очистка поля ввода и полная отображение истории чата.

Часто задаваемые вопросы

Как я могу сбросить чат?При перезагрузке страницы история чата сбрасывается.

Как генерируется новый идентификатор?Новый ID генерируется из текущего времени в миллисекундах.

Могу ли я сбросить чат без перезагрузки страницы?Да, вы также можете реализовать кнопку, которая сбрасывает чат.

Что происходит, если ID одинаковые?Если новый ID совпадает с текущим ID, история не сбрасывается.

Нужно ли мне вручную удалять поле ввода?Да, в настоящее время поле ввода не очищается автоматически после отправки сообщения.