你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

了解如何生成嵌入内容

嵌入是一种特殊的数据表示格式,可由机器学习模型和算法轻松使用。 嵌入是一段文本的语义含义的信息密集表示。 每个嵌入是浮点数的一个向量,向量空间中两个嵌入之间的距离与原始格式的两个输入之间的语义相似性相关。 例如,如果两个文本相似,则它们的向量表示形式也应该相似。 嵌入支持在 Azure 数据库中进行矢量相似性搜索,例如 Azure Cosmos DB for NoSQLAzure Cosmos DB for MongoDB vCoreAzure SQL 数据库Azure Database for PostgreSQL - 灵活服务器

如何获取嵌入

若要获取文本片段的嵌入向量,请向嵌入终结点发出请求,如以下代码片段所示:

注释

Azure OpenAI 嵌入 API 目前不支持与 v1 API 一起使用的 Microsoft Entra ID。

using OpenAI;
using OpenAI.Embeddings;
using System.ClientModel;

EmbeddingClient client = new(
    "text-embedding-3-small",
    credential: new ApiKeyCredential("API-KEY"),
    options: new OpenAIClientOptions()
    {

        Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
    }
);

string input = "This is a test";

OpenAIEmbedding embedding = client.GenerateEmbedding(input);
ReadOnlyMemory<float> vector = embedding.ToFloats();
Console.WriteLine($"Embeddings: [{string.Join(", ", vector.ToArray())}]");

最佳做法

确认输入不超过最大长度

  • 最新嵌入模型的输入文本的最大长度为 8192 个标记。 在发出请求之前,应确认输入未超过此限制。
  • 如果在单个嵌入请求中发送输入数组,则最大数组大小为 2048。
  • 在一个请求中发送一组输入时,请记得请求中的每分钟令牌数需要始终小于模型部署中分配的配额限值。 默认情况下,最新的第 3 代嵌入模型存在每个区域 350 K TPM 的限制。

限制和风险

在某些情况下,我们的嵌入模型可能不可靠或造成社会性风险,如果没有缓解措施,它们可能会造成损害。 请查看负责任的 AI 内容,获取有关如何以负责的形式使用这些模型的详细信息。

后续步骤