Коннекторы для создания поисковых индексов Vector Store
Вы можете создавать поисковые индексы Vector Store на основе файлов из различных источников. Для этого Yandex AI Studio SDK предлагает консольную утилиту Vector Store CLI, которая поддерживает следующие источники данных:
- локальная файловая система;
- Atlassian Confluence;
- Yandex Object Storage и другие S3-совместимые хранилища;
- системы на движке MediaWiki.
Установка
Установите базовый пакет и дополнительные функции в зависимости от источников данных, с которыми планируете работать:
# Базовая установка с поддержкой локальных файлов и 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 поддерживает следующие методы аутентификации:
-
Флаг
--authи IAM-токен или API-ключ. Флаг не требуется, если пользователь аутентифицировался другим методом.Примечание
Если указаны оба вида токена,
YC_API_KEYимеет приоритет надYC_IAM_TOKEN. -
Если у вас установлен и настроен Yandex Cloud CLI, инструмент автоматически использует его конфигурацию.
-
При работе на ВМ 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/. - Локальное хранилище: на открытой странице нажмите
и выберите Информация о странице. Идентификатор будет указан в параметре
?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-формате.