你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
该 ai_chat_completion 插件支持使用语言模型生成聊天完成,支持与 AI 相关的方案,例如聊天 AI 和交互式系统。 该插件使用 Azure OpenAI 服务聊天终结点,可以使用托管标识或用户的标识(模拟)进行访问。
该 ai_chat_completion 插件支持使用语言模型生成聊天完成,支持与 AI 相关的方案,例如聊天 AI 和交互式系统。 该插件使用 Azure OpenAI 服务聊天终结点,可以使用用户的标识(模拟)进行访问。
先决条件
- 至少配置了分配给所用标识的 Azure OpenAI 服务(认知服务 OpenAI 用户)角色。
- 配置为允许调用 AI 服务的 标注策略 。
- 使用托管标识访问 Azure OpenAI 服务时,请将 托管标识策略 配置为允许与服务通信。
语法
evaluate
ai_chat_completion
(
Chat, ConnectionString [, [,IncludeErrorMessages]])
详细了解语法约定。
参数
| 名字 | 类型 | 必选 | 说明 |
|---|---|---|---|
| 聊天 | dynamic |
✔️ | 到目前为止,由对话构成的消息数组。 该值可以是列引用或常量标量。 |
| ConnectionString | string |
✔️ | 格式<ModelDeploymentUri>;<AuthenticationMethod>的语言模型连接字符串;分别替换为 <ModelDeploymentUri><AuthenticationMethod> AI 模型部署 URI 和身份验证方法。 |
| 选项 | dynamic |
控制对聊天模型终结点的调用的选项。 请参阅选项。 | |
| IncludeErrorMessages | bool |
指示是否在输出表中的新列中输出错误。 默认值:false。 |
选项
下表描述了控制向聊天模型终结点发出请求的方式的选项。
| 名字 | 类型 | 说明 |
|---|---|---|
RetriesOnThrottling |
int |
指定发生限制时重试尝试次数。 默认值:0。 |
GlobalTimeout |
timespan |
指定等待来自 AI 聊天模型的响应的最长时间。 默认值:null。 |
ModelParameters |
dynamic |
特定于 AI 聊天模型的参数。 可能的值:temperature、、top_p、、stopmax_tokensmax_completion_tokens、presence_penaltyfrequency_penalty、。 userseed 将忽略任何其他指定的模型参数。 默认值:null。 |
ReturnSuccessfulOnly |
bool |
指示是否仅返回已成功处理的项。 默认值:false。
如果 IncludeErrorMessages 参数设置为 true,则此选项始终设置为 false。 |
配置标注策略
标注 azure_openai策略 允许外部调用 Azure AI 服务。
若要配置标注策略以授权 AI 模型终结点域:
.alter-merge cluster policy callout
```
[
{
"CalloutType": "azure_openai",
"CalloutUriRegex": "https://[A-Za-z0-9-]{3,63}\.(?:openai\\.azure\\.com|cognitiveservices\\.azure\\.com|cognitive\\.microsoft\\.com|services\\.ai\\.azure\\.com)(?:/.*)?",
"CanCall": true
}
]
```
配置托管标识
使用托管标识访问 Azure OpenAI 服务时,必须配置 托管标识策略 ,以允许系统分配的托管标识向 Azure OpenAI 服务进行身份验证。
配置托管标识:
.alter-merge cluster policy managed_identity
```
[
{
"ObjectId": "system",
"AllowedUsages": "AzureAI"
}
]
```
退货
返回以下新的聊天完成列:
- 包含聊天完成值的 _chat_completion 后缀的列。
- 如果配置为返回错误,则为 _chat_completion_error 后缀的列,其中包含错误字符串;如果作成功,则留空。
插件根据输入类型返回不同的结果:
- 列引用:返回一个或多个以引用列名称为前缀的其他列的记录。 例如,如果输入列名为 PromptData,则输出列 将命名为PromptData_chat_completion ,如果配置为返回错误, 则PromptData_chat_completion_error。
- 常量标量:返回包含不带前缀的其他列的单个记录。 列名称 _chat_completion ,如果配置为返回错误, _chat_completion_error。
例子
以下示例使用 系统提示 将输入中所有后续聊天消息的上下文设置为 Azure OpenAI 聊天完成模型。
let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/gpt4o/chat/completions?api-version=2024-06-01;managed_identity=system';
let messages = dynamic([{'role':'system', 'content': 'You are a KQL writing assistant'},{'role':'user', 'content': 'How can I restrict results to just 10 records?'}]);
evaluate ai_chat_completion(messages, connectionString);
let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/gpt4o/chat/completions?api-version=2024-06-01;impersonate';
let messages = dynamic([{'role':'system', 'content': 'You are a KQL writing assistant'},{'role':'user', 'content': 'How can I restrict results to just 10 records?'}]);
evaluate ai_chat_completion(messages, connectionString);