При работе с 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> — название файла.