Azure OpenAI Embedding 技能

重要

根据补充使用条款,此功能以公共预览版提供。 2023-10-01-Preview REST API 支持此功能。

“Azure OpenAI Embedding”技能连接到 Azure OpenAI 资源上已部署的嵌入模型来生成嵌入项。

导入和矢量化数据使用 Azure OpenAI 嵌入技能来矢量化内容。 可以运行向导并查看生成的技能集,了解向导如何生成它。

注意

此技能绑定到 Azure OpenAI,并按现有 Azure OpenAI 标准预付费套餐价格收费。

@odata.type

Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill

数据限制

文本输入的最大大小应为 8,000 个标记。 如果输入超出允许的最大值,模型将引发“请求无效”错误。 有关详细信息,请参阅 Azure OpenAI 文档中的令牌关键概念。 如果需要数据分块,请考虑使用文本拆分技能

技能参数

参数区分大小写。

输入 说明
resourceUri 模型提供程序的 URI,例如 Azure OpenAI 资源或 OpenAI URL。
apiKey 用于访问模型的密钥。 如果你提供密钥,请将 authIdentity 留空。 如果同时设置 apiKeyauthIdentity,则会在连接上使用 apiKey =。
deploymentId 已部署的 Azure OpenAI 嵌入模型的名称。 模型应该是嵌入模型,例如 text-embedding-ada-002。 有关支持的模型,请参阅 Azure OpenAI 模型列表
authIdentity 搜索服务用于连接到 Azure OpenAI 的用户托管标识。 可以使用系统托管标识或用户托管标识。 若要使用系统托管标识,请将 apiKeyauthIdentity 留空。 会自动使用系统托管标识。 托管标识必须具有认知服务 OpenAI 用户权限才能将文本发送到 Azure OpenAI。

技能输入

输入 说明
text 要矢量化的输入文本。 如果使用数据分块,则源可能是 /document/pages/*

技能输出

输出 说明
embedding 输入文本的矢量化嵌入。

示例定义

考虑具有以下字段的记录:

{
    "content": "Microsoft released Windows 10."
}

然后,技能定义可能会如下所示:

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://my-demo-openai-chinaeast.openai.azure.com/",
  "deploymentId": "my-text-embedding-ada-002-model",
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ]
}

示例输出

对于给定的输入文本,将生成矢量化嵌入输出。

{
  "embedding": [
        0.018990106880664825,
        -0.0073809814639389515,
        .... 
        0.021276434883475304,
      ]
}

输出驻留在内存中。 若要将此输出发送到搜索索引中的字段,必须定义一个 outputFieldMapping,用于将矢量化的嵌入输出(即数组)映射到一个矢量字段。 假设技能输出驻留在文档的嵌入节点中,且 content_vector 是搜索索引中的字段,那么索引器中的 outputFieldMapping 应如下所示:

  "outputFieldMappings": [
    {
      "sourceFieldName": "/document/embedding/*",
      "targetFieldName": "content_vector"
    }
  ]

错误和警告

条件 结果
null 或无效 URI 错误
null 或无效的 deploymentID 错误
文本为空 警告
文本大于 8,000 个标记 错误

另请参阅