Knowledge Grounding

Проблема часто не в модели, а в базе: не тот документ, старая версия, конфликт данных, нет источников. AIRUS даёт управляемый слой знаний — с ответом, который можно проверить, посчитать и защитить.

Ответ с доказательствами

Каждый ответ RAG сопровождается источниками (документ, версия, retrieval score), grounding score (насколько ответ опирается на базу, а не выдуман) и RAG Receipt со стоимостью. Никакого «чат с PDF» — контроль качества, доступа и денег.

POST /v1/airus/knowledge-bases            # создать базу
POST /v1/airus/knowledge-bases/{id}/documents   # проиндексировать документ
POST /v1/airus/knowledge-bases/{id}/query
{
  "query": "Как оформить возврат?",
  "userContext": { "role": "support", "department": "cs" },
  "retrievalPolicy": "acl_safe_rerank"
}

Что в RAG Receipt

Источники и grounding
documents_retrieved, chunks_used, citations, answer_grounding_score (lexical_overlap_v0 — честная метрика покрытия, не маркетинговый фантик).
Доступ и свежесть
acl_enforcement_stage: pre_ranking (denied-чанк не читается/не ранжируется; число denied скрыто — existence-hiding), source_freshness_days, conflict_detected (разные версии), no_answer_recommended.
Стоимость за ответ
cost_rub с разбивкой: embedding / retrieval / rerank / generation / total. RAG легко становится дорогой помойкой — здесь видно каждую копейку.
Приватность
raw_content_stored: false — содержимое документов не попадает в телеметрию. Работает с hybrid-маршрутизацией и AI Firewall.

Knowledge ACL: не вся база всем

Документ помечается acl_scope (роль/отдел/клиент); retrieval отдаёт пользователю только доступные ему чанки. Отдел продаж не видит HR, подрядчик не видит финансы — ACL применяется ДО cosine ranking: запрещённый чанк не читается, не ранжируется и не влияет на ответ, а число заблокированного не раскрывается (existence-hiding).

Retrieval policies

  • fast_vector — быстрый векторный поиск.
  • acl_safe_rerank — с учётом прав доступа и переранжированием (по умолчанию).
  • citation_required — ответ только при наличии источников.
  • no_answer_if_not_grounded — честное «нет ответа», если grounding низкий.