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

Бот с базой знаний Jay Knowledge Hub

В этом уроке показано, как обращаться к Jay Knowledge Hub из бота Aimylogic. Бот использует блок HTTP-запрос, чтобы получать информацию из базы знаний.

к сведению

Jay Knowledge Hub — интеллектуальная вопросно-ответная система от компании Just AI. Она использует большие языковые модели (LLM) и технологию RAG. Эта система находит нужную информацию в наборе документов и генерирует ответы для пользователей. Подробнее о Jay Knowledge Hub смотрите на сайте и в документации.

Подготовка базы знаний

  1. Перейдите в Jay Knowledge Hub.
  2. Создайте проект.
  3. Добавьте источники и проиндексируйте базу знаний. Смотрите инструкции для подготовки базы знаний в документации Jay Knowledge Hub.

Сценарий Aimylogic

В сценарии бот:

  1. Создает чат в Jay Knowledge Hub.
  2. Получает вопрос от пользователя.
  3. Отправляет вопрос в чат базы знаний и получает ответ.
  4. Отправляет ответ пользователю.

База знаний по умолчанию учитывает всю историю в своем чате. Вам не нужно передавать историю в сценарии.

Создание чата

  1. Создайте экран с названием Создание чата. Добавьте на него блок HTTP-запрос.

  2. Укажите настройки блока HTTP-запрос, чтобы вызвать метод POST /api/knowledge-hub/chat из API Jay Knowledge Hub:

    • Метод — POST.
    • URL — https://khub.just-ai.com/api/knowledge-hub/chat.

В результате бот в начале диалога будет создавать чат в Jay Knowledge Hub.

Получение вопроса от пользователя

  1. Создайте еще один экран. Название — Получение вопроса.

    Добавьте на него блок text to $var. В блоке укажите:

    • Сообщение — Задай вопрос, я найду ответ.
    • Имя переменной — question.
  2. Соедините выход Завершен успешно из блока HTTP-запрос с экраном Получение вопроса.

Получение вопроса

Если чат в базе знаний создан успешно, то бот попросит задать вопрос и сохранит текст вопроса в переменную $question.

Отправка запроса в базу знаний

  1. Создайте новый экран с названием Запрос в базу знаний. Добавьте на него блок HTTP-запрос.

  2. Укажите настройки блока HTTP-запрос, чтобы вызвать метод POST /api/knowledge-hub/chat/{chatId}/query из API Jay Knowledge Hub:

    • Метод — POST.

    • URL — https://khub.just-ai.com/api/knowledge-hub/chat/${chatId}/query.

      Здесь URL содержит переменную $chatId. В переменной хранится идентификатор, который был получен при создании чата.

  3. Соедините выход Переход после ввода $question на экране Получение вопроса с экраном Запрос в базу знаний.

Отправка запроса

Бот получает вопрос и отправляет его в базу знаний.

Отправка ответа пользователю

  1. Создайте новый экран с названием Отправка пользователю. Добавьте на экран блок Текст с репликой Ответ из базы знаний: $baseAnswer. Бот выведет ответ из базы знаний, который хранится в этой переменной.

  2. Добавьте на этот же экран блок Переход и соедините блок с экраном Получение вопроса.

Отправка ответа

В результате бот отправит ответ пользователю. После этого бот опять попросит задать вопрос.

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

Возможные ошибки

Ошибки при отправке HTTP-запросов

Ошибки могут возникнуть при отправке запросов в блоках HTTP-запрос. Например, если у токена Jay Knowledge Hub закончился срок действия.

Чтобы обработать такие ошибки, создайте новые экраны и соедините их с выходами Завершен с ошибкой у блоков HTTP-запрос. Так вы сможете сообщить пользователю, что не удалось отправить HTTP-запрос.

Ошибки при генерации ответа в базе знаний

Ошибки могут возникнуть, когда база знаний готовит ответ. Например, если генерация в базе знаний завершилась с ошибкой, то база отправит ответ, но $httpResponse.status будет иметь значение FAILED.

Чтобы обрабатывать такие ошибки, используйте блок Условия. Отправляйте ответ пользователю, только если $httpResponse.status имеет значение FINISHED:

$httpResponse.status === "FINISHED"

Таймаут в сценарии

Генерация ответа в базе знаний может занять длительное время.

Если база знаний генерирует ответ более 70 секунд, то бот отправит сообщение об ошибке.