ПРАКТИКА / AI-агенты

AI по внутренним документам: как подготовить базу знаний и права доступа

НАЙТИ.ПОНЯТЬ.
?
КОРОТКО

RAG сначала находит подходящие фрагменты документов, затем использует их для ответа. Надежность зависит от актуальности источников, качества поиска и проверки прав до передачи текста модели; загруженной папки самой по себе недостаточно.

Загрузить папку документов в AI недостаточно. Система должна найти подходящую информацию, выбрать действующую версию, учесть права человека и показать, на чём основан ответ. Без этого красивый чат лишь скрывает прежний беспорядок в знаниях компании.

Что делает RAG

RAG — подход, при котором система сначала находит материалы по запросу, а затем использует найденное при подготовке ответа. Это позволяет работать с внешней базой знаний, не пытаясь заранее вместить все документы в инструкцию. Наличие поиска само по себе не гарантирует правильность ответа.

Условный пример: сотрудник спрашивает, можно ли согласовать скидку. Поиск находит правило для нужного продукта, подразделения и периода. Ответ объясняет правило и даёт ссылку на конкретный раздел. Если подходящего документа нет, системе нужен сценарий уточнения или передачи вопроса владельцу процесса.

Начните с инвентаризации

Выберите одну область: ответы поддержки, инструкции для менеджеров или регламент согласования. Для первого запуска полезнее законченный и управляемый набор, чем все файлы компании. По каждому документу соберите название, владельца, дату действия, статус и группы доступа.

Архивные версии не обязательно удалять: они могут понадобиться для исторического вопроса. Но архив должен отличаться от действующего документа. Если два владельца публикуют противоречащие правила, проблема требует решения в компании; модель не должна выбирать удобную ей версию.

Проверьте, что попало в поиск

PDF может содержать изображение вместо текста, а таблица после извлечения потерять связи между колонками. Проверяйте результат обработки на реальных страницах. Сохраните заголовки, единицы измерения, примечания и ссылки между разделами, которые нужны для понимания правила.

Документ часто разбивается на фрагменты. Фрагмент без названия продукта или даты способен попасть в неподходящий ответ. Размер и способ разбиения выбирайте по типам документов и проверочным вопросам. Для точного артикула и общего вопроса могут понадобиться разные способы поиска.

СХЕМАДва фильтра перед ответомДоступ пользователя и действующая версия ограничивают материал, который попадёт в ответ.
Два фильтра перед ответомДоступ пользователя и действующая версия ограничивают материал, который попадёт в ответ.БазазнанийПраваВерсияПоискОтвет+ источник
  1. 01Права. Закрытый документ не передаётся модели для неподходящего пользователя.
  2. 02Версия. Архивное правило не подменяет действующее.
  3. 03Источник. Ответ можно проверить по конкретному документу.

Расположение фильтров условное: в реализации проверки выполняются на нужных этапах поиска и выдачи.

Права проверяются до ответа

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

Метаданные помогают отбирать документы. Например, в документации OpenAI Retrieval описана фильтрация по атрибутам до семантического поиска. Но наличие фильтра не означает готовую систему авторизации: приложение должно правильно определить пользователя, его группы и допустимые материалы.

Проверьте кэш отдельно. Ответ, подготовленный для руководителя, не должен становиться доступным сотруднику с другими правами. При изменении разрешений или удалении документа нужно знать, какие индексы, фрагменты и сохранённые результаты обновить.

Показывайте основания и пределы ответа

Хороший ответ указывает источник и применимую версию правила. Ссылка на огромную папку мало помогает проверке; полезнее конкретный документ и раздел. Если источники противоречат друг другу, это нужно отметить, а не склеивать их в уверенную формулировку.

Отсутствие найденного фрагмента не доказывает, что правила нет. Возможно, не сработал поиск или материал ещё не обработан. Предусмотрите уточняющий вопрос, другой способ поиска и обращение к ответственному. При этом ответ не должен раскрывать существование закрытого документа человеку без доступа.

Как принимать такую систему

  • Правильный документ находится по формулировкам реальных сотрудников.
  • Ответ соответствует источнику, а ссылка ведёт в нужное место.
  • Устаревшая инструкция не подменяет действующую.
  • Чужие материалы не появляются в ответах и подсказках.
  • Новый, изменённый и удалённый документ корректно проходят обновление.
  • Вопрос без достаточных оснований вызывает уточнение, а не выдуманный ответ.

Проверяйте отдельно поиск и написание ответа. Если нужный фрагмент не найден, переписывание промпта может не исправить причину. Для каждого промаха сохраняйте запрос, разрешённый набор данных, найденные фрагменты и результат проверки, соблюдая принятые правила хранения.

После запуска у базы знаний остаётся владелец. Он отвечает за обновления и спорные правила; команда продукта — за качество поиска и интерфейс. Такой сервис работает как процесс сопровождения знаний, а не как разовая загрузка файлов.

СХЕМАОбновить документ — не последняя операцияИзменение должно дойти до индекса и перестать воспроизводиться из кэша.
Обновить документ — не последняя операцияИзменение должно дойти до индекса и перестать воспроизводиться из кэша.ИзменённыйдокументИндексКэшНовые ответыВладелец+ дата+ доступ
  1. АОригинал. Владелец подтверждает новое правило и срок действия.
  2. БПроизводные данные. Обновить поиск и управлять устаревшими результатами.
  3. ВПроверка. Повторить прежний вопрос и убедиться, что используется нужная версия.

Схема жизненного цикла. Ответы не являются отдельным источником истины.

Минимальный реестр для запуска

Создайте таблицу с полями «документ», «владелец», «действует с», «заменяет», «кому доступен», «где оригинал» и «когда проверен». Одна строка на версию. По ней можно понять, что обновить при изменении тарифа и кто должен подтвердить спорное правило.

После загрузки задайте два похожих вопроса от разных ролей. Например, сотрудник поддержки спрашивает о публичных условиях, руководитель — о внутренних основаниях исключения. Ответы должны отражать доступные источники, а не различаться только степенью подробности. Не давайте всем пользователям один общий ключ, если он открывает документы шире их полномочий.

Затем измените контрольный документ и повторите запрос: старое правило не должно сохраняться в ответе из-за кэша. Проверка обновления — обязательная часть приёмки, поскольку база знаний полезна ровно до того момента, пока ей можно доверять.