你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
注释
Azure AI 搜索可通过Azure门户、REST API 和Azure SDK获取。 它也是 Foundry IQ 的基础;Foundry IQ 是一个托管式知识层,可将企业内容转化为供 Microsoft Foundry 门户中的智能体使用的、可复用且具备权限感知能力的知识库。
重要
标记为“预览”的特性、功能或属性不受服务级别协议 (SLA) 保障,不建议用于生产工作负载,并且在正式发布之前可能会更改或受到限制。 Azure AI 搜索预览条款适用于所有预览功能,无论是独立功能还是正式版功能的一部分。
使用 AML 技能,借助已部署的基础嵌入模型扩展 AI 扩充功能;该模型可来自 Microsoft Foundry 模型目录(预览版),也可来自自定义的 Azure 机器学习 (AML) 模型。 你的数据会在模型部署的 地理环境中 处理。
你在技能组中指定 AML 技能,然后该技能会将已部署的模型集成到 AI 扩充管道中。 AML 技能可用于执行内置技能不支持的处理或推理。 示例包括使用自己的模型生成嵌入内容,以及应用自定义机器学习逻辑来扩充内容。
对于 AML 联机终结点,请使用稳定的 API 版本或等效Azure SDK来调用 AML 技能。 若要连接到模型目录,请使用预览 API 版本。
AML 技能用法
与其他技能一样,AML 技能具有输入和输出。 输入作为 JSON 对象发送到来自 Foundry 模型目录的无服务器部署或 AML 联机终结点。 输出应包括成功状态代码、JSON 有效负载和 AML 技能定义指定的参数。 任何其他响应都被视为错误,不会执行任何扩充。
索引器针对以下 HTTP 状态代码重试两次:
503 Service Unavailable429 Too Many Requests
Microsoft Foundry 中适用于模型的 AML 技能(预览版)
Azure AI 搜索 提供 Microsoft Foundry 模型目录向量化器(预览版),该功能也可在 导入数据向导 中使用,用于在查询时连接到模型目录。 如果要将此矢量化器用于查询,AML 技能是对应的索引时组件,用于使用来自模型目录的模型生成嵌入。
在编制索引期间,AML 技能可以连接到模型目录,为索引生成向量。 在查询时,查询可以使用向量器连接到同一模型来向量化文本字符串。 应同时使用 AML 技能和 Microsoft Foundry 模型目录向量程序,以便使用相同的嵌入模型来编制索引和查询。 有关详细信息,请参阅 使用 Foundry 模型目录中的嵌入模型。
建议使用 导入数据 向导 生成技能集,其中包含用于在 Foundry 中部署的嵌入模型的 AML 技能。 该向导为输入、输出和映射生成 AML 技能定义,从而提供在编写任何代码之前测试模型的简单方法。
先决条件
Microsoft Foundry 基于中心的项目或 AML 工作区(适用于你创建的自定义模型)。
Microsoft Foundry 模型目录部署中支持的模型的无服务器部署(仅适用于基于中心的项目)。 可以使用Azure CLI来预配无服务器部署。
@odata.type
Microsoft.Skills.Custom.AmlSkill
技能参数
参数区分大小写。 所使用的参数取决于 模型提供程序所需的身份验证(如果有)。
| 参数名称 | 描述 |
|---|---|
uri |
(密钥身份验证必填)来自 Microsoft Foundry 模型目录的无服务器部署的目标 URI 或 AML 联机终结点的评分 URI。 仅允许 HTTPS URI 方案。 模型目录中支持的模型(仅限无服务器部署)包括:
|
key |
( 密钥身份验证必需)模型提供程序的 API 密钥。 |
resourceId |
(令牌身份验证的必需项)模型提供程序的 Azure 资源管理器资源 ID。 对于 AML 联机终结点,请使用 subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/onlineendpoints/{endpoint_name} 格式。 |
region |
(可选的令牌身份验证)模型提供程序部署所在的区域。 如果区域与搜索服务的区域不同,则为必需。 |
timeout |
(可选)HTTP 客户端在进行 API 调用时的超时时间。 它必须格式化为 XSD“dayTimeDuration”值,该值是 ISO 8601 持续时间 值的受限子集。 例如,PT60S 表示 60 秒。 如果未设置,则选择默认值 30 秒。 可以将超时设置为至少 1 秒,最多 230 秒。 |
degreeOfParallelism |
(可选)索引器与所提供的终结点并行进行的调用次数。 如果终结点在请求负载过高的情况下失败,则可以降低此值。 如果您的接口能够接受更多请求,并且您希望提高索引器的性能,则可以提升相关参数。 如果未设置,则使用默认值 5。 可以将 degreeOfParallelism 的值设置为至少 1,最多 10。 |
认证
AML 技能提供两个身份验证选项:
基于密钥的身份验证: 你提供一个静态密钥,用于对来自 AML 技能的评分请求进行身份验证。 设置此连接的
uri参数和key参数。基于令牌的身份验证: 基于 Foundry 中心的项目或 AML 联机终结点是使用基于令牌的身份验证部署的。 Azure AI 搜索服务必须具有托管标识和模型提供程序上的角色分配。 然后,AML 技能使用搜索服务标识对模型提供程序进行身份验证,无需静态密钥。 搜索服务标识必须具有 “所有者 ”或 “参与者 ”角色。
resourceId设置参数,如果搜索服务位于与模型提供程序不同的区域,请设置region参数。
技能输入
技能输入是文档破解期间创建的扩充文档的节点。 例如,它可能是根文档、规范化图像或 Blob 的内容。 此技能没有预定义的输入。 对于输入,应指定一个或多个在 AML 技能执行时已填充的节点。
技能输出
技能输出是由技能生成的扩充文档中的新节点。 此技能没有预定义的输出。 对于输出,应提供可从 AML 技能的 JSON 响应填充的节点。
示例定义
{
"@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
"description": "A custom model that detects the language in a document.",
"uri": "https://language-model.models.contoso.com/score",
"context": "/document",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "detected_language_code"
}
]
}
示例输入 JSON 结构
此 JSON 结构表示发送到你的基于 Foundry 中心的项目或 AML 联机终结点的负载。 结构的顶级字段对应于技能定义节中指定的 inputs “名称”。 这些字段的值来自这些字段的“源”,这些字段可能来自文档中的某个字段或其他技能。
{
"text": "Este es un contrato en Inglés"
}
示例输出 JSON 结构
输出对应于来自你的基于 Foundry 中心的项目或 AML 联机终结点的响应。 模型提供程序应仅返回 JSON 负载(通过查看 Content-Type 响应标头验证),且应为一个对象,其字段为与 output 中的“名称”匹配的扩充,其值被视为扩充结果。
{
"detected_language_code": "es"
}
内联成形示例定义
{
"@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
"description": "A sample model that detects the language of sentence",
"uri": "https://language-model.models.contoso.com/score",
"context": "/document",
"inputs": [
{
"name": "shapedText",
"sourceContext": "/document",
"inputs": [
{
"name": "content",
"source": "/document/content"
}
]
}
],
"outputs": [
{
"name": "detected_language_code"
}
]
}
内联成形 JSON 结构
{
"shapedText": { "content": "Este es un contrato en Inglés" }
}
内联成形示例输出 JSON 结构
{
"detected_language_code": "es"
}
错误案例
除了你的基于 Foundry 中心的项目或 AML 联机终结点不可用或发送非成功状态代码外,以下情况也被视为错误:
模型提供程序返回成功状态代码,但响应指示它不是
application/json。 因此,响应无效,不会执行任何扩充。模型提供程序返回无效的 JSON。
如果模型提供商不可用或返回 HTTP 错误,系统会将包含有关 HTTP 错误的任何可用详情的友好错误消息添加到索引器执行历史中。