Реалізація RAG (Retrieval-Augmented Generation) для AI-бота у мобільному додатку

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Реалізація RAG (Retrieval-Augmented Generation) для AI-бота у мобільному додатку
Складний
~1-2 тижні
Часті запитання

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

Етапи розробки

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Реалізація RAG (Retrieval-Augmented Generation) для AI-бота у мобільному додатку

RAG вирішує конкретну проблему: модель не знає вашого продукту, вашу документацію, ваші внутрішні регламенти. Дообучення—дорого та повільно оновляється. RAG—дешевше, актуальніше, прозоріше. Користувач задає запитання → система шукає релевантні фрагменти документації → передає їх у контекст моделі → модель відповідає на основі реальних даних.

Компоненти RAG-системи та де вони живуть

RAG—це не одна функція, а пайплайн з кількох етапів:

Ingestion (завантаження та індексація):

  1. Розбивка документів на чанки (chunking)
  2. Створення еквалайзирів для кожного чанку
  3. Збереження у векторну БД

Retrieval (пошук):

  1. Еквалайзир користувацького запиту
  2. Векторний пошук (cosine similarity / ANN)
  3. Reranking результатів (опціонально)

Generation (генерація):

  1. Формування промпту з контекстом
  2. Виклик LLM
  3. Постобробка ответу

На мобільному весь Ingestion та більшість Retrieval—серверна задача. Клієнт робить запит до API, отримує ответ з джерелами.

Chunking: найнедооцінений етап

Якість RAG визначається якістю чанків. Погане chunking убиває точність незалежно від моделі.

Фіксований chunking (по 500 символів)—не робіть так. Розривує речення, теряє контекст абзаців.

Семантичний chunking—розбивка по смисловим границям (заголовки, абзаци, речення). Для Markdown та HTML працює за замовчуванням. Бібліотека LangChain4j на Java/Kotlin надає RecursiveCharacterTextSplitter з розділювачами ["\n\n", "\n", ". "]—це правильний підхід.

Overlap—перекриття 10–20% між чанками: останні 50–100 токенів попереднього чанку включаються в початок наступного. Це зберігає контекст на границях.

Оптимальний розмір чанку залежить від типу документа: для технічної документації—300–500 токенів, для юридичних текстів—500–800 токенів, для FAQ—чанк = одне запитання+ответ.

Еквалайзири: вибір моделі

Модель Розмірність Контекст Вартість Підходить для
text-embedding-3-small 1536 8192 Дешево Загальний контент
text-embedding-3-large 3072 8192 Середньо Технічна документація
nomic-embed-text 768 8192 Безплатно (self-host) Приватні дані
multilingual-e5-large 1024 512 Безплатно (self-host) Мультиязичний контент

Для мобільного додатку з чутливими даними—self-hosted модель. OpenAI Embeddings відправляють документи на сервера OpenAI.

Retrieval: що реально впливає на якість

Hybrid search—комбінація векторного пошуку та BM25 (keyword search) дає кращі результати, ніж тільки векторний. Pgvector + pg_trgm дозволяють робити це у PostgreSQL без окремої інфраструктури.

Reranking—після vectorsearch беремо топ-20 результатів, прогоняємо через cross-encoder модель (cross-encoder/ms-marco-MiniLM-L-6-v2), повертаємо топ-5. Це суттєво покращує релевантність. Cohere Rerank API—якщо не хочете self-hosted модель.

Metadata filtering—якщо у документів є метадані (дата, раздел, мова, тип документа), фільтруйте за ними до векторного пошуку. Пошук по векторам серед 10 тисяч релевантних чанків замість мільйона—швидше та точніше.

Формування промпту з контекстом

System: Ти асистент продукту. Відповідай ТІЛЬКИ на основі наданого контексту.
Якщо ответу нема у контексті—скажи про це прямо.

Контекст:
[Чанк 1]: <текст>
[Чанк 2]: <текст>
[Чанк 3]: <текст>

User: Як налаштувати двофакторну аутентифікацію?

Указувати джерела—хороша практика. На мобілі показувати список чанків/документів під ответом: користувач може перевірити, звідки інформація. Це знижує hallucination risk та підвищує довіру.

Мобільний UI для RAG-бота

Особливості рендеринга ответу:

  • Потік через SSE—ответ з'являється поступово
  • Джерела під ответом (коллапс-список)
  • Індикатор «шукаю у базі знань» під час Retrieval (100–300 мс)
  • Кнопка «Не знайшов ответу» для ескалації до оператора

На Flutter: flutter_markdown для рендеринга ответу, кастомний віджет для джерел. На iOS: UILabel з NSAttributedString або UITextView + WKWebView для Markdown. На Android: Markwon—найкращий Markdown-рендерер для RecyclerView.

Етапи та сроки

Аудит корпусу документів → проектування схеми індексації → вибір векторної БД → реалізація ingestion pipeline → настройка hybrid search + reranking → інтеграція з LLM → мобільний чат-UI з джерелами → оцінка якості (RAGAS або ручна) → ітерація по промптам та chunking.

Базовий RAG-бот з простою документацією—3–5 тижнів. Продакшен-система з hybrid search, reranking, мультиязичністю та оцінкою якості—8–12 тижнів.