Подключение баз знаний (RAG)
Использование баз знаний (RAG, от англ. Retrieval-Augmented Generation) — один из способов наделить AI-агента экспертизой в конкретной области.
Базы знаний позволяют агенту находить ответы в документах, статьях и других источниках. Благодаря этому он генерирует точные и релевантные ответы, основанные на ваших данных, а не на общих знаниях модели, которых может быть недостаточно.
Платформа Agent Platform имеет встроенную интеграцию с базами знаний, которые размещаются в Jay Knowledge Hub — платформе для создания, хранения и управления знаниями от компании Just AI. Если у вас есть аккаунт в Agent Platform, вы можете использовать его для доступа к Jay Knowledge Hub без дополнительной регистрации.
Создание подключения
Подготовьте в Jay Knowledge Hub базу знаний с документами, которые агент будет использовать для поиска ответов. Задайте необходимые настройки поиска релевантных фрагментов и генерации ответов — они будут использоваться при вызове функций из Agent Platform. Подробнее о создании базы знаний смотрите в документации Jay Knowledge Hub.
Agent Platform и Jay Knowledge Hub поддерживают работу в нескольких аккаунтах — группах проектов. Вы можете использовать одинаковые или разные аккаунты в Agent Platform и Jay Knowledge Hub. Это будет влиять на способ подключения.
Выбор аккаунта в Agent Platform-
В левом меню перейдите в раздел Интеграции.
-
Нажмите Подключить и выберите База знаний RAG.
-
В поле Доступ к базе знаний выберите, как вы будете подключаться к базе знаний:
- Текущий аккаунт — если база знаний находится в том же аккаунте Jay Knowledge Hub, что и проект в Agent Platform.
- Другие учетные данные — если база знаний находится в другом аккаунте Jay Knowledge Hub.
-
Заполните параметры в зависимости от выбранного способа подключения:
- Текущий аккаунт
- Другие учетные данные
- Выберите нужный проект с базой знаний из списка.
- Укажите название интеграции — оно будет отображаться на странице с интеграциями.
-
Выберите учетные данные для доступа к нужному аккаунту Jay Knowledge Hub из списка или создайте новые.
API-ключ для доступа к базе знаний можно получить в личном кабинете Jay Knowledge Hub. Вам необходимо создать ключ типа «Проектный».
-
Укажите название интеграции — оно будет отображаться на странице с интеграциями.
-
Нажмите Сохранить.
Интеграция появится в списке, и вы сможете выбрать ее в настройках функций Rag на холсте.
Использование в процессе
После создания интеграции вы сможете использовать встроенные функции Rag в конструкторе процессов:
retrieveChunks— ищет в базе знаний фрагменты документов, релевантные запросу. Полученные фрагменты можно передать агенту для генерации ответа или дополнительной обработки. В этом случае функцию нужно использовать как инструмент.generateAnswer— генерирует ответ на вопрос на стороне Jay Knowledge Hub, используя базу знаний. Эту функцию лучше использовать как отдельный шаг в процессе.
Режим «Функция»
Базовый режим, чтобы использовать функцию как отдельный шаг в процессе.
- Как работает: система вызывает выбранную функцию с заданными параметрами. Для получения результата в следующем блоке используйте метод
Context.getLastFunctionResult(). - Когда использовать: для задач, где вызов внешней системы — это четкий шаг в процессе. Например: «получить курс валют», «рассчитать доставку», «проверить статус заказа».
Настройка
-
В левом меню перейдите в Конструктор → .
- Выберите Функции → Встроенные → Rag.
-
Перетащите функцию на холст и укажите параметры. Вы можете задать их вручную или использовать динамическую подстановку данных, например:
- Для актуальной версии движка:
ID этого канала: {{ request.botId}}. - Для предыдущей версии движка:
{{'ID этого канала: ' + Context.getBotId()}}.
- Для актуальной версии движка:
-
Если в вашем проекте актуальная версия движка, вы можете задать параметры на вкладке Поведение:
-
Время ожидания ответа: до 60 минут. Если выполнение функции не завершится за это время, будет зафиксирована ошибка.
-
Повторные попытки при ошибке: до 10 повторных вызовов.
Например, если указать таймаут 20 секунд и количество повторных попыток 3, то суммарное время ожидания может составить до 80 секунд: 20×(1+3).
-
Возвращать указанное значение вместо ошибки: если функция не выполнится успешно после всех попыток, процесс не прервется, а на выход блока будет передано заданное значение (число, строка, JSON-объект, true/false или null).
-
Пример
- Добавьте на холст:
- триггер Сообщение;
- функцию
Rag.generateAnswer(); - функцию
Reactions.sendText().
Соедините их последовательно.
- В настройках функции
Rag.generateAnswer():- выберите из списка интеграцию с базой знаний;
- в параметре query укажите значение
- для актуальной версии движка:
{% if request.query %} {{ request.query }} {% else %}Чем ты можешь помочь?{% endif %}; - для предыдущей версии движка:
{{ Context.getMessageContent().text || "Чем ты можешь помочь?" }}.
- для актуальной версии движка:
- В настройках функции
Reactions.sendText()укажите значение:- для актуальной версии движка:
{{ previousResult.response }}; - для предыдущей версии движка:
{{ Context.getLastFunctionResult().response }}.
- для актуальной версии движка:
Такой процесс передает запрос пользователя в базу знаний, а ответ базы знаний возвращает пользователю.
Режим «Инструмент»
Используется совместно с блоком Агент, позволяя AI самостоятельно решать, когда вызывать функцию.
- Как работает: вы не вызываете функцию напрямую — она становится «инструментом» для агента. Агент сам решает, когда и как ее использовать, исходя из диалога с пользователем.
- Когда использовать: для гибких систем, где агент взаимодействует с внешним миром: например, «забронируй переговорную» или «какой у меня баланс?».
Подробнее о настройке функций в режиме инструмента смотрите в разделе про блок «Агент».
Вызов в коде
Функцию можно вызвать:
-
Из JavaScript-выражений в блоках Код и Условие. Пример смотрите в разделах Код и Условие.
-
Из кода других (пользовательских) функций.
-
Из параметров других функций (только если в вашем проекте движок версии 1).
Пример:
При вызове функций указывайте коллекцию, например:
// Вызов функции generateAnswer из коллекции Rag
Rag.generateAnswer();
Сохранение результата в контекст
Результат выполнения функции можно записывать в служебную память, используемую агентами. Подробнее смотрите в разделе Управление контекстом агентов.