Создание и управление ботами по API
В этой документации описаны методы API для создания поисковых (RAG) ботов и управления ими. Например, вы можете проверить статус ботов, посмотреть их список или добавить / удалить документы. Полный список доступных методов описан ниже.
Создание с загрузкой файлов
curl -X PUT https://bot.insightstream.ru/indexapi/bot/bot_id \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-F "files=@/path/to/test.pdf" \
-F "files=@/path/to/test2.pdf" \
-F "user_story=write_your_user_story_here" \
-F "sync=1" \
-F "time_to_eval=2025-04-02 14:49"
Параметры:
YOUR_TOKEN_HERE
- токен для доступа по APIbot_id
- имя индекса, по которому будет доступен созданный ботuser_story
- краткое описание сценария использования (пользовательской истории)sync
(необязательно) - флаг приоритета индексации (1 - высокий приоритет, индексация будет выполнена раньше запросов на создание бота без флага и раньше любых док ументов, которые добавляем в уже существующих ботов)time_to_eval
(необязательно) - время, не раньше которого начнётся индексация (формат: YYYY-MM-DD HH:MM)
Параметры sync
и time_to_eval
могут быть указаны одновременно.
Внутри данного метода есть параметр user_story, это описание сценария использования ассистента. Пользовательская история напрямую влияет на качество индексации и последую щих ответов ассистента.
Для написания пользовательской истории рекомендуется отвечать на вопросы: Кто будет использовать ассистента и зачем? Что важно при формировании ответа?
Примеры user_story:
Пример 1: "Я, как инженер проектного отдела корпорации, хочу выяснить как действовать в сложной рабочей ситуации. Описав рабочую ситуацию, я хочу получить инструкцию что делать и к кому обратиться. Для меня важно получить контакты людей. Важно получить объяснения что можно делать и что нельзя. Мне не нравятся общие ответы - я давно в компании и общие моменты знаю."
Пример 2: "Я как сотрудник организации, который работает с разными корпоративными IT системами, хочу выяснить нужную мне информацию по работе одной из систем, получить помощь по своему вопросу, узнать как действовать в конкретной ситуации. Задав вопрос я хочу увидеть короткий и исчерпывающий ответ, содержащий всю необходимую информацию. Искажение фактов для меня самая серьезная проблема. В зависимости от вопроса не полное изложение фактов тоже может быть проблемой."
Ответы:
202 Accepted
– команда на создание бота принята в обработку. Ответ будет содержатьcommand_id
.{
"command_id": "some-unique-command-id"
}
Для отслеживания статуса выполнения используйте эндпоинты статуса команд (см. раздел "Отслеживание статусов команд").
Создание с указанием файлов по URL
curl -X PUT https://bot.insightstream.ru/indexapi/bot/bot_id/urls \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-F 'urls={"type": "direct_link", "url": "https://example.com/doc1.pdf"}' \
-F "user_story=write_your_user_story_here" \
-F "sync=1" \
-F "time_to_eval=2025-04-02 14:49"
Параметры аналогичны запросу с загрузкой файлов, кроме:
urls
– JSON-объект с URL-адресами. Непосредственно сам документ должен открываться по указанному URL (например, https://example.com/doc1.pdf).
Ответы:
202 Accepted
– команда на создание бота c указанием URL принята в обработку. Ответ будет содержатьcommand_id
.{
"command_id": "some-unique-command-id"
}
Для отслеживания статуса выполнения используйте эндпоинты статуса команд.
Удаление бота
Удаление бота по его идентификатору.
curl -X DELETE https://bot.insightstream.ru/indexapi/bot/bot_id -H "Authorization: Bearer YOUR_TOKEN_HERE"
Описание
Позволяет инициировать удаление бота и его индексированных данных. Операция асинхронная.
Параметры
bot_id
(string, path) – идентификатор бота.
Заголовки
Authorization: Bearer YOUR_TOKEN_HERE
– токен доступа к API.
Ответы
-
202 Accepted
– команда на удаление бота принята в обработку. Ответ будет содержатьcommand_id
.{
"command_id": "some-unique-command-id"
}Для отслеживания статуса выполнения используйте эндпоинты статуса команд.
-
404 Not Found
– бот не найден. -
409 Conflict
– бот в процессе выполнения другой критической операции (например, удаление уже запущено), попробуйте позже.
Получение информации о существующих ботах
Конкретный бот
Для получения информации о конкретном боте используйте следующий запрос:
curl -X GET https://bot.insightstream.ru/indexapi/bot/bot_id -H "Authorization: Bearer YOUR_TOKEN_HERE"
Этот эндпоинт возвращает подробную информацию о боте, включая его настройки и список файлов.
Пример ответа:
{
"name": "bot_id",
"hello_text": "\n<h1>Рад знакомству!</h1>\n<h1>Я ваш личный ИИ-ассистент.</h1>\n<p>Меня обучили отвечать на вопросы по вашим документам.</p>\n",
"retrive_n": 5,
"support_n": 3,
"example_questions": [],
"user_story": "test",
"bot_creator_credentials": "qwe",
"files": [
"http://is.local/documents/bot_id/bob.txt",
"http://is.local/documents/bot_id/alice.txt"
]
}
Все боты
curl -X GET https://bot.insightstream.ru/indexapi/bots -H "Authorization: Bearer YOUR_TOKEN_HERE"
Этот эндпоинт предоставляет подробную информацию обо всех ботах.
Пример ответа:
{
"bot_id_1": {
"name": "bot_id_1",
"hello_text": "\n<h1>Рад знакомству!</h1>\n<h1>Я ваш личный ИИ-ассистент.</h1>\n<p>Меня обучили отвечать на вопросы по вашим документам.</p>\n",
"retrive_n": 5,
"support_n": 3,
"example_questions": [],
"user_story": "test",
"bot_creator_credentials": "qwe",
"files": [
"http://is.local/documents/snark.txt",
"http://is.local/documents/alice.txt"
]
},
"bot_id_2": {
// Аналогичная информация для других ботов
}
}
Работа с документами внутри бота
Добавление или обновление документа в боте
curl -X PUT https://bot.insightstream.ru/indexapi/bot/bot_id/document \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-F "file=@/path/to/document.pdf" \
Описание
Позволяет инициировать добавление нового документа или обновление существующего в индексе бота.
Параметры
bot_id
(string, path) – идентификатор бота.file
(file, form) – файл документа.
Заголовки
Authorization: Bearer YOUR_TOKEN_HERE
– токен доступа к API.
Ответы
-
202 Accepted
– команда на добавление/обновление документа принята. Ответ будет содержатьcommand_id
.{
"command_id": "some-unique-command-id-for-doc-upsert"
}Для отслеживания статуса выполнения используйте эндпоинты статуса команд.
-
404 Not Found
– бот не найден. -
409 Conflict
– бот или данный документ в процессе обработки другой командой, попробуйте позже.
Добавление или обновление документа в боте по URL
curl -X PUT https://bot.insightstream.ru/indexapi/bot/bot_id/document_by_url
-H "Authorization: Bearer YOUR_TOKEN_HERE"
-F "url=https://example.com/doc1.pdf" \
Описание
Позволяет инициировать добавление нового документа или обновление существующего в индексе бота по URL.
Параметры
bot_id
(string, path) – идентификатор бота.url
(file, form) – прямая ссылка на документ.
Заголовки
Authorization: Bearer YOUR_TOKEN_HERE
– токен доступа к API.
Удаление документа из бота
curl -X DELETE https://bot.insightstream.ru/indexapi/bot/bot_id/document/doc_name -H "Authorization: Bearer YOUR_TOKEN_HERE"
Описание
Инициирует удаление указанного документа из индекса бота. Операция асинхронная.
Параметры
bot_id
(string, path) – идентификатор бота.doc_name
(string, path) – имя документа.
Заголовки
Authorization: Bearer YOUR_TOKEN_HERE
– токен доступа к API.
Ответы
-
202 Accepted
– команда на удаление документа принята. Ответ будет содержатьcommand_id
.{
"command_id": "some-unique-command-id-for-doc-delete"
}Для отслеживания статуса выполнения используйте эндпоинты статуса команд.
-
404 Not Found
– бот или документ не найдены. -
409 Conflict
– бот или документ в процессе обработки другой командой, попробуйте позже.
Отслеживание статусов операций
Операции создания/удаления бота (ассистента) или добавления/удаления документа являются асинхронными. При успешном принятии запроса API возвращает command_id
. Предпочтительно использовать этот универсальный идентификатор для отслеживания статуса выполнения команды.
Получение статуса всех операций для бота
curl -X GET https://bot.insightstream.ru/indexapi/bot/bot_id/commands -H "Authorization: Bearer YOUR_TOKEN_HERE"
Возвращает список JSON-объектов с описаниями всех активных или недавно завершенных команд для указанного bot_id
.
Пример ответа:
{
"command_id_1": {
"status": "processing",
"progress": {
"documents": {
"total": 98,
"complete": 76
},
"current_document": {
"total": 54,
"complete": 32
}
}
},
"command_id_2": {
"status": "complete"
}
}