Управління контекстом AI-діалогу в мобільному застосунку

Розмовний AI-асистент у мобільному застосунку швидко втрачає контекст, якщо не керувати історією діалогу. Кожен запит користувача та відповідь моделі додають токени — при активному використанні ліміт вікна вичерпується за 10–15 повідомлень, а витрати на API зростають експоненційно. Ми інтегруємо кон

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Управління контекстом AI-діалогу в мобільному застосунку
Середній
~2-3 дні

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    896
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    598

Розмовний AI-асистент у мобільному застосунку швидко втрачає контекст, якщо не керувати історією діалогу. Кожен запит користувача та відповідь моделі додають токени — при активному використанні ліміт вікна вичерпується за 10–15 повідомлень, а витрати на API зростають експоненційно. Ми інтегруємо контекстне вікно та управління історією діалогу AI в мобільні застосунки під ключ. На основі нашого досвіду (10+ років у мобільній розробці та 50+ AI-проектів) ми гарантуємо ефективне використання контексту. Правильна стратегія управління контекстом скорочує витрати на API до 30%.

Чому зростає історія діалогу і як це впливає на вартість?

Кожен обмін додає токени: запит користувача + відповідь моделі. При середньому повідомленні 50–100 токенів і 20 парах — вже 2000–4000 токенів лише на історію, плюс системний промпт. При gpt-4o з ціною $5 за 1M input токенів — дрібниця, але при 1000 активних користувачів з 50 повідомленнями на день витрати перевищують $250 на день лише на історію. Економія на ефективному управлінні може сягати 30% від вартості API-запитів.

Друга проблема: різні моделі мають різні ліміти (GPT-4o — 128K, Claude — 200K, YandexGPT — 8K). Застосунок, оптимізований під одну модель, може давати збої при перемиканні на іншу.

Як керувати контекстом при зміні AI-моделі?

Для універсальності рекомендується реалізувати абстракцію над управлінням контекстом: задати максимальну кількість токенів для поточної моделі та динамічно підлаштовувати стратегію (ковзне вікно з порогом, що залишає запас). Наприклад, для YandexGPT з 8K лімітом варто використовувати ковзне вікно з менш ніж 7K токенів, залишаючи місце під відповідь. Для GPT-4o з 128K можна застосовувати гібридну пам'ять без обмежень. Такий підхід дозволяє перемикати моделі без зміни логіки.

Три стратегії управління історією діалогу AI

Детальніше про стратегії

Ковзне вікно — тримаємо останні N повідомлень, відкидаємо старіші. Швидко, передбачувано. Мінус: модель забуває початок розмови.

func buildMessages(history: [Message], systemPrompt: String, maxTokens: Int = 3000) -> [Message] { var result: [Message] = [] var tokenCount = countTokens(systemPrompt) for message in history.reversed() { let msgTokens = countTokens(message.content) if tokenCount + msgTokens > maxTokens { break } result.insert(message, at: 0) tokenCount += msgTokens } return result } 

Вибір N (maxTokens) залежить від моделі: для YandexGPT — 7000, для GPT-4o — 100000. Оптимальне значення підбирається експериментально.

Сумаризація — коли історія перевищує поріг, відправляємо старі повідомлення на сумаризацію через дешевшу модель (gpt-4o-mini, claude-haiku). Отримуємо summary, зберігаємо як system-повідомлення, видаляємо сумовані повідомлення. Приклад промпту: "Сумаризуй наступний діалог, виділивши ключові факти та рішення. Збережи деталі, важливі для подальшого спілкування."

Гібридний підхід з пам'яттю — для довгострокових асистентів. Короткочасна пам'ять (останні 10–15 повідомлень), довгострокова пам'ять (структуровані факти), семантичний пошук за ембедінгами. Цей підхід у 3 рази краще утримує контекст порівняно з простим ковзним вікном.

Порівняння стратегій

Стратегія Швидкість Якість контексту Складність реалізації
Ковзне вікно Висока Низька (забування) Низька
Сумаризація Середня Середня (втрата деталей) Середня
Гібридна пам'ять Середня Висока Висока

Отримайте консультацію з архітектури контекстного вікна — ми допоможемо обрати оптимальну стратегію для вашого проекту.

Як реалізувати гібридну пам'ять: покрокове керівництво

  1. Визначте типи фактів. Які дані потрібно запам'ятовувати? Наприклад, для медичного асистента: алергії, поточні ліки, хронічні захворювання.
  2. Створіть схему довгострокової пам'яті. Використовуйте SQLite або in-memory словник. Кожен факт — ключ-значення з тегом часу.
  3. При кожній відповіді моделі витягуйте факти. Відправляйте останні 10–15 повідомлень + всі актуальні факти в промпт.
  4. Після отримання відповіді оновлюйте факти. Додатковий виклик моделі (меншої) витягує нові факти з діалогу.
  5. Періодично чистіть застарілі факти. Видаляйте факти, не підтверджені більше тижня.

Деталі реалізації

Довгострокова пам'ять може зберігатися у вигляді графу знань або простих пар ключ-значення. Для витягування фактів використовуйте structured output моделей, наприклад, JSON-формат. Це спрощує парсинг та оновлення. Важливо перевіряти коректність витягнутих фактів і не допускати зациклення.

Як обрати стратегію для вашого мобільного застосунку?

Якщо застосунок потребує запам'ятовування ключових фактів (алергії, вподобання), гібридна пам'ять — єдиний робочий варіант. Сумаризація без явного збереження фактів може призвести до юридичних ризиків у медичних або фінансових асистентах. Ми рекомендуємо проводити аудит вимог перед вибором. Зв'яжіться з нами для консультації — допоможемо визначитися.

Технічні аспекти: зберігання, підрахунок токенів та UI

Зберігання історії на мобільному

SQLite — стандарт. Структура:

CREATE TABLE conversations ( id TEXT PRIMARY KEY, created_at INTEGER, title TEXT, model TEXT, summary TEXT ); CREATE TABLE messages ( id TEXT PRIMARY KEY, conversation_id TEXT REFERENCES conversations(id), role TEXT CHECK(role IN ('user', 'assistant', 'system')), content TEXT, token_count INTEGER, created_at INTEGER ); CREATE INDEX idx_messages_conversation ON messages(conversation_id, created_at); 

token_count рахується при збереженні — не при кожному завантаженні.

Підрахунок токенів на мобільному

Точний підрахунок потребує токенізатора для конкретної моделі. Згідно з Wikipedia, токенізація — процес розбиття тексту на токени. На сервері — tiktoken для OpenAI, tokenizers від HuggingFace. На мобільному використовуємо евристику: англійська ~4 символи = 1 токен, російська ~2–2.5 символи = 1 токен, код ~3 символи = 1 токен. Для відповідального підрахунку (тарифікація, ліміти) — серверна валідація.

UI: відображення історії

Список повідомлень — UITableView зі зворотним порядком (нові знизу) або LazyColumn в Compose з reverseLayout = true. При стримінгу останнє повідомлення оновлюється на місці без перестрибування скролу. Індикація контекстного вікна (візуальна смужка або лічильник токенів) зменшує скарги на забудькуватість асистента.

Що ми пропонуємо та терміни

Що входить в роботу

  • Документація з архітектури управління історією
  • Вихідний код модуля контекстного вікна з тестами
  • Інтеграція з обраною моделлю AI (GPT, Claude, YandexGPT)
  • Налаштування підрахунку токенів та моніторингу витрат
  • Навчання команди роботі з системою

Орієнтири за термінами

Етап Тривалість
Ковзне вікно з SQLite 3–4 дні
Гібридна пам'ять з сумаризацією 1,5–2,5 тижні
Повний цикл (аналітика → деплой) 2–4 тижні

Вартість розраховується індивідуально. Замовте аудит вашого проекту — оцінимо обсяг робіт.