Фрагменты

Фрагменты — части, на которые база знаний с поиском разбивает документ. Через API фрагменты можно просматривать, править, включать и выключать и удалять. Создать фрагмент вручную через API нельзя.

У файловой базы знаний фрагментов нет: любой запрос к ним, в том числе удаление, получает 400 с кодом chunks_not_supported.

Объект Chunk

Поле

Тип

Описание

id

string

Идентификатор фрагмента

position

integer

Номер фрагмента в документе

content

string

Текст фрагмента

word_count

integer

Число символов

enabled

boolean

Включён ли фрагмент: выключенный агент не использует

created_at

string

Время создания

updated_at

string

Время последнего изменения

Список фрагментов

GET /v1/knowledge-bases/{knowledge_base_id}/documents/{document_id}/chunks

Параметры запроса

Параметр

Тип

Обязательный

Описание

page

integer

нет

Номер страницы, по умолчанию 1

limit

integer

нет

Размер страницы: от 1 до 100, по умолчанию 20

search

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}

Меняются только переданные поля.

Тело запроса

Поле

Тип

Описание

content

string

Новый текст фрагмента, не пустой

enabled

boolean

true — включить фрагмент, false — выключить

  • После изменения текста агент находит фрагмент по новому тексту.

  • Текст выключенного фрагмента можно изменить, только включив его в том же запросе: {"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

Код

Когда

400

chunks_not_supported

Запрос к фрагментам документа файловой базы знаний

400

chunk_disabled

Изменение текста выключенного фрагмента без enabled: true в том же запросе

400

document_processing

Включение или выключение фрагмента, пока документ переиндексируется

400

document_archived

Изменение фрагмента архивного документа

400

knowledge_base_model_unavailable

Модель эмбеддингов базы знаний недоступна — изменить текст, включить, выключить или удалить фрагмент нельзя

403

storage_limit_reached

Исчерпан объём тарифа — при изменении текста, включении или выключении фрагмента

404

knowledge_base_not_found

Базы нет или она недоступна ключу

404

document_not_found

Документа нет в этой базе знаний

404

chunk_not_found

Фрагмента нет в этом документе

429

rate_limited

Превышен лимит запросов тарифа — изменение и удаление учитываются в нём