Перейти к основному содержимому

Подключение баз знаний (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
  1. В левом меню перейдите в раздел Интеграции.

  2. Нажмите Подключить и выберите База знаний RAG.

  3. В поле Доступ к базе знаний выберите, как вы будете подключаться к базе знаний:

    • Текущий аккаунт — если база знаний находится в том же аккаунте Jay Knowledge Hub, что и проект в Agent Platform.
    • Другие учетные данные — если база знаний находится в другом аккаунте Jay Knowledge Hub.
  4. Заполните параметры в зависимости от выбранного способа подключения:

    • Выберите нужный проект с базой знаний из списка.
    • Укажите название интеграции — оно будет отображаться на странице с интеграциями.
  5. Нажмите Сохранить.

Интеграция появится в списке, и вы сможете выбрать ее в настройках функций Rag на холсте.

Использование в процессе

После создания интеграции вы сможете использовать встроенные функции Rag в конструкторе процессов:

  • retrieveChunks — ищет в базе знаний фрагменты документов, релевантные запросу. Полученные фрагменты можно передать агенту для генерации ответа или дополнительной обработки. В этом случае функцию нужно использовать как инструмент.
  • generateAnswer — генерирует ответ на вопрос на стороне Jay Knowledge Hub, используя базу знаний. Эту функцию лучше использовать как отдельный шаг в процессе.

Режим «Функция»

Базовый режим, чтобы использовать функцию как отдельный шаг в процессе.

  • Как работает: система вызывает выбранную функцию с заданными параметрами. Для получения результата в следующем блоке используйте метод Context.getLastFunctionResult().
  • Когда использовать: для задач, где вызов внешней системы — это четкий шаг в процессе. Например: «получить курс валют», «рассчитать доставку», «проверить статус заказа».

Настройка

  1. В левом меню перейдите в Конструктор.

  2. Выберите ФункцииВстроенныеRag.
  3. Перетащите функцию на холст и укажите параметры. Вы можете задать их вручную или использовать динамическую подстановку данных, например:

    • Для движка версии 2: ID этого канала: {{ request.botId}}.
    • Для версии 1: {{'ID этого канала: ' + Context.getBotId()}}.
  4. Если в вашем проекте движок версии 2, вы можете задать параметры на вкладке Поведение:

    • Время ожидания ответа: до 60 минут. Если выполнение функции не завершится за это время, будет зафиксирована ошибка.

    • Повторные попытки при ошибке: до 10 повторных вызовов.

      Например, если указать таймаут 20 секунд и количество повторных попыток 3, то суммарное время ожидания может составить до 80 секунд: 20×(1+3).

    • Возвращать указанное значение вместо ошибки: если функция не выполнится успешно после всех попыток, процесс не прервется, а на выход блока будет передано заданное значение (число, строка, JSON-объект, true/false или null).

Пример

  1. Добавьте на холст:
    • триггер Сообщение;
    • функцию Rag.generateAnswer();
    • функцию Reactions.sendText().

    Соедините их последовательно.

  2. В настройках функции Rag.generateAnswer():
    • выберите из списка интеграцию с базой знаний;
    • в параметре query укажите значение
      • для движка версии 2: {% if request.query %} {{ request.query }} {% else %}Чем ты можешь помочь?{% endif %};
      • для версии 1: {{ Context.getMessageContent().text || "Чем ты можешь помочь?" }}.
  3. В настройках функции Reactions.sendText() укажите значение:
    • для движка версии 2: {{ previousResult.response }};
    • для версии 1: {{ Context.getLastFunctionResult().response }}.

Такой процесс передает запрос пользователя в базу знаний, а ответ базы знаний возвращает пользователю.

Режим «Инструмент»

Используется совместно с блоком Агент, позволяя AI самостоятельно решать, когда вызывать функцию.

  • Как работает: вы не вызываете функцию напрямую — она становится «инструментом» для агента. Агент сам решает, когда и как ее использовать, исходя из диалога с пользователем.
  • Когда использовать: для гибких систем, где агент взаимодействует с внешним миром: например, «забронируй переговорную» или «какой у меня баланс?».
подсказка

Подробнее о настройке функций в режиме инструмента смотрите в разделе про блок «Агент».

Вызов в коде

Функцию можно вызвать:

  • Из выражений в блоках Код и Условие. Пример смотрите в разделах Код и Условие.

  • Из кода других (пользовательских) функций.

  • Из параметров других JavaScript-функций (только если в вашем проекте движок версии 1).

    Пример
    Вызов функции в параметре

При вызове функций указывайте коллекцию, например:

// Вызов функции generateAnswer из коллекции Rag
Rag.generateAnswer();
примечание

Из JavaScript-кода нельзя вызывать Python-функции, и наоборот.

Сохранение результата в контекст

Результат выполнения блока функции можно записывать в служебную память, используемую агентами. Подробнее смотрите в разделе Управление контекстом агентов.