AI-пошук по базі знань компанії в мобільному додатку
Корпоративний мобільний інструмент з AI-пошуком — це інший клас задач порівняно з користувацьким чат-ботом. Тисячі працівників, конфіденційні дані, ролі та права доступу, документи з різних систем (Confluence, SharePoint, Notion, Jira), актуальність контенту. Просто підключити RAG недостатньо.
Джерела даних та їхні особливості
Корпоративна база знань рідко живе в одному місці:
- Confluence — статті, регламенти, технічна документація. REST API, вебхуки про зміни
- SharePoint / OneDrive — Word, Excel, PDF-документи. Microsoft Graph API
- Notion — замітки, проекти, бази даних. Notion API
- Jira / Linear — тикети, коментарі, описи задач
- Внутрішня Wiki — часто legacy з нестандартними API
Для кожного джерела потрібен окремий коннектор: авторизація, отримання документів, відстеження змін (delta sync), видалення застарілих векторів.
Найскладніше — delta sync. Не можна переіндексировати всі 50 тисяч документів кожну ніч. Потрібно отримувати тільки змінені з моменту останньої синхронізації. Confluence та Notion підтримують вебхуки — це переважний шлях. SharePoint — Microsoft Graph change notifications.
Права доступу: найтруднійша частина
Працівник не повинен через AI-пошук отримати доступ до документів, які йому недоступні напрямо. Це юридично та технічно критично.
Два підходи:
Permission-aware indexing. При індексації зберігаємо ACL (Access Control List) документа в метаданих вектора. При пошуку фільтруємо за правами поточного користувача.
# При індексації
metadata = {
"document_id": doc_id,
"allowed_users": ["user_1", "user_5"], # або
"allowed_groups": ["engineering", "hr"], # або
"visibility": "public"
}
При пошуку передаємо групи користувача як фільтр. Проблема: при зміні прав документа потрібно оновити метаданих усіх пов'язаних чанків — дорога операція.
Query-time permission check. Шукаємо топ-50 кандидатів без фільтра, потім перевіряємо права кожного через оригінальну систему (Confluence API, SharePoint), повертаємо тільки дозволені. Повільніше (N+1 API-запити), але права завжди актуальні.
Для продакшену рекомендуємо гібридний підхід: груба фільтрація за групами при пошуку + швидка перевірка прав для топ-10 результатів.
Мобільний UI для корпоративного пошуку
Корпоративний користувач в першу чергу хоче зрозуміти, звідки прийшла відповідь, та коли документ оновлювався. UI повинен це показувати:
- Відповідь AI з цитатами (виділені фрагменти з документів)
- Карточки джерел: іконка системи (Confluence/Notion/SharePoint), назва документа, автор, дата оновлення, кнопка «Відкрити оригінал»
- Скор впевненості (не число, а «Висока/Середня/Низька» релевантність)
- Кнопка «Не знайшов відповідь» для створення тикета в підтримку
Пошук повинен працювати з опечатками та неточними формулюваннями — досягається комбінацією векторного пошуку (стійкий до перефразування) та fuzzy BM25 (стійкий до опечаток).
Актуальність контенту: TTL та переіндексація
Застарілий результат гірше за відсутність результату. Якщо регламент змінився, а індекс не оновився — AI дасть неправильну інструкцію. Механізми:
-
TTL для чанків: документи старші N днів помічаються як застарілі, пріоритет знижується через filter метаданих
{"updated_at": {"$gte": threshold}} - Вебхуки від джерел: миттєва переіндексація при зміні
- Scheduled resync: раз на день перевірка checksums для виявлення змін без вебхуків
На мобільному — показуємо дату останнього оновлення джерела поряд з кожним результатом.
Аналітика використання
Корпоративний інструмент вимагає аналітики: які запитання задають, на які нема відповідей, які документи найбільш використовуються. Це допомагає редакторам бази знань заповнювати прогалини.
Логуємо кожен пошук: запит, знайдені джерела, оцінку користувача (thumbs up/down). Дашборд для адміністраторів з топом «знайшли відповідь / не знайшли».
Етапи та термін
Інвентаризація джерел даних та їхніх API → проектування схеми прав доступу → розробка коннекторів та delta sync → ingestion pipeline → пошук з permission filtering → мобільний UI → аналітика → пілот з групою працівників → повний rollout.
MVP з одним джерелом (наприклад, тільки Confluence), базовим пошуком та мобільним додатком — 5–7 тижнів. Повнофункціональна система з 3–5 джерелами, правами доступу та аналітикою — 3–5 місяців.







