подключаемый модуль ai_embed_text (предварительная версия)
Область применения: ✅Azure Data Explorer
Подключаемый ai_embed_text
модуль позволяет внедрять текст с помощью языковых моделей, обеспечивая различные сценарии, связанные с ИИ, такие как приложения получения дополненного поколения (RAG) и семантический поиск. Подключаемый модуль поддерживает внедрение моделей Azure OpenAI Service, доступ к которым осуществляется с помощью управляемого удостоверения.
Необходимые компоненты
- Служба Azure OpenAI, настроенная с управляемым удостоверением
- Управляемые удостоверения и политики выносок, настроенные для предоставления связи со службами Azure OpenAI
Синтаксис
evaluate
ai_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
модуль, необходимо настроить следующие политики:
- управляемое удостоверение: разрешить управляемому удостоверению, назначаемого системой, пройти проверку подлинности в службах Azure OpenAI.
- выноска: авторизация домена конечной точки модели ИИ.
Чтобы настроить эти политики, выполните следующие команды:
Настройте управляемое удостоверение:
.alter-merge cluster policy managed_identity ``` [ { "ObjectId": "system", "AllowedUsages": "AzureAI" } ] ```
Настройте политику выноски:
.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
).