Короткий ответ
Чат-бот по базе знаний на технологии RAG сначала находит нужные места в ваших документах, затем пишет ответ по ним и называет файл. Он опирается на актуальные материалы компании, а не на память модели. Ему нужны аккуратные документы, права доступа и набор тестовых вопросов, а если знаний на одну страницу, хватит FAQ.
Бот отвечает по вашим документам, а не по памяти
Чат-бот по базе знаний — это помощник, который сначала заглядывает в бумаги, а потом отвечает. Получив вопрос, он ищет подходящие места в наборе ваших документов и пишет ответ по найденному. Технология называется RAG, то есть генерация с дополнением поиском. Её описали в 2020 году Патрик Льюис и коллеги, статью приняли на конференции NeurIPS. Авторы соединили два вида памяти: то, чему модель научилась при обучении, и внешний индекс текстов, к которому она может обратиться.
Причина прагматичная. В аннотации к статье сказано, что указание происхождения решений модели и обновление её знаний остаются открытыми исследовательскими задачами. Бизнес сталкивается с обеими в первый же день. Ассистент должен показать, откуда взята цена или правило, а прайс меняется каждый квартал. Поиск смягчает оба затруднения: поправили документ — изменился следующий ответ, а рядом с ответом стоит имя файла.
Четыре шага от вопроса до ответа с источником
Википедия описывает процесс в четыре стадии. Индексирование превращает исходные данные в числовые векторы и кладёт их в векторную базу. Поиск выбирает документы, наиболее близкие к вопросу. Дополнение добавляет найденные фрагменты к вопросу, который уходит в модель, а генерация формирует ответ из того и другого. Некоторые системы вставляют между шагами повторное ранжирование.
Документация OpenAI показывает тот же конвейер как готовый продукт. Инструмент поиска по файлам работает с загруженными вами файлами: их добавляют в векторное хранилище, оно служит базой знаний, а модель сама решает, когда к нему обратиться. В ответе приходят ссылки с названием файла, среди поддерживаемых форматов — PDF, DOCX, PPTX, Markdown и HTML. Документация Microsoft добавляет, что отправлять модели десять тысяч страниц с каждым вопросом расточительно и снижает качество, поэтому нужны только несколько подходящих фрагментов. Там же отмечено, что слова вопроса и документа часто не совпадают, и хорошие системы сочетают поиск по ключевым словам и по смыслу.
Как подготовить документы, чтобы поиск работал
Ответ не может быть лучше документа. Википедия называет среди известных слабостей противоречивые и устаревшие сведения: система может не понять, какой источник верен, и смешать старое с новым. Поэтому первая задача — порядок. Оставьте одну актуальную версию каждого документа, старые уберите или пометьте, на каждом файле укажите дату и владельца.
В руководстве Microsoft сказано, что качество определяет подготовка содержимого, а большие документы режут на фрагменты, которые можно находить по отдельности. Сканы страниц сначала нужно распознать. На практике заголовки, короткие разделы и таблицы с настоящим текстом работают лучше скриншотов таблиц. Начинайте с малого: десять-двадцать документов с ответами на самые частые вопросы клиентов и сотрудников — лучший первый набор, чем весь общий диск.
Права доступа: кто какой ответ вправе увидеть
Microsoft называет безопасность и управление доступом одной из главных трудностей метода. Открывая закрытые материалы языковой модели, нужно тонко разграничить права, чтобы человек получал только то, что ему разрешено. Пример там простой: данные финансистов должны доходить только до финансовой службы, даже если чат-бота спрашивает руководитель. Один ассистент поверх всех файлов компании с единой дверью — схема, которой стоит избегать.
Контроль должен стоять на этапе поиска. В документации Microsoft описаны отсечение результатов по правам на уровне документа и фильтры при запросе, а поиск по файлам у OpenAI умеет сужать выдачу по атрибутам файла. OWASP, перечисляющий главные риски приложений на языковых моделях, советует минимум привилегий: давать только те данные, что нужны конкретному пользователю или процессу. Там же предупреждают, что ограничения в системной инструкции могут не соблюдаться и обходятся внедрением команд в запрос.
Значит, фраза «не показывай зарплаты» не защита. До разработки решите, какие группы существуют, какие папки каждой разрешены и кто ведёт этот список. Если в файлах есть персональные данные сотрудников или клиентов, прежде чем загружать их в индекс, проверьте свой случай у юриста.
Как проверить ответы до того, как на них начнут полагаться
Перед запуском составьте список из тридцати реальных вопросов с верными ответами. Включите вопросы, ответ на которые лежит в одном файле, в двух противоречащих, нигде или в файле, который спрашивающему видеть нельзя. По словам Википедии, языковые модели могут отвечать, даже когда сведений мало, вместо того чтобы признать неуверенность, поэтому случай «нигде» самый показательный: верный ответ — что ничего не найдено.
Проверяйте источник, а не только формулировку. Откройте указанный файл и сравните с ответом: Википедия отмечает, что модель способна неверно понять контекст, даже когда источник правильный. Настройки тоже компромисс: в документации OpenAI сказано, что уменьшение числа найденных результатов экономит токены и время, но может снизить качество ответа. Сохраните список и прогоняйте его после каждого изменения документов или настроек.
В чём RAG-бот по-прежнему ошибается
Википедия говорит прямо: поиск снижает число выдуманных ответов, но не устраняет их. Система может достать верный по фактам, но вводящий в заблуждение источник, смешать действующее правило с устаревшим или неверно понять смысл фразы. Ссылка под ответом нужна, чтобы человек увидел это и поправил, а не чтобы ответ можно было не читать.
Найденный текст бывает и враждебным. Википедия описывает отравление источников RAG, когда данные, из которых система ищет, подменяют, а OWASP — внедрение команд в запрос. У частного ассистента по вашим файлам такой риск меньше, но он растёт там, где в индекс попадает чужой текст: письма клиентов, веб-страницы, файлы, загруженные заказчиками. Всё, что влечёт юридические или финансовые последствия, оставьте за человеком.
Когда чат-бот по базе знаний избыточен
Если все знания помещаются на одной странице, напишите эту страницу. Аккуратный FAQ с понятными заголовками и поиск по сайту отвечают на несколько десятков устойчивых вопросов быстрее, стоят меньше и ничего не выдумают. То же верно для команды из трёх человек с десятью файлами в одной папке: хватит поиска по папке.
Метод окупается там, где документов много, одни и те же вопросы задают снова и снова, а ответ должен показывать источник: поддержка читает инструкции к продуктам, новички — регламенты, продавцы — прайсы и условия. Для живых данных вроде остатков на складе или статуса заказа он не годится: их берут запросом к базе, а не поиском по документам. А если документы противоречат друг другу, сначала исправьте документы.
Что подготовить перед заказом частного ассистента по документам
Подготовьте четыре вещи. Выберите десять документов с самыми частыми ответами в актуальных версиях. Запишите, кому или какой команде разрешено читать каждый из них. Составьте двадцать реальных вопросов с ответами, которые вы считаете верными, в том числе два, на которые файлы ответить не могут. Решите, где будет жить ассистент: на сайте, в мессенджере или в рабочем пространстве команды.
Студия VITON13 предлагает это как пакет «Частный ассистент по вашим документам». Ассистент отвечает только по вашим документам, ставит под каждым ответом ссылку на источник и ограничивает доступ по человеку или команде. До оплаты студия собирает демонстрацию на десяти ваших документов, чтобы вы оценили ответы на своём материале, а не на витринном.
Фиксированная цена — 213 $, а ежемесячный тариф с хостингом и обновлением документов — 33 $ в месяц. Работа занимает 10–15 рабочих дней. Результат заранее не обещается: что ассистент сумеет ответить, зависит от документов, которые вы дадите, поэтому бесплатная демонстрация идёт первой. Точные условия показаны на странице пакета и на странице бесплатного черновика.
Практический чеклист
- Выберите десять актуальных документов с самыми частыми ответами и уберите устаревшие версии.
- Запишите, кому или какой команде разрешено читать каждый документ, прежде чем что-то индексировать.
- Подготовьте двадцать реальных вопросов с верными ответами, два из них — без ответа в файлах.
- Под каждым тестовым ответом откройте указанный файл и сверьте его с формулировкой.
- Назначьте одного владельца, который обновляет документы и прогоняет список вопросов после каждой правки.
Вопросы и ответы
Чем RAG-бот отличается от обычного чат-бота?
Обычный бот отвечает по тому, чему модель научилась при обучении, или по заранее написанным сценариям. RAG-бот сначала достаёт фрагменты из ваших документов и пишет ответ по ним, поэтому может опираться на свежий материал и называть файл.
RAG полностью избавляет модель от выдумок?
Нет, он их сокращает, но не убирает. Википедия прямо пишет, что ошибки остаются возможными, поэтому каждый ответ должен показывать источник, а всё, что имеет юридический или финансовый вес, должен проверять человек.
Какие форматы файлов ассистент по документам умеет читать?
Это зависит от инструмента. В документации поиска по файлам у OpenAI перечислены PDF, DOCX, PPTX, Markdown, JSON, HTML и обычный текст, среди прочих. Сканы-картинки сначала нужно распознать, поэтому лучше брать файлы с настоящим текстом.
Как не дать сотрудникам увидеть лишние документы?
Задавайте правила на этапе поиска, чтобы вопрос человека мог дойти только до файлов, которые ему разрешено читать. Запрет в инструкции для модели можно обойти, как предупреждает OWASP, поэтому он не может быть единственной защитой.
Сколько документов нужно, чтобы начать?
Для первой версии хватит десяти-двадцати актуальных документов, закрывающих самые частые вопросы. Небольшой чистый набор проще проверить, и он быстро покажет, подходит ли подход вашей команде, прежде чем добавлять остальное.
