Я пытался добавить ИИ-чат в свое приложение и уперся в стену

Я пытался добавить ИИ-ассистента в свой инструмент для управления проектами. Я думал, что это будет легко. Я планировал отправлять всю историю чата в API.

Ничего не вышло.

После 15 сообщений ответы стали медленными или начали ломаться. API выдавал ошибки, так как текст превышал лимит токенов.

Вот что я пробовал и что сработало.

Проблемы, с которыми я столкнулся:

  • Обрезка истории: я оставлял только последние несколько сообщений. Это решило проблему со скоростью, но ИИ забывал всё, что было в начале чата.
  • Суммаризация: я просил ИИ резюмировать чат каждые 5 сообщений. Это помогло с памятью, но увеличило расходы и время ожидания.
  • Векторные хранилища: я пробовал ранжировать сообщения по релевантности. Это добавило слишком много сложности для моих задач.

Решение:

Я перестал пытаться отправлять всё подряд. Чтобы улучшить пользовательский опыт, я использовал два основных метода.

  1. Стриминг: я использовал Server-Sent Events, чтобы показывать текст по мере его генерации. Это создает ощущение быстроты приложения, даже если ИИ требуется время на «раздумья».

  2. Трехслойное контекстное окно: я разделил свой бюджет токенов на конкретные части.

  • System Prompt: 500 токенов. Эта часть остается неизменной.
  • Dynamic Context: 2000 токенов. Здесь хранятся последние обновления проекта и состояния задач.
  • Conversation History: 4000 токенов. Это скользящее окно последних сообщений.

Управляя бюджетом таким образом, я сократил размер полезной нагрузки на 40%. Это сэкономило деньги и снизило задержку (latency).

Мой совет:

Добавление ИИ — это не просто вызов API. Вы должны управлять объемом отправляемых данных. Стриминг улучшает восприятие скорости пользователем. Умная стратегия контекста улучшает восприятие «интеллекта» ИИ.

А как вы управляете памятью диалогов в своих приложениях? Используете скользящие окна или суммаризацию?

Источник: https://dev.to/__c1b9e06dc90a7e0a676b/i-tried-to-add-ai-chat-to-my-app-and-hit-a-wall-with-context-tokens-459b

Опциональное сообщество для обучения: https://t.me/GyaanSetuAi