Бот с базой знаний Jay Knowledge Hub
В этом уроке показано, как обращаться к Jay Knowledge Hub из бота Aimylogic. Бот использует блок HTTP-запрос, чтобы получать информацию из базы знаний.
Jay Knowledge Hub — интеллектуальная вопросно-ответная система от компании Just AI. Она использует большие языковые модели (LLM) и технологию RAG. Эта система находит нужную информацию в наборе документов и генерирует ответы для пользователей. Подробнее о Jay Knowledge Hub смотрите на сайте и в документации.
Подготовка базы знаний
- Перейдите в Jay Knowledge Hub.
- Создайте проект.
- Добавьте источники и проиндексируйте базу знаний. Смотрите инструкции для подготовки базы знаний в документации Jay Knowledge Hub.
Сценарий Aimylogic
В сценарии бот:
- Создает чат в Jay Knowledge Hub.
- Получает вопрос от пользователя.
- Отправляет вопрос в чат базы знаний и получает ответ.
- Отправляет ответ пользователю.
База знаний по умолчанию учитывает всю историю в своем чате. Вам не нужно передавать историю в сценарии.
Создание чата
-
Создайте экран с названием
Создание чата
. Добавьте на него блок HTTP-запрос. -
Укажите настройки блока HTTP-запрос, чтобы вызвать метод
POST /api/knowledge-hub/chat
из API Jay Knowledge Hub:- Запрос
- Response
- Body
- Headers
- Метод —
POST
. - URL —
https://khub.just-ai.com/api/knowledge-hub/chat
.
Укажите одну переменную:
- Имя переменной —
chatId
. - Значение —
$httpResponse.id
.
В переменной
$chatId
будет храниться идентификатор чата Jay Knowledge Hub. По этому идентификатору бот сможет отправлять запросы в чат базы знаний.Укажите в поле пустой объект
{}
.Добавьте два заголовка:
-
Заголовок
Content-Type
. Значение —application/json
. -
Заголовок
Authorization
. Значение —Bearer <token>
, где<token>
— это API-ключ из проекта Jay Knowledge Hub.Пример значения:
Bearer A1bcdE.abcde1234
.
В результате бот в начале диалога будет создавать чат в Jay Knowledge Hub.
Получение вопроса от пользователя
-
Создайте еще один экран. Название —
Получение вопроса
.Добавьте на него блок text to $var. В блоке укажите:
- Сообщение —
Задай вопрос, я найду ответ
. - Имя переменной —
question
.
- Сообщение —
-
Соедините выход Завершен успешно из блока HTTP-запрос с экраном
Получение вопроса
.

Если чат в базе знаний создан успешно, то бот попросит задать вопрос и сохранит текст вопроса в переменную $question
.
Отправка запроса в базу знаний
-
Создайте новый экран с названием
Запрос в базу знаний
. Добавьте на него блок HTTP-запрос. -
Укажите настройки блока HTTP-запрос, чтобы вызвать метод
POST /api/knowledge-hub/chat/{chatId}/query
из API Jay Knowledge Hub:- Запрос
- Response
- Body
- Headers
-
Метод —
POST
. -
URL —
https://khub.just-ai.com/api/knowledge-hub/chat/${chatId}/query
.Здесь URL содержит переменную
$chatId
. В переменной хранится идентификатор, который был получен при создании чата.
Укажите одну переменную:
- Имя переменной —
baseAnswer
. - Значение —
$httpResponse.response
.
В переменной
$baseAnswer
будет храниться ответ базы знаний на вопрос пользователя.В теле передайте запрос пользователя с помощью переменной
$question
:{"query": "$question"}
Добавьте два заголовка:
-
Заголовок
Content-Type
. Значение —application/json
. -
Заголовок
Authorization
. Значение —Bearer <token>
, где<token>
— это API-ключ из проекта Jay Knowledge Hub.Пример значения:
Bearer A1bcdE.abcde1234
.
-
Соедините выход Переход после ввода $question на экране
Получение вопроса
с экраномЗапрос в базу знаний
.

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

В результате бот отправит ответ пользователю. После этого бот опять попросит задать вопрос.
Для каждого следующего вопроса база знаний будет учитывать историю в ее чате. Она будет готовить ответы с учетом контекста.
Возможные ошибки
Ошибки при отправке HTTP-запросов
Ошибки могут возникнуть при отправке запросов в блоках HTTP-запрос. Например, если у токена Jay Knowledge Hub закончился срок действия.
Чтобы обработать такие ошибки, создайте новые экраны и соедините их с выходами Завершен с ошибкой у блоков HTTP-запрос. Так вы сможете сообщить пользователю, что не удалось отправить HTTP-запрос.
Ошибки при генерации ответа в базе знаний
Ошибки могут возникнуть, когда база знаний готовит ответ.
Например, если генерация в базе знаний завершилась с ошибкой, то база отправит ответ, но $httpResponse.status
будет иметь значение FAILED
.
Чтобы обрабатывать такие ошибки, используйте блок Условия.
Отправляйте ответ пользователю, только если $httpResponse.status
имеет значение FINISHED
:
$httpResponse.status === "FINISHED"
Таймаут в сценарии
Генерация ответа в базе знаний может занять длительное время.
Если база знаний генерирует ответ более 70 секунд, то бот отправит сообщение об ошибке.