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


подключаемый модуль ai_embed_text (предварительная версия)

Область применения: ✅Azure Data Explorer

Подключаемый ai_embed_text модуль позволяет внедрять текст с помощью языковых моделей, обеспечивая различные сценарии, связанные с ИИ, такие как приложения получения дополненного поколения (RAG) и семантический поиск. Подключаемый модуль поддерживает внедрение моделей Azure OpenAI Service, доступ к которым осуществляется с помощью управляемого удостоверения.

Необходимые компоненты

Синтаксис

evaluateai_embed_text (text, connectionString [, параметры [, IncludeErrorMessages]])

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
text string ✔️ Текст для внедрения. Это значение может быть ссылкой на столбец или скалярным константой.
connectionString string ✔️ Строка подключения для языковой модели в формате<ModelDeploymentUri>;<AuthenticationMethod>; замените <ModelDeploymentUri> и <AuthenticationMethod> URI модели ИИ и метод проверки подлинности соответственно.
options dynamic Параметры, управляющие вызовами конечной точки модели внедрения. См. Параметры.
IncludeErrorMessages bool Указывает, следует ли выводить ошибки в новом столбце в выходной таблице. Значение по умолчанию: false.

Параметры

В следующей таблице описаны параметры, управляющие способом выполнения запросов к конечной точке модели внедрения.

Имя. Тип Описание
RecordsPerRequest int Указывает количество записей для обработки каждого запроса. Значение по умолчанию: 1.
CharsPerRequest int Указывает максимальное количество символов для обработки каждого запроса. Значение по умолчанию: 0 (неограниченно). Azure OpenAI подсчитывает маркеры, при этом каждый маркер приблизительно преобразуется в четыре символа.
RetriesOnThrottling int Указывает количество попыток повторных попыток при регулировании. Значение по умолчанию: 0.
GlobalTimeout timespan Указывает максимальное время ожидания ответа из модели внедрения. Значение по умолчанию: null
ModelParameters dynamic Параметры, относящиеся к модели внедрения, например измерения внедрения или идентификаторы пользователей для мониторинга. Значение по умолчанию: null.
ReturnSuccessfulOnly bool Указывает, следует ли возвращать только успешно обработанные элементы. Значение по умолчанию: false. Если для параметра IncludeErrorMessages задано trueзначение , этот параметр всегда имеет значение false.

Настройка политик управляемого удостоверения и выноски

Чтобы использовать подключаемый ai_embed_text модуль, необходимо настроить следующие политики:

Чтобы настроить эти политики, выполните следующие команды:

  1. Настройте управляемое удостоверение:

    .alter-merge cluster policy managed_identity
    ```
    [
      {
        "ObjectId": "system",
        "AllowedUsages": "AzureAI"
      }
    ]
    ```
    
  2. Настройте политику выноски:

    .alter-merge cluster policy callout
    ```
    [
        {
            "CalloutType": "azure_openai",
            "CalloutUriRegex": "https://[A-Za-z0-9\\-]{3,63}\\.openai\\.azure\\.com/.*",
            "CanCall": true
        }
    ]
    ```
    

Возвраты

Возвращает следующие новые столбцы внедрения:

  • Столбец с суффиксом _embedding , содержащим значения внедрения
  • Если настроено возвращать ошибки, столбец с суффиксом _embedding_error , который содержит строки ошибок или остается пустым, если операция выполнена успешно.

В зависимости от типа входных данных подключаемый модуль возвращает различные результаты:

  • Ссылка на столбец: возвращает одну или несколько записей с дополнительными столбцами, префиксируются именем ссылочного столбца. Например, если входной столбец называется TextData, выходные столбцы называются TextData_embedding и, если настроено для возврата ошибок, TextData_embedding_error.
  • Скаляр констант: возвращает одну запись с дополнительными столбцами, которые не префиксированы. Имена столбцов _embedding и, если настроены для возврата ошибок, _embedding_error.

Примеры

В следующем примере текст внедряется Embed this text using AI с помощью модели внедрения Azure OpenAI.

let expression = 'Embed this text using AI';
let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/text-embedding-3-small/embeddings?api-version=2024-06-01;managed_identity=system';
evaluate ai_embed_text(expression, connectionString)

В следующем примере выполняется внедрение нескольких текстов с помощью модели внедрения Azure OpenAI.

let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/text-embedding-3-small/embeddings?api-version=2024-06-01;managed_identity=system';
let options = dynamic({
    "RecordsPerRequest": 10,
    "CharsPerRequest": 10000,
    "RetriesOnThrottling": 1,
    "GlobalTimeout": 2m
});
datatable(TextData: string)
[
    "First text to embed",
    "Second text to embed",
    "Third text to embed"
]
| evaluate ai_embed_text(TextData, connectionString, options , true)

Рекомендации

Модели внедрения Azure OpenAI подвержены интенсивному регулированию, и частые вызовы этого подключаемого модуля могут быстро достичь ограничений регулирования.

Чтобы эффективно использовать подключаемый ai_embed_text модуль при минимизации регулирования и затрат, выполните следующие рекомендации.

  • Размер запроса элемента управления: настройте количество записей (RecordsPerRequest) и символов на запрос (CharsPerRequest).
  • Время ожидания запроса управления: задайте GlobalTimeout значение ниже времени ожидания запроса, чтобы убедиться, что ход выполнения не будет потерян при успешных вызовах до этой точки.
  • Обработка ограничений скорости более корректно: задайте повторные попытки для регулирования (RetriesOnThrottling).