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

Фильтрация чанков по пользовательским метаданным


С помощью этого руководства вы научитесь создавать базу знаний из JSON-файлов с использованием пользовательских метаданных и фильтровать с помощью них чанки в поисковых запросах. Фильтрация выполняется в Search API. Принцип работы фильтрации:

  • при выполнении поискового запроса отбираются все чанки, удовлетворяющие условию фильтрации;

  • среди этих чанков ищутся наиболее релевантные вашему запросу;

  • в ответе приводится список чанков от наиболее релевантного.

Таким образом, фильтрация позволяет исключить из поиска все чанки, кроме нужных.

В руководстве используется файл catalog-extended.json. Это каталог с информацией о нескольких продуктах из магазина техники, которые относятся к различным категориям. Категории продуктов будут добавлены в метаданные для дальнейшей фильтрации получившихся чанков.

Вы будете использовать следующие сервисы:

Шаги:

  1. Подготовьте контент для базы знаний.

  2. Создайте версию базы знаний.

  3. Отфильтруйте чанки по метаданным.

Перед началом работы

  1. Убедитесь, что у вас есть доступ к Foundation Models и Object Storage.

  2. Скачайте файл catalog-extended.json для использования в базе знаний.

1. Подготовьте контент для базы знаний

  1. Добавьте источник для базы знаний в Evolution Object Storage:

  2. Создайте бакет.

  3. Создайте папку rag-metadata-json-kb в бакете и загрузите в нее файл catalog-extended.json, скачанный ранее.

    Список поддерживаемых типов файлов.

2. Создайте базу знаний

  1. Перейдите в AI Factory → Managed RAG.

  2. Нажмите Создать базу знаний.

  3. В поле Название введите metadata-json-files-kb.

  4. Активируйте опцию Создать первую версию.

  5. В поле Название версии введите metadata-json-files-version-1.

  6. В блоке Источники из S3 нажмите Выбрать и выберите папку rag-metadata-json-kb с файлом catalog-extended.json.

  7. В поле Расширения документов выберите расширение json.

  8. Активируйте опцию Вручную настроить обработку данных и модель.

  9. Нажмите Продолжить.

  10. Настройте JSON-экстрактор:

    1. Скопируйте JQ-схему и проверьте ее корректность с помощью сайта https://play.jqlang.org:

      .products[]
    2. В поле Ключ JSON-объекта введите:

      .name + ": " + .description
    3. Включите опцию Ключ объекта доступен для парсинга. Это необходимо для корректного извлечения данных из файла.

    4. В блоке Формат результата парсера выберите опцию Текст, чтобы парсер корректно извлек содержимое в чанки.

    5. В поле JQ-схема для метаданных введите:

      {product_id: .id, product_name: .name, category: .category}

      JQ-схема применяется к данным, полученным на шаге a.

    6. Выберите Тип сплиттераРекурсивный символьный сплиттер.

  11. Нажмите Продолжить.

  12. Выберите модель Qwen/Qwen3-Embedding-0.6B.

  13. Нажмите Создать.

    Дождитесь, пока база знаний и ее версия перейдет в статус «Активна».

3. Отфильтруйте чанки по метаданным

В примере рассмотрена фильтрация по категории товаров «Бытовая техника». Вы можете также создавать собственные фильтры по метаданным, например по другой категории или идентификаторам продуктов.

  1. Аутентифицируйтесь в API Managed RAG.

  2. Отправьте запрос search:

    curl --location 'https://<knowledgebase_id>.managed-rag.inference.cloud.ru/api/v2/retrieve' \
    --header 'Content-Type: application/json' \
    --data '{
    "knowledge_base_version": "<knowledgebase_version_id>",
    "query": "<query>",
    "retrieval_configuration": {
    "number_of_results": 3,
    "retrieval_type": "SEMANTIC",
    "filter": {
    "metadata": {
    "equals": {
    "key": "category",
    "value": "Бытовая техника"
    }
    }
    }
    }
    }'

    Где:

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

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

    • <query> — пользовательский запрос;

    • filter — объект с условиями фильтрации.

    Пример ответа:

    {
    "results": [
    {
    "id": "facafb58-e484-4229-b0df-********",
    "content": "Холодильник: Холодильник с функцией «No frost».",
    "metadata": {
    "category": "Бытовая техника",
    "datasource_type": "S3",
    "filename": "catalog-extended.json",
    "filetype": "text/json",
    "ingestion_job_id": "01a03360-8357-7ed2-a612-********",
    "knowledgebase_id": "388bd855-2fbd-4be2-aa60-********",
    "knowledgebase_version_id": "04c0f9de-6049-42b4-aa95-********",
    "parent_id": "6d73b5a1-6f3d-4f63-ad25-********",
    "position": 0,
    "product_id": "P4",
    "product_name": "Холодильник",
    "project_id": "1bb0ab58-ab19-45b9-bbc9-********",
    "s3_bucket": "rag-test-bucket",
    "s3_object_key": "metadata-search-json/catalog-extended.json",
    "seq_num": 4,
    "size_in_tokens": 17,
    "source": "/tmp/metadata-search-json/catalog-extended.json",
    "source_path": "metadata-search-json/catalog-extended.json",
    "source_type": "s3"
    },
    "created_at": "2026-08-24T10:46:17.709164Z",
    "score": 0.9999021
    },
    {
    "id": "08d447ff-41ad-45b0-a1e3-b810fe6e0531",
    "content": "Миксер: Миксер с тремя режимами работы.",
    "metadata": {
    "category": "Бытовая техника",
    "datasource_type": "S3",
    "filename": "catalog-extended.json",
    "filetype": "text/json",
    "ingestion_job_id": "01a03360-8357-7ed2-a612-********",
    "knowledgebase_id": "388bd855-2fbd-4be2-aa60-********",
    "knowledgebase_version_id": "04c0f9de-6049-42b4-aa95-********",
    "parent_id": "874f8157-1bbd-4d57-8d91-********",
    "position": 0,
    "product_id": "P3",
    "product_name": "Миксер",
    "project_id": "1bb0ab58-ab19-45b9-bbc9-********",
    "s3_bucket": "rag-test-bucke",
    "s3_object_key": "metadata-search-json/catalog-extended.json",
    "seq_num": 3,
    "size_in_tokens": 16,
    "source": "/tmp/metadata-search-json/catalog-extended.json",
    "source_path": "metadata-search-json/catalog-extended.json",
    "source_type": "s3"
    },
    "created_at": "2026-08-24T10:46:17.709164Z",
    "score": 0.29431772
    }
    ]
    }

Результат

Вы научились:

  • создавать базу знаний Managed RAG из JSON-файлов с пользовательскими метаданными;

  • фильтровать чанки по их метаданным.