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


ai_embeddings плагин (предварительная версия)

Применимо: ✅Microsoft FabricAzure Data Explorer

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

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

Предпосылки

Синтаксис

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

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

Параметры

Имя Тип Обязательно Описание
текст string ✔️ Текст для внедрения. Это значение может быть ссылкой на столбец или скалярным константой.
connectionString string ✔️ Строка подключения для языковой модели в формате<ModelDeploymentUri>;<AuthenticationMethod>; замените <ModelDeploymentUri> и <AuthenticationMethod> URI модели ИИ и метод проверки подлинности соответственно.
параметры dynamic Параметры, управляющие вызовами конечной точки модели внедрения. См. Параметры.
IncludeErrorMessages (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.

Настройка политики выноски

Политика azure_openaiвыноски позволяет выполнять внешние вызовы к службам ИИ Azure.

Чтобы настроить политику выноски для авторизации домена конечной точки модели ИИ:

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

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

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

Чтобы настроить управляемое удостоверение, выполните следующие действия.

.alter-merge cluster policy managed_identity
```
[
  {
    "ObjectId": "system",
    "AllowedUsages": "AzureAI"
  }
]
```

Возвраты

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

  • Столбец с суффиксом _embeddings , содержащий значения встраивания
  • Если настроено возвращать ошибки, столбец с суффиксом _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_embeddings(expression, connectionString)
let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/text-embedding-3-small/embeddings?api-version=2024-06-01;impersonate';
evaluate ai_embeddings(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_embeddings(TextData, connectionString, options , true)
let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/text-embedding-3-small/embeddings?api-version=2024-06-01;impersonate';
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_embeddings(TextData, connectionString, options , true)

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

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

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

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