База знаний LLM
Платформа "Лия" использует большие языковые модели (LLM) для генерации контекстно-зависимых и точных ответов. Управление логикой генерации осуществляется через две ключевые реакции в конструкторе сценариев:
- LLM-Ответ: Формирует и отправляет конечным пользователям развернутые текстовые ответы, сгенерированные на основе данных из Базы Знаний.
- LLM-Анализ: Выполняет анализ входящих данных, извлекает сущности и сохраняет результат в переменные для дальнейшего использования в логике сценария.
Для активации данных реакций требуется предварительная настройка и наполнение Базы Знаний, которая служит источником информации для LLM.
Активация и настройка Базы Знаний
Доступ к управлению Базой Знаний осуществляется через соответствующий раздел в главном меню навигационной панели платформы.
При отсутствии доступа к данному модулю, свяжитесь с вашим аккаунт-менеджером для его активации.
Интерфейс и управление данными
После активации модуля в навигационной панели становится доступен раздел "База знаний", предоставляющий инструменты для управления источниками данных.
При инициализации пустого хранилища интерфейс предлагает загрузить исходные данные.
Загрузка данных осуществляется двумя способами:
- + Файл: Позволяет выполнять пакетную или единичную загрузку файлов (PDF, TXT, DOCX, JSON) размером до 5 МБ каждый через Drag-and-Drop или стандартный файловый менеджер.
- + Контент: Открывает форму для создания текстовых сущностей (до 10 000 символов) непосредственно в интерфейсе платформы. Требуется указать заголовок и основной текстовый материал.
После загрузки данных, в интерфейсе отображается таблица, содержащая следующие поля:
- Наименование: Идентификатор файла или текстовой сущности.
- Тип:
ФайлилиТекст. - Обновлён: Timestamp последнего изменения.
- Автор: Пользователь, загрузивший данные.
- Статус: Текущий статус индексации (см. раздел Статусы данных).
- Активен: Toggle-переключатель для включения/исключения данных из поискового индекса Базы Знаний.
Интерфейс предоставляет инструменты для фильтрации и сортировки данных. Фильтрация возможна по диапазону дат, типу, статусу и автору. Сортировка доступна для полей "Наименование" и "Обновлён".
Статусы данных
Каждая единица контента в Базе Знаний имеет один из трех статусов:
- Индексация: Процесс обработки и векторизации данных. Этот статус также присваивается при деактивации контента.
- Работает: Индексация успешно завершена, данные доступны для использования LLM-реакциями.
- Ошибка: Произошел сбой при обработке данных. Рекомендуется проверить формат файла и перезапустить процесс индексации.
Требования к качеству данных
Качество данных в Базе Знаний напрямую влияет на релевантность и точность генерируемых LLM ответов. Ниже приведены ключевые требования к контенту.
| Критерий | Описание | Обоснование |
|---|---|---|
| Полнота | Данные должны комплексно охватывать предметную область, исключая пробелы в критически важной информации. | Неполные данные могут приводить к генерации фактологически некорректных или нерелевантных ответов («галлюцинаций»). |
| Точность и достоверность | Вся информация должна быть верифицирована и соответствовать действительности. | Ошибки в исходных данных ведут к генерации неверных ответов, что снижает доверие к системе и несет репутационные риски. |
| Актуальность | Данные необходимо регулярно обновлять. Устаревшая информация должна быть удалена или деактивирована. | Использование устаревших данных (например, неактуальные тарифы или версии продукта) может дезинформировать пользователей. |
| Непротиворечивость | База Знаний должна быть логически последовательной, без взаимоисключающих фактов или инструкций. | Противоречия в данных приводят к нестабильности и непредсказуемости генерируемых ответов. |
| Ясность | Текст должен быть четким и однозначным. Профессиональный жаргон следует использовать уместно, при необходимости сопровождая пояснениями. | Высокое качество и ясность исходного текста снижают вероятность неверной интерпретации данных моделью. |
| Конфиденциальность | Запрещается загружать персональные данные, коммерческую тайну и другую чувствительную информацию. | Обеспечение безопасности данных является приоритетом. Модель может случайно воспроизвести конфиденциальную информацию в ответе. |
Требования к структуре данных
Оптимизация структуры данных повышает эффективность их индексации и поиска. Рекомендуется придерживаться следующих правил.
| Критерий | Описание | Обоснование |
|---|---|---|
| Структурированность | Комбинируйте структурированные (таблицы, списки) и неструктурированные (текстовые статьи) форматы данных. | Структурированные данные облегчают модели извлечение фактов и понимание взаимосвязей. Формат FAQ является одним из наиболее эффективных. |
| Метаданные | Сопровождайте документы метаданными: теги, ключевые слова, дата создания/обновления, автор, категория. | Метаданные улучшают релевантность поиска, позволяя модели точнее контекстуализировать информацию. |
| Иерархия | Организуйте контент в логическую иерархию с использованием заголовков (H1, H2, H3) и гиперссылок. | Четкая иерархия помогает модели понимать семантические связи между различными разделами контента. |
| Атомарность | Каждый документ или его раздел должен быть посвящен одной конкретной теме. | Атомарность контента повышает точность поиска и снижает риск смешения контекстов. |
| Формат FAQ | Для часто задаваемых вопросов используйте формат «Вопрос-Ответ». | Данный формат оптимизирован для быстрого поиска и извлечения готовых ответов. |
| Примеры и кейсы | Включайте в контент практические примеры, кейсы и сценарии использования. | Примеры способствуют лучшему пониманию моделью практического применения информации. |
Качество и структура Базы Знаний являются определяющими факторами для эффективности работы LLM-агента.
Конфигурация LLM-реакций в сценарии
Интеграция LLM в логику диалога осуществляется в редакторе сценариев. В панели компонентов доступны две специализированные реакции: LLM-Ответ и LLM-Анализ.
Реакция «LLM-Ответ»
Данная реакция предназначена для генерации и отправки текстового ответа пользователю. Компонент добавляется в сценарий методом Drag-and-Drop.
Панель конфигурации открывается по клику на блок реакции и содержит следующие параметры:
Источник данных
В выпадающем списке «База знаний» необходимо выбрать источник данных для генерации ответа. Если База Знаний не была предварительно настроена, обратитесь к соответствующим разделам документации.
Промпт
Поле для ввода инструкций модели (до 3 000 символов). Поддерживается использование переменных контекста для динамической генерации промпта. Например, можно использовать переменную {{user_name}}, чтобы в промпте использовать имя пользователя.
Температура
Параметр, контролирующий степень случайности генерации. Низкие значения (0–0.5) обеспечивают более детерминированные и предсказуемые ответы. Высокие значения (0.7–1.0) повышают креативность, но могут снижать фактологическую точность. Рекомендуемое значение: 0.7.
Макс. токенов
Ограничивает длину ответа (1 токен ≈ 1 слово/символ).
- 100–300 — короткие ответы.
- 1000+ — развернутые тексты.
Пример: 300 токенов ≈ 2–3 абзаца.
Таймаут (сек)
Максимальное время ожидания ответа.
- 5–10 сек — быстрые ответы, риск обрыва длинных.
- 15–30 сек — больше времени на полный текст.
Оптимум: 15 секунд.
Опция «Всегда генерировать»
- Включено: Модель сгенерирует ответ даже при недостатке релевантной информации в Базе Знаний (повышается риск «галлюцинаций»).
- Выключено: Реакция пойдет в ветку с ошибкой, если в Базе Знаний не найдено релевантной информации.
Модерировать входящее сообщение
Переключатель, который активирует проверку входящего сообщения пользователя перед отправкой в LLM. Если сообщение содержит неприемлемый контент (угрозы, оскорбления и т.д.), оно будет заблокировано — LLM-генерация не выполняется, а пользователю отправляется предустановленный текст.
При активации появляется поле «Текст неуспешной модерации» — сообщение, которое будет отправлено пользователю вместо ответа LLM в случае блокировки. Например: Извините, не можем ответить на данное сообщение.
Модерация проверяет входящее сообщение пользователя, а не ответ LLM. Для проверки исходящего ответа LLM используйте реакцию LLM-GR (Guardrails).
Silent mode
Переключатель, который переводит реакцию в «тихий» режим: ответ LLM не отправляется пользователю, а сохраняется в указанную переменную контекста для дальнейшей обработки.
При активации появляется обязательное поле «Переменная для сохранения» — имя переменной, в которую будет записан сгенерированный ответ. Например: llm_answer.
Когда использовать: Silent mode необходим, если после LLM-Ответ планируется проверка через реакцию LLM-GR (Guardrails). Без Silent mode ответ будет отправлен пользователю напрямую, минуя проверку.
Выходные порты реакции
Реакция имеет два выходных порта, соответствующих результату выполнения:
- Успех: Ответ успешно сгенерирован и отправлен.
- Ошибка: Генерация ответа не удалась (например, из-за таймаута, недостатка данных или строгих настроек).
В сценарии можно предусмотреть отдельную логику для каждого из исходов.
Реакция «LLM-Анализ»
Данная реакция предназначена для извлечения, анализа и структурирования данных из пользовательского ввода или других источников. Результат анализа сохраняется в переменную для дальнейшего использования в логике сценария.
Панель конфигурации открывается по клику на блок реакции и содержит следующие параметры:
Переменная для сохранения
Имя переменной, в которую будет сохранен результат анализа. Эта переменная может быть использована в последующих блоках сценария.
Источник данных
В выпадающем списке «База знаний» необходимо выбрать источник данных для анализа. Если База Знаний не была предварительно настроена, обратитесь к соответствующим разделам документации.
Промпт
Поле для ввода инструкций модели (до 3 000 символов). Здесь задаются правила анализа, требуемый формат вывода и условия для извлечения данных. Поддерживается использование переменных контекста.
Температура
Параметр, контролирующий степень случайности генерации. Низкие значения (0–0.5) обеспечивают более детерминированный анализ. Высокие значения (0.7–1.0) допускают большую гибкость. Рекомендуемый диапазон: 0.5–0.7.
Максимальное количество токенов
Ограничивает максимальную длину генерируемого результата. Значение в диапазоне 100-300 токенов подходит для коротких результатов, 1000+ — для развернутых.
Таймаут (сек)
Максимальное время ожидания ответа от модели. Рекомендуемое значение — 15 секунд.
Выходные порты реакции
Реакция имеет два выходных порта:
- Успех: Анализ успешно выполнен, результат сохранен в переменную.
- Ошибка: Выполнение анализа не удалось. Сценарий переходит по ветке «Ошибка».
При возникновении дополнительных вопросов рекомендуется обратиться к соответствующему разделу FAQ или к вашему аккаунт-менеджеру.
В чем различие между NLU-ответами и ответами, сгенерированными из Базы Знаний?
- NLU-ответы являются детерминированными и основаны на заранее определенных правилах и интентах в сценарии.
- Ответы из Базы Знаний генерируются LLM динамически на основе семантического поиска по предоставленным данным. Это обеспечивает большую гибкость и способность обрабатывать запросы, не предусмотренные в NLU-модели.
Возможна ли гибридная модель ответов (NLU + База Знаний)?
Да, платформа поддерживает гибридную модель. Ответы из Базы Знаний могут использоваться совместно с NLU-логикой. Реакция «LLM-Анализ» позволяет извлекать данные из Базы Знаний и сохранять их в переменные для дальнейшего использования в основной логике сценария, например, в скриптлетах.
Как происходит маршрутизация запроса между NLU-сценарием и Базой Знаний?
Маршрутизация запросов контролируется разработчиком сценария. Обращение к Базе Знаний инициируется явным вызовом реакций «LLM-Ответ» или «LLM-Анализ» в соответствующей точке диалогового сценария.
Настройка и интеграция
Каков процесс интеграции Базы Знаний?
Модуль Базы Знаний является предустановленным. Процесс интеграции сводится к наполнению его данными одним из двух способов:
- Загрузка файлов: Поддерживаются форматы PDF, TXT, DOCX, JSON (до 5 МБ на файл).
- Создание текстовых сущностей: Ввод текста (до 10 000 символов) через интерфейс.
Все загруженные данные автоматически проходят векторизацию и индексируются. Интеграция в логику бота осуществляется вызовом LLM-реакций в редакторе сценариев.
Какие форматы данных поддерживаются для Базы Знаний?
Поддерживаются файловые форматы PDF, TXT, DOCX, JSON и ввод текстовых данных (plain text). Прямая интеграция с внешними API или базами данных в качестве источников для Базы Знаний на данный момент не реализована.
Поддерживается ли работа с несколькими Базами Знаний?
Нет, в рамках одного проекта поддерживается только одна База Знаний.
Каков механизм обновления индекса Базы Знаний?
Процесс индексации и векторизации запускается автоматически в реальном времени при добавлении или обновлении данных. Длительность процесса зависит от объема информации. Изменения вступают в силу для конечных пользователей после публикации (деплоя) новой версии проекта.
Требуется ли дополнительное обучение или настройка NLP-модели?
Предобученная модель готова к работе с данными из коробки. Однако для тонкой настройки генерации ответов доступны параметры, такие как «температура», «максимальное количество токенов» и «промпт».
Точность и качество
Какой механизм поиска используется в Базе Знаний?
Поиск основан на векторном (семантическом) представлении данных. Вся информация при загрузке проходит процесс векторизации и сохраняется в векторном хранилище, что обеспечивает высокоскоростной семантический поиск.
Как обрабатываются случаи, когда ответ не найден?
Рекомендуется в сценарии предусматривать отдельную ветку логики для обработки случаев, когда релевантный ответ в Базе Знаний не найден или произошла техническая ошибка при генерации. Это позволяет корректно обрабатывать исключительные ситуации.
Поддерживается ли мультиязычность?
Да. Язык генерируемого ответа можно задать в промпте LLM-реакции. Для достижения наилучшего качества рекомендуется, чтобы язык запроса, язык контента в Базе Знаний и язык, указанный в промпте, совпадали.
Как обрабатывается смешанный языковой контент?
LLM способны обрабатывать мультиязычный контент, однако это может повлиять на качество генерируемых ответов. Для обеспечения оптимальной производительности рекомендуется поддерживать языковую однородность контента в Базе Знаний.