Конвейер заземления (Grounding)

Как SLAtech избегает hallucination

12-stage RAG-based grounding pipeline + structured citation system. Каждый response grounded в tenant content — не fine-tuned. Visitors видят citation snippets per source. Confidence-scored. Audit-trail logged. Continuous eval feedback. Пара с architecture overview, eval scoreboard и AI ethics statement.

1. Приём контента арендатора

Документы (PDF, DOCX, извлечённый HTML, пары вопрос-ответ FAQ, написанные вручную статьи) разбиваются на сегменты по 200-500 токенов с перекрытием в 50 токенов. Каждый фрагмент получает метаданные: ClientId (раздел арендатора), sourceUrl, chunkIndex, lastUpdated.

Technical: Алгоритм фрагментации учитывает структуру документа (границы абзацев), когда это возможно. Перекрытие предотвращает потерю контекста на границах фрагментов.

2. Генерация эмбеддингов

Наша модель эмбеддингов (1536 измерений) преобразует каждый фрагмент в семантический вектор. Эмбеддинги сохраняются в нашем векторном хранилище вместе с метаданными фрагмента.

Technical: Та же модель эмбеддингов используется для запросов — это обеспечивает семантическую корректность сравнений по косинусному сходству.

3. Эмбеддинг запроса

Когда посетитель отправляет сообщение, бот векторизует запрос той же моделью эмбеддингов. Эмбеддинг запроса фильтруется по ClientId до извлечения — межарендаторское загрязнение структурно невозможно.

Technical: Паттерн репозитория применяет фильтр ClientId на этапе компиляции через правило статического анализатора (SLATECH001).

4. Извлечение top-K

Векторное хранилище возвращает top-K (по умолчанию 10) фрагментов с наибольшим косинусным сходством с запросом. Порог ScoreThreshold по умолчанию = 0.5 отсеивает малорелевантные фрагменты.

Technical: TopK ограничен диапазоном [1, 20] согласно конфигурации каждого арендатора. Запросы ниже порога направляются на запасной ответ «нет релевантного контента» вместо галлюцинации.

5. Сборка контекста

Извлечённые фрагменты + системный промпт + история разговора передаются в LLM. Системный промпт явно инструктирует LLM: «Отвечай только из предоставленного контекста. Если ответа нет в контексте, скажи об этом».

Technical: Применяется бюджет токенов (по умолчанию 4000 токенов контекста); при превышении бюджета первыми отбрасываются фрагменты с низкой оценкой.

6. Генерация LLM

Ведущая большая языковая модель (по умолчанию) или настроенная арендатором LLM генерирует ответ, опираясь на извлечённый контекст. Температура по умолчанию 0.3 для обоснованных ответов, обращённых к клиенту.

Technical: Абстракция LLM-провайдера для каждого арендатора позволяет менять провайдеров языковой модели без миграции на стороне клиента.

7. Извлечение цитат

Ответ включает структурированный список цитат: { sourceUrl, snippet, score } для каждого извлечённого фрагмента. Snippet — это реально процитированный текст, а не просто URL.

Technical: Вспомогательный метод BuildSnippet в записи QueryRequest извлекает релевантный участок в 200 символов из фрагмента.

8. Потоковая передача SSE с событием sources-early

Транспорт Server-Sent Events. Первое событие — sources-early — отправляет метаданные цитирования до начала потоковой передачи LLM. Виджет рендерит всплывающую карточку «по данным», пока ответ ещё стримится.

Technical: Сокращает воспринимаемую задержку примерно на 70% по сравнению с синхронным ответом. Позволяет AI-скраперам извлекать обоснованные цитаты из ответа.

9. Оценка уверенности через LLM-as-Judge

Каждый ответ оценивается вторичным вызовом LLM по трём осям: фактологичность, галлюцинации и уверенность. Оценки отображаются в админском Inbox.

Technical: Оценка уверенности ниже 0.5 обычно запускает передачу оператору вместо угаданного ответа.

10. Передача оператору как запасной вариант

Когда уверенность низкая ИЛИ запрос определён как высокорисковый (клинический совет, юридическая позиция, регуляторный вопрос) — бот переходит к сценарию «с вами свяжется человек». Посетитель получает подтверждение + канал для обратной связи.

Technical: Классификатор риска настроен под каждую отрасль-вертикаль. Med направляет ВСЕ запросы, близкие к диагностике, оператору; Legal направляет ВСЕ запросы с существенными юридическими вопросами оператору.

11. Аудиторский след по каждому ответу

Каждый ответ логируется с полным контекстом: входной запрос, извлечённые фрагменты с оценками, системный промпт, использованная модель LLM, сгенерированный ответ, фрагменты цитат, оценки уверенности.

Technical: Журналы аудита хранятся 13 месяцев. Журнал аудита для каждого арендатора можно экспортировать на тарифе Enterprise.

12. Непрерывная обратная связь оценки

Оценочный набор прогоняется еженощно против запечатанного набора из 200 тестовых вопросов для каждой вертикали. Оценки галлюцинаций отслеживаются во времени. Регрессии на ≥3 пункта запускают оповещение о ручной сортировке.

Technical: Методология оценки открыта — покупатели могут запустить её против своего арендатора SLAtech. Опубликованное табло на /ru/eval/.

Verify grounding на вашем tenant

Eval harness и methodology — open-source. Запустите его против вашего SLAtech tenant для verify per-response factuality.