Фрагменты
Фрагменты — части, на которые база знаний с поиском разбивает документ. Через API фрагменты можно просматривать, править, включать и выключать и удалять. Создать фрагмент вручную через API нельзя.
У файловой базы знаний фрагментов нет: любой запрос к ним, в том числе удаление, получает 400 с кодом chunks_not_supported.
Объект Chunk
Поле | Тип | Описание |
| string | Идентификатор фрагмента |
| integer | Номер фрагмента в документе |
| string | Текст фрагмента |
| integer | Число символов |
| boolean | Включён ли фрагмент: выключенный агент не использует |
| string | Время создания |
| string | Время последнего изменения |
Список фрагментов
GET /v1/knowledge-bases/{knowledge_base_id}/documents/{document_id}/chunks
Параметры запроса
Параметр | Тип | Обязательный | Описание |
| integer | нет | Номер страницы, по умолчанию 1 |
| integer | нет | Размер страницы: от 1 до 100, по умолчанию 20 |
| string | нет | Поиск по тексту фрагмента |
Ответ
200 — постраничный список {items, total, has_more} объектов Chunk.
Фрагмент
GET /v1/knowledge-bases/{knowledge_base_id}/documents/{document_id}/chunks/{chunk_id}
200 — объект Chunk.
Изменение фрагмента
PATCH /v1/knowledge-bases/{knowledge_base_id}/documents/{document_id}/chunks/{chunk_id}
Меняются только переданные поля.
Тело запроса
Поле | Тип | Описание |
| string | Новый текст фрагмента, не пустой |
| boolean |
|
После изменения текста агент находит фрагмент по новому тексту.
Текст выключенного фрагмента можно изменить, только включив его в том же запросе:
{"content": "...", "enabled": true}. Безenabled: true—400с кодомchunk_disabled.У документа в формате «вопрос — ответ»
contentменяет вопрос, а ответ остаётся прежним. У документа в формате «родитель — потомок» изменение текста пересоздаёт дочерние фрагменты.Пока документ переиндексируется после прошлого включения или выключения, фрагмент включить или выключить нельзя:
400с кодомdocument_processing.Фрагмент архивного документа изменить нельзя:
400с кодомdocument_archived.Если запрос отклонён, текст и состояние фрагмента остаются прежними.
Ответ
200 — объект Chunk.
curl -X PATCH https://api.evo-ai.ru/v1/knowledge-bases/3a9d5e27-8c14-4b6f-a0e2-7d1c9b5f3e82/documents/b61f0d3c-4e92-47a8-9c5d-1a7e3f8b2d09/chunks/5c2e8a14-7f93-4d06-b1a8-9e3d6c0f2b75 \ -H "Authorization: Bearer evo_kb_..." \ -H "Content-Type: application/json" \ -d '{"content": "Срок поставки -- 10 рабочих дней с даты оплаты."}'
Удаление фрагмента
DELETE /v1/knowledge-bases/{knowledge_base_id}/documents/{document_id}/chunks/{chunk_id}
204 — без тела. Если фрагмента нет, ответ тоже 204.
Ошибки
HTTP | Код | Когда |
|
| Запрос к фрагментам документа файловой базы знаний |
|
| Изменение текста выключенного фрагмента без |
|
| Включение или выключение фрагмента, пока документ переиндексируется |
|
| Изменение фрагмента архивного документа |
|
| Модель эмбеддингов базы знаний недоступна — изменить текст, включить, выключить или удалить фрагмент нельзя |
|
| Исчерпан объём тарифа — при изменении текста, включении или выключении фрагмента |
|
| Базы нет или она недоступна ключу |
|
| Документа нет в этой базе знаний |
|
| Фрагмента нет в этом документе |
|
| Превышен лимит запросов тарифа — изменение и удаление учитываются в нём |