Облачная платформаEvolution

Чанки

Эта статья полезна?

Чанк — небольшая, логически цельная часть исходного документа, загруженного в базу знаний. Используются для облегчения индексации и поиска релевантных фрагментов в большом объеме информации. Чанки создаются при помощи экстракторов.

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

  • Ограничение контекста — размер чанков состоит из меньшего числа токенов, чем доступно в ответе LLM-модели, что позволяет получать полный ответ без необходимости дополнительных запросов.

  • Релевантность — документы делятся на чанки согласно общему контексту, что позволяет возвращать пользователю только релевантный текст.

  • Скорость поиска — из-за небольшого количества токенов в каждом чанке поиск по ним быстрее.

Метаданные чанка

Для каждого из чанков доступны два типа метаданных — системные и пользовательские.

К системным относятся:

  • datasource_type — тип источника данных;

  • filetype — тип файла;

  • filename — название файла;

  • s3_bucket — бакет S3;

  • s3_object_key — ключ объекта в S3;

  • ingestion_job_id — идентификатор задачи индексации;

  • knowledgebase_id — идентификатор базы знаний;

  • knowledgebase_version_id — идентификатор версии базы знаний;

  • project_id — идентификатор проекта;

  • size_in_tokens — количество токенов в чанке.

Пользовательские метаданные вы можете создавать самостоятельно. Создание доступно:

Условия фильтрации чанков с помощью метаданных

Для фильтрации результатов поисковой выдачи можно использовать системные и пользовательские метаданные чанка

Параметры фильтрации состоят из следующих компонентов:

  • filter — содержит все условия фильтрации.

  • metadata — содержит настройки фильтрации по метаданным.

  • логические условия фильтрации:

    • equals — объект с условием фильтрации из пары «ключ»: «значение». Может быть как самостоятельным, так и быть вложено в условия andAll и OrAll.

    • andAll — отбирает чанки, соответствующие всем перечисленным условиям.

    • OrAll — отбирает чанки, соответствующие любому из перечисленных условий.

Если используются параметры andAll или OrAll, перечислите условия фильтрации внутри них с помощью параметра expressions.

Итоговая конструкция фильтра выглядит так:

"filter": {
"metadata": {
"equals": {
"key": "string",
"value": "string"
},
"andAll": {
"expressions": [
"equals": {
"key": "string",
"value": "string"
},
"equals": {
"key": "string",
"value": "string"
}
]
"orAll": {
"expressions": [
"equals": {
"key": "string",
"value": "string"
},
"equals": {
"key": "string",
"value": "string"
}
]

Подробнее с параметрами фильтрации можно ознакомиться в спецификации Search API.

Вы также можете просмотреть примеры использования фильтров.