Коннекторы для создания поисковых индексов Vector Store

Вы можете создавать поисковые индексы Vector Store на основе файлов из различных источников. Для этого Yandex AI Studio SDK предлагает консольную утилиту Vector Store CLI, которая поддерживает следующие источники данных:

Установка

Установите базовый пакет и дополнительные функции в зависимости от источников данных, с которыми планируете работать:

# Базовая установка с поддержкой локальных файлов и Atlassian Confluence
        pip install yandex-ai-studio-sdk
        
        # С поддержкой Amazon S3 и Object Storage
        pip install "yandex-ai-studio-sdk[cli-s3]"
        
        # С поддержкой MediaWiki
        pip install "yandex-ai-studio-sdk[cli-wiki]"
        
        # Все дополнительные функции
        pip install "yandex-ai-studio-sdk[cli-wiki,cli-s3]"
        

Аутентификация

Vector Store CLI поддерживает следующие методы аутентификации:

  1. Флаг --auth и IAM-токен или API-ключ. Флаг не требуется, если пользователь аутентифицировался другим методом.

    Примечание

    Если указаны оба вида токена, YC_API_KEY имеет приоритет над YC_IAM_TOKEN.

  2. Если у вас установлен и настроен Yandex Cloud CLI, инструмент автоматически использует его конфигурацию.

  3. При работе на ВМ Compute Cloud инструмент может использовать метаданные ВМ для автоматической аутентификации.

Использование

Работать с Vector Store CLI можно с помощью команд следующего вида:

yandex-ai-studio vector-stores <тип_источника_данных> [<параметры>] [<путь_к_данным>]
        

Где:

  • <тип_источника_данных> — название источника данных. Возможные значения:

    • local — локальная файловая система;
    • confluence — Atlassian Confluence;
    • s3 — Object Storage и другие S3-совместимые хранилища;
    • wiki — системы на движке MediaWiki.
  • <параметры> — данные аутентификации и дополнительные параметры индексации.

  • <путь_к_данным> — путь к данным для индексации.

Особенности работы с утилитой различаются в зависимости от источника данных:

Источник данных local не поддерживает работу с папками. Используйте полные пути до файлов или ShellGlobbing. Например, *.txt — все файлы с расширением .txt.

Параметры

Параметр Описание
--max-file-size INT Пропускать файлы больше указанного размера в байтах

Примеры использования

# Индексация одного файла
        yandex-ai-studio vector-stores local report.pdf
        
        # Индексация нескольких файлов
        yandex-ai-studio vector-stores local docs/intro.txt docs/guide.md
        
        # Использование ShellGlobbing для включения всех .txt и .md файлов
        yandex-ai-studio vector-stores local sample_docs/*.txt sample_docs/*.md
        

Источник данных confluence создает поисковый индекс на основе URL страниц Atlassian Confluence. URL должен содержать идентификатор страницы. Например:

  • Облачное хранилище: https://your-domain.atlassian.net/wiki/spaces/SPACE/pages/123456/Page+Title.
  • Локальное хранилище: https://confluence.example.com/pages/viewpage.action?pageId=123456.

Важно

URL в формате /display/SPACE/Page+Title не поддерживаются.

Чтобы найти идентификатор страницы:

  • Облачное хранилище — извлеките из URL после /pages/.
  • Локальное хранилище: на открытой странице нажмите image и выберите Информация о странице. Идентификатор будет указан в параметре ?pageId=.

Параметры

Параметр Переменная окружения По умолчанию Описание
--page-url URL URL страницы. Обязательный параметр. Можно указать несколько
--base-url URL Автоматически Базовый URL Confluence. Определяется автоматически из первого --page-url
--username TEXT CONFLUENCE_USERNAME Адрес электронной почты пользователя. Обязательный параметр для локальных хранилищ
--api-token TEXT CONFLUENCE_API_TOKEN API-токен. Обязательный параметр для локальных хранилищ
--export-format TEXT pdf Формат экспорта: pdf, html или markdown
--no-verify false Флаг отключения проверки SSL-сертификата

Примечание

Для облачных хранилищ используйте электронную почту и API-токен. Для локальных хранилищ используйте локальные учетные данные, если не настроено иначе.

Примеры использования

# Облачное хранилище без аутентификации
        yandex-ai-studio vector-stores confluence \
          --page-url "https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=34840000"
        
        # Несколько страниц
        yandex-ai-studio vector-stores confluence \
          --page-url "https://your-domain.atlassian.net/wiki/spaces/ENG/pages/111/Overview" \
          --page-url "https://your-domain.atlassian.net/wiki/spaces/ENG/pages/222/Architecture"
        
        # Локальное хранилище с переменными окружения
        export CONFLUENCE_USERNAME=alice@example.com
        export CONFLUENCE_API_TOKEN=ATATT3xFf********
        yandex-ai-studio vector-stores confluence \
          --page-url "https://your-domain.atlassian.net/wiki/spaces/ENG/pages/123456/Design"
        
        # Экспорт в формате HTML
        yandex-ai-studio vector-stores confluence \
          --page-url "https://your-domain.atlassian.net/wiki/spaces/ENG/pages/123456/Design" \
          --export-format html
        

Обращение к источнику данных s3 создает поисковый индекс из S3-совместимого бакета.

Параметры

Параметр Переменная окружения Описание
--prefix TEXT Фильтрация объектов по пути к папке (префиксу)
--endpoint-url URL Пользовательский S3-эндпоинт
Например, https://storage.yandexcloud.net для Object Storage
--aws-access-key-id TEXT AWS_ACCESS_KEY_ID Идентификатор ключа
--aws-secret-access-key TEXT AWS_SECRET_ACCESS_KEY Секретный ключ
--region-name TEXT AWS_DEFAULT_REGION Название региона AWS
--include-pattern GLOB Включение ключей объектов, соответствующих шаблону. Можно указать несколько
--exclude-pattern GLOB Исключение ключей объектов, соответствующих шаблону. Можно указать несколько
--max-file-size INT Пропускать файлы больше указанного размера в байтах

Примечание

Если учетные данные не указаны, инструмент попытается использовать конфигурацию AWS CLI, конфигурацию Yandex Cloud CLI или метаданные ВМ Compute Cloud.

Примеры использования

# Индексация всего бакета
        yandex-ai-studio vector-stores s3 <имя_бакета>
        
        # Индексация только определенного префикса
        yandex-ai-studio vector-stores s3 <имя_бакета> --prefix docs/
        
        # Включить только PDF-файлы
        yandex-ai-studio vector-stores s3 <имя_бакета> --include-pattern "*.pdf"
        
        # Использование Object Storage
        yandex-ai-studio vector-stores s3 <имя_бакета> \
          --endpoint-url https://storage.yandexcloud.net \
          --region-name ru-central1
        

Обращение к источнику данных wiki создает поисковый индекс из страниц хранилищ на движке MediaWiki (например, Википедия).

URL страниц должны быть валидными URL хранилища, содержащими /wiki/ в пути. Можно указать несколько URL.

Аутентификация опциональна для публичных хранилищ.

Параметры

Параметры Переменная окружения По умолчанию Описание
--username TEXT WIKI_USERNAME Имя пользователя. Обязательный параметр для непубличных хранилищ
--password TEXT WIKI_PASSWORD Пароль пользователя
--export-format TEXT text Формат вывода: text, html или markdown

Примеры использования

# Индексация одной страницы Википедии
        yandex-ai-studio vector-stores wiki https://en.wikipedia.org/wiki/Machine_learning
        
        # Индексация нескольких страниц
        yandex-ai-studio vector-stores wiki \
          https://en.wikipedia.org/wiki/Machine_learning \
          https://en.wikipedia.org/wiki/Neural_network \
          https://en.wikipedia.org/wiki/Transformer_(deep_learning_architecture)
        
        # Экспорт контента в формате Markdown
        yandex-ai-studio vector-stores wiki \
          "https://en.wikipedia.org/wiki/Python_(programming_language)" \
          --export-format markdown
        
        # Доступ к приватной wiki с учетными данными
        yandex-ai-studio vector-stores wiki \
          https://wiki.example.com/wiki/Internal_docs \
          --username alice \
          --password secret
        

Общие параметры

Общие параметры доступны для всех типов хранилищ.

Подключение

Параметр Переменная окружения Описание
--folder-id TEXT YC_FOLDER_ID Идентификатор каталога Yandex Cloud. Обязательный параметр
--auth TEXT YC_API_KEY или YC_IAM_TOKEN Токен аутентификации
--endpoint URL Переопределение стандартного API-эндпоинта

Настройки индекса

Опция По умолчанию Описание
--name TEXT Имя создаваемого поискового индекса
--metadata KEY=VALUE Добавить метаданные. До 16 пар в формате ключ=значение
--expires-after-days INT Время жизни индекса в днях
--expires-after-anchor TEXT Точка отсчета для начала жизни индекса. Возможные значения:
created_at — с момента создания
last_active_at — с момента последней активности
--max-chunk-size-tokens INT 800 Максимальное количество токенов на текстовую ячейку
--chunk-overlap-tokens INT 400 Количество дублирующихся токенов между соседними ячейками
--poll-timeout INT 3600 Максимальное время ожидания создания индекса в секундах

Настройки загрузки

Опция По умолчанию Описание
--max-concurrent-uploads INT 4 Максимальное количество параллельных загрузок файлов
--skip-on-error false Продолжать обработку при ошибке загрузки файла
--file-expires-after-seconds INT Время жизни загруженных файлов в секундах
--file-expires-after-anchor TEXT Точка отсчета для начала жизни файла. Возможные значения:
created_at — с момента создания
last_active_at — с момента последней активности

Настройки вывода

Опция По умолчанию Описание
-v Уровень логирования: INFO
-vv Уровень логирования: DEBUG
--format TEXT text Формат вывода: text или json

Вывод

При успешном выполнении команда выводит идентификатор и имя индекса.

Пример текстового вывода:

Search index created successfully!
        Search Index ID: fvt-hj87lxe3********
        Name: my-index
        

Пример JSON-вывода:

{
          "status": "success",
          "folder_id": "b1go3el0d8fs********",
          "search_index": {
            "id": "fvt-hj87lxe3********",
            "name": "my-index"
          }
        }
        

Примечание

По умолчанию сообщения об ошибках возвращаются в стандартных потоках вывода. С параметром --format json сообщения об ошибках возвращаются в структурированном JSON-формате.

См. также