Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
使用自定义 Web API 矢量器,可以将搜索查询配置为调用在查询时生成嵌入的 Web API 终结点。 本文稍后将介绍终结点所需的 JSON 有效负载结构。 您的数据在模型部署的地理位置中进行处理。
尽管矢量化器在查询时使用,但您需要在索引定义中指定它们,并通过矢量概况在向量字段上引用它们。 有关详细信息,请参阅 在搜索索引中配置向量器。
自定义 Web API 向量器在 REST API 中被称为 WebApiVectorizer。 使用最新的稳定版本的 索引 - 创建 (REST API) 或提供该功能的 Azure SDK 包。
矢量器参数
参数区分大小写。
| 参数名称 | 说明 |
|---|---|
uri |
JSON 有效负载被发送到的 Web API 的 URI。 仅支持 https URI 方案。 |
httpMethod |
用于发送有效负载的方法。 允许的方法为 PUT 或 POST。 |
httpHeaders |
键值对集合,其中键表示头名称,值表示发送到 Web API 的头值以及有效负载。 此集合中禁止以下标头:Accept、、Accept-Charset、、Accept-EncodingContent-Length、Content-TypeCookie、Host、TE、 、 Upgrade。 Via |
authResourceId |
(可选)一个字符串,如果已设置,则指示此向量器使用托管标识连接到托管代码的函数或应用。 此属性可接受 Microsoft Entra ID 中的应用程序(客户端)ID或应用注册,其格式之一为:api://<appId>、<appId>/.default、api://<appId>/.default。 此值定义了查询管道检索的身份验证令牌的范围,并通过自定义 Web API 请求将其发送到函数或应用。 设置此属性要求您的搜索服务已配置为托管标识,并且您的Azure函数应用已配置为Microsoft Entra登录。 |
authIdentity |
(可选)搜索服务使用的用户管理的身份,用以连接到托管代码的函数或应用。 可以使用 系统托管标识或用户托管标识。 若要使用系统托管标识,请留 authIdentity 空。 |
timeout |
(可选)用于发出 API 调用的 HTTP 客户端的超时时间。 它必须格式化为 XSD dayTimeDuration 值( ISO 8601 持续时间 值的受限子集)。 例如, PT60S 表示 60 秒。 如果未设置,则默认值为 30 秒。 超时时间可以介于 1 到 230 秒之间。 |
支持的矢量查询类型
自定义 Web API 矢量器支持 text、imageUrl 和 imageBinary 矢量查询。
示例定义
"vectorizers": [
{
"name": "my-custom-web-api-vectorizer",
"kind": "customWebApi",
"customWebApiParameters": {
"uri": "https://contoso.embeddings.com",
"httpMethod": "POST",
"httpHeaders": {
"api-key": "0000000000000000000000000000000000000"
},
"timeout": "PT60S",
"authResourceId": null,
"authIdentity": null
}
}
]
JSON 数据负载结构
自定义 Web API 向量化器使用的终结点所需的 JSON 有效负载结构与自定义 Web API 技能使用的结构相同,在 技能文档中有更详细的讨论。
为自定义 Web API 向量器实现 Web API 终结点时,请记住以下注意事项。
向终结点发出请求时,矢量器在
values阵列中一次只发送一条记录。矢量器将要矢量化的数据传递到请求有效负载中
dataJSON 对象的特定键中。 键为text、imageUrl或imageBinary,具体取决于请求的矢量查询类型。矢量器期望得到的嵌入位于响应有效负载中
vectorJSON 对象的data键下。终结点返回的任何错误或警告都会被矢量化程序忽略,并且不适用于查询时调试。
如果请求了
imageBinary矢量查询,则发送到终结点的请求有效负载如下:{ "values": [ { "recordId": "0", "data": { "imageBinary": { "data": "<base 64 encoded image binary data>" } } } ] }