Поделиться через


Добавление ресурса индекса векторного поиска в приложение Databricks

Добавьте индексы векторного поиска в качестве ресурсов Databricks Apps, чтобы включить семантический поиск и поиск на основе сходства в ваших приложениях. Индексы векторного поиска хранят и запрашивают высокоразмерные векторные внедрения, обеспечивая такие варианты использования, как получение, дополненное генерацией (RAG), семантический поиск и рекомендательные системы.

Требования к привилегиям

Чтобы получить доступ к индексу векторного поиска, служебный принципал приложения должен иметь USE CATALOG привилегии в родительском каталоге, USE SCHEMA привилегии родительской схемы и SELECT привилегии индекса. При добавлении ресурса индекса Azure Databricks автоматически предоставляет эти привилегии служебному принципалу приложения.

Для успешного предоставления этой привилегии одно из следующих условий должно выполняться для каждой привилегии:

  • Для USE CATALOG: у всех пользователей учетной записи есть USE CATALOG привилегия на каталоге или у вас есть MANAGE привилегия на каталоге.
  • Для USE SCHEMA: либо у всех пользователей учетной записи есть привилегия USE SCHEMA на схему, либо у вас есть привилегия MANAGE на схему.
  • Для SELECT: у всех пользователей учетной записи есть SELECT права на индекс или у вас есть MANAGE права на индекс.

Дополнительные сведения о запросах индексов векторного поиска с этими разрешениями см. в статье "Как запросить индекс векторного поиска".

Ознакомьтесь с привилегиями каталога Unity и защищаемыми объектами.

Добавление ресурса индекса векторного поиска

Перед добавлением индекса векторного поиска в качестве ресурса просмотрите предварительные требования к ресурсу приложения.

  1. При создании или изменении приложения перейдите к шагу "Настройка ".
  2. В разделе "Ресурсы приложения" нажмите кнопку +Добавить ресурс.
  3. Выберите индекс векторного поиска в качестве типа ресурса.
  4. Выберите индекс векторного поиска из доступных индексов в рабочей области. Индекс должен уже существовать в каталоге Unity.
  5. Выберите уровень разрешений для приложения:
    • Может выбрать: Предоставляет приложению разрешение на запрос индекса векторного поиска для поиска сходства. Соответствует привилегии SELECT .
  6. (Необязательно) Укажите пользовательский ключ ресурса, который является ссылкой на индекс в конфигурации приложения. Ключ по умолчанию — vector-search-index.

Замечание

Индексы векторного поиска — это таблицы каталога Unity с типом TABLE_ONLINE_VECTOR_INDEX_REPLICA или TABLE_ONLINE_VECTOR_INDEX_DIRECT. При выборе индекса векторного поиска вы выбираете специально настроенную таблицу, которая поддерживает семантические операции поиска.

Переменные среды

При развертывании приложения с ресурсом индекса векторного поиска Azure Databricks предоставляет полное трехуровневое имя с помощью переменных среды, на которые можно ссылаться с помощью valueFrom поля.

Пример конфигурации:

env:
  - name: VECTOR_SEARCH_INDEX
    valueFrom: vector-search-index # Use your custom resource key if different

Использование индекса в приложении:

import os
from databricks.sdk import WorkspaceClient

# Access the vector search index name
index_name = os.getenv("VECTOR_SEARCH_INDEX")

# Initialize workspace client
w = WorkspaceClient()

# Query the vector search index
results = w.vector_search_indexes.query_index(
    index_name=index_name,
    query_text="What is machine learning?",
    num_results=10
)

# Process results
for result in results.manifest.columns:
    print(f"Result: {result}")

Дополнительные сведения см. в разделе "Использование переменных среды для доступа к ресурсам".

Удаление ресурса индекса векторного поиска

При удалении ресурса индекса для векторного поиска из приложения, сервисный принципал приложения теряет доступ к индексу. Сам индекс остается неизменным и по-прежнему доступен для других пользователей и приложений, имеющих соответствующие разрешения.

Лучшие практики

При работе с ресурсами индекса векторного поиска следует учитывать следующее:

  • Убедитесь, что сервис-принципал приложения имеет доступ к базовым источникам данных, если индекс содержит ссылки на другие таблицы.
  • Отслеживайте производительность запросов и настраивайте конфигурацию индекса или модели внедрения, если время отклика ухудшается.
  • Рассмотрите расписание обновления индекса, чтобы обеспечить синхронизацию внедренных данных с исходными данными.
  • Используйте соответствующие метрики сходства (cosine, euclidean, dot product) на основе модели внедрения.