# Оптимизация истории диалога

<a href="https://app.nextbot.ru/option#dialog-history" class="button secondary">Перейти к блоку «Оптимизация истории диалога»</a>

<figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FpX5i2VF0GQzbf17w3ZGh%2Fimage.png?alt=media&#x26;token=62848d6f-90ca-4682-b513-b8072ec0243b" alt=""><figcaption></figcaption></figure>

**Что делает функция "Оптимизация истории диалога" и как ею пользоваться?**

Цена за запрос в нейросеть напрямую зависит от длины контекста, чем больше история диалога, тем выше будет цена. Более того - длина контекста у нейросети ограничена 128 000 токенов на все данные(инструкция, функции, база знаний, история переписки).\
При длинном диалоге с клиентом будут высокие затраты или вообще ошибка переполнения контекста.

**Решение:** Выставить нейросети лимит памяти, истории переписки.

### Ограничение по токенам

Параметр "Ограничение по токенам" похож на то, как работает человеческий мозг, в процессе длинного диалога мы можем забыть его начало, а помнить только последние пару часов.\
Каждое сообщение в чате занимает определенное количество токенов.\
Параметр **"Максимальное количество токенов"** задает, сколько сообщений остается в памяти. Если лимит превышен, старые сообщения удаляются из памяти.

#### В настройках выставлен параметр "Ограничение по токенам" 1. Каким будет диалог с пользователем?

Пример №1:

<figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2F9StslbCN3CAe3B9jBhZ8%2Fimage.png?alt=media&#x26;token=daa0c60c-7c81-4c34-875d-c44038ffe788" alt=""><figcaption></figcaption></figure>

Система будет сохранять только самое **последнее** сообщение. Все предыдущие сообщения автоматически удаляются, как только вы отправляете новое.

#### Как это работает:

1. Пользователь отправляет сообщение **№1** → ИИ-агент запоминает его.
2. Пользователь отправляет сообщение **№2** → сообщение **№1** забывается, в памяти остается только сообщение **№2**.
3. Пользователь отправляет сообщение **№3** → сообщение **№2** забывается, в памяти остается только сообщение **№3**.

#### Пример №2:

1. **Пользователь:** "Расскажи, как сварить кофе."
   * Система запоминает это сообщение.
   * **Ответ ИИ-агента:** "Для приготовления кофе используйте 2 ложки молотых зерен на 200 мл воды."
2. **Пользователь:** "А как лучше молоть зерна?"
   * Сообщение "Расскажи, как сварить кофе" удаляется.
   * В памяти остается только последнее сообщение: "А как лучше молоть зерна?"
   * **Ответ ИИ-агента:** "Лучше молоть зерна средней грубости для фильтрации или мелко для эспрессо."
3. **Пользователь:** "Что делать, если кофе вышел слишком горьким?"
   * Сообщение "А как лучше молоть зерна?" удаляется.
   * В памяти остается только последнее сообщение: "Что делать, если кофе вышел слишком горьким?"
   * **Ответ ИИ-агента:** "Попробуйте уменьшить время заваривания или использовать меньше кофе."

**Минусы:** Если выставить низкий лимит, то ИИ-агент будет забывать в ходе диалога важную информацию. Например: человек уже представлялся, но ИИ-агент это забыл и попросит представится ещё раз.

#### Как мне понять сколько ставить лимит токенов?

Чтобы определить оптимальный **лимит токенов для срезки**, нужно учитывать особенности вашего взаимодействия с ИИ-агентом. Вот несколько примеров, которые помогут выбрать подходящий лимит:

* **1 токен:** Подходит для коротких вопросов без сохранения контекста.\
  \&#xNAN;*Пример:* "Сколько времени?" → "Как перевести слово?"
* **10 000 - 20 000 токенов:** Оптимально для умеренных бесед.
* **50 000+ токенов:** Используется для сложных проектов, обсуждений или историй, где важно помнить большую часть разговора.

{% hint style="info" %}
**Данные носят исключительно рекомендательный характер, нужно тестировать на реальных диалогах и анализировать.**
{% endhint %}

### Ограничение по количеству сообщений

Данная опция позволяет указать, сколько **последних сообщений** сохранять в истории.

#### **Как это работает?**

1. Включите переключатель **«Ограничение по количеству сообщений»**.
2. В поле **«Максимальное количество сообщений»** введите число (например, **3**).

#### **Пример:**

* **Лимит:** 3 сообщения
* **История диалога:**
  1. *"Привет!"*
  2. *"Как настроить API?"*
  3. *"Где взять ключ доступа?"*
  4. *"Сколько стоит подписка?"*\
     ➡ Сохраняются **только последние 3 сообщения** (2, 3, 4). Первое (*"Привет!"*) удаляется.

### Ограничение по времени

Функция "Ограничение по времени" позволяет автоматически удалять из истории диалога сообщения, которые были отправлены **раньше указанного вами периода**.

Как это работает?

Система будет **автоматически**:

1. Отслеживать время отправки каждого сообщения
2. Удалять из истории все сообщения, которые **старше** установленного вами периода
3. Учитывать только "свежие" сообщения при генерации ответов

#### **Пример 1: Интервал = 15 минут**

10:00 - Пользователь: "Здравствуйте!"\
10:05 - ИИ-агент: "Чем могу помочь?"\
10:12 - Пользователь: "Не работает оплата"\
10:20 - ИИ-агент учитывает только сообщения после 10:05

→ Сообщение "Здравствуйте!" (10:00) автоматически удаляется

### Комбинирование ограничений

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

➡ **Пример:**\
Вы сказали ИИ-агенту:

1. *"Запоминай только последние 5 сообщений"* (**ограничение по количеству сообщений**)
2. *"И только то, что написано за последние 10 минут"* (**ограничение по времени**)

📌 **Как ИИ-агент** **будет работать?**

* Он сохранит **максимум 5 сообщений**, но только если они **не старше 10 минут**.
* Если сообщений больше 5 или они старые — ИИ-агент их **проигнорирует**.
