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

Отфильтровать чанки в поисковом запросе


При работе с Search API вы можете фильтровать чанки, которые попадут в ответ на запрос или в контекст 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 — количество токенов в чанке.

Вы также можете добавлять в чанки собственные метаданные.

Ниже приведены несколько примеров фильтров, которые вы можете использовать в поисковых запросах.

Фильтрация по проекту и базе знаний

curl -X POST "<knowledge_base_public_url>/api/v2/retrieve" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access_token>" \
-d '{
"knowledge_base_version": "<knowledge_base_version_id>",
"query": "Что такое сервис Evolution Managed Kubernetes?",
"retrieval_configuration": {
"number_of_results": 3,
"retrieval_type": "SEMANTIC"
"filter": {
"metadata": {
"andAll": {
"expressions": [
"equals": {
"key": "project_id",
"value": "<project_id>"
},
"equals": {
"key": "knowledgebase_id",
"value": "<knowledgebase_id>"
}
]
}
}
}
}
}'

Где:

  • <knowledge_base_public_url> — публичный URL базы знаний.

  • <access_token> — полученный токен доступа с помощью Public API Cloud.ru.

  • <knowledge_base_version_id> — идентификатор версии базы знаний. Его можно получить на вкладке Версии базы знаний или использовать тег latest, если запрос отправляется к последней версии.

  • OrAll — логическое условие фильтрации. Фильтр вернет результат, если выполняются все условия.

  • <project_id> — идентификатор проекта.

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

Фильтрация по двум файлам

curl -X POST "<knowledge_base_public_url>/api/v2/retrieve" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access_token>" \
-d '{
"knowledge_base_version": "<knowledge_base_version_id>",
"query": "Что такое сервис Evolution Managed Kubernetes?",
"retrieval_configuration": {
"number_of_results": 3,
"retrieval_type": "SEMANTIC"
"filter": {
"metadata": {
"OrAll": {
"expressions": [
"equals": {
"key": "filename",
"value": "<filename>"
},
"equals": {
"key": "filename",
"value": "<filename>"
}
]
}
}
}
}
}'

Где:

  • <knowledge_base_public_url> — публичный URL базы знаний.

  • <access_token> — полученный токен доступа с помощью Public API Cloud.ru.

  • <knowledge_base_version_id> — идентификатор версии базы знаний. Его можно получить на вкладке Версии базы знаний или использовать тег latest, если запрос отправляется к последней версии.

  • OrAll — логическое условие фильтрации. Фильтр вернет результат, если выполняется хотя бы одно из условий.

  • <filename> — название файла.