Como gerar embeddings com Microsoft Foundry Models (clássico)

Aplica-se apenas a:Portal Foundry (clássico). Este artigo não está disponível para o novo portal da Foundry. Saiba mais sobre o novo portal.

Nota

Os links neste artigo podem abrir conteúdo na nova documentação do Microsoft Foundry em vez da documentação do Foundry (clássico) que está a ver agora.

Importante

O Azure AI Inference beta SDK está obsoleto e será retirado a 26 de agosto de 2026. Mude para a API OpenAI/v1 geralmente disponível com um SDK OpenAI estável. Siga o guia de migração para mudar para OpenAI/v1, usando o SDK da sua linguagem de programação preferida.

Importante

Os itens marcados (pré-visualização) neste artigo encontram-se atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e não a recomendamos para cargas de trabalho em produção. Certas funcionalidades podem não ser suportadas ou podem ter capacidades limitadas. Para mais informações, consulte Termos de Utilização Suplementares para Microsoft Azure Pré-visualizações.

Este artigo explica como usar a API de embeddings com modelos implementados nos Microsoft Foundry Models.

Pré-requisitos

Para usar modelos de embedding na sua aplicação, precisa de:

  • Instale o pacote de inferência de IA Azure para Python com o seguinte comando:

    pip install -U azure-ai-inference
    

Utilização de embeddings

Primeiro, crie o cliente para consumir o modelo. O código seguinte utiliza uma URL de endpoint e uma chave que são armazenadas nas variáveis de ambiente.

import os
from azure.ai.inference import EmbeddingsClient
from azure.core.credentials import AzureKeyCredential

model = EmbeddingsClient(
    endpoint="https://<resource>.services.ai.azure.com/models",
    credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
    model="text-embedding-3-small"
)

Se configurou o recurso com suporte Microsoft Entra ID, pode usar o seguinte excerto de código para criar um cliente.

import os
from azure.ai.inference import EmbeddingsClient
from azure.identity import DefaultAzureCredential

model = EmbeddingsClient(
    endpoint="https://<resource>.services.ai.azure.com/models",
    credential=DefaultAzureCredential(),
    model="text-embedding-3-small"
)

Criar incrustações (embeddings)

Crie um pedido de embedding para ver a saída do modelo.

response = model.embed(
    input=["The ultimate answer to the question of life"],
)

Dica

Ao criar um pedido, tenha em conta o limite de entrada do token para o modelo. Se precisares de incorporar porções maiores de texto, precisarias de uma estratégia de fragmentação.

A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:

import numpy as np

for embed in response.data:
    print("Embedding of size:", np.asarray(embed.embedding).shape)

print("Model:", response.model)
print("Usage:", response.usage)

Pode ser útil calcular embeddings em lotes de entrada. O parâmetro inputs pode ser uma lista de cadeias, onde cada cadeia é uma entrada diferente. Por sua vez, a resposta é uma lista de embeddings, onde cada embedding corresponde à entrada na mesma posição.

response = model.embed(
    input=[
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter",
    ],
)

A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:

import numpy as np

for embed in response.data:
    print("Embedding of size:", np.asarray(embed.embedding).shape)

print("Model:", response.model)
print("Usage:", response.usage)

Dica

Ao criar lotes de pedidos, tenha em conta o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de 1024 lotes.

Especificar dimensões de embeddings

Pode especificar o número de dimensões para os embeddings. O seguinte exemplo de código mostra como criar embeddings com dimensões 1024. Note que nem todos os modelos de embedding suportam indicar o número de dimensões no pedido e, nesses casos, é devolto um erro 422.

response = model.embed(
    input=["The ultimate answer to the question of life"],
    dimensions=1024,
)

Criar diferentes tipos de incorporações (embeddings)

Alguns modelos podem gerar múltiplos embeddings para a mesma entrada, dependendo de como planeias usá-los. Esta funcionalidade permite-lhe recuperar embeddings mais precisos para padrões RAG.

O exemplo seguinte mostra como criar embeddings que são usados para criar um embedding para um documento que será armazenado numa base de dados vetorial:

from azure.ai.inference.models import EmbeddingInputType

response = model.embed(
    input=["The answer to the ultimate question of life, the universe, and everything is 42"],
    input_type=EmbeddingInputType.DOCUMENT,
)

Quando trabalha numa consulta para recuperar tal documento, pode usar o seguinte excerto de código para criar os embeddings da consulta e maximizar o desempenho da recuperação.

from azure.ai.inference.models import EmbeddingInputType

response = model.embed(
    input=["What's the ultimate meaning of life?"],
    input_type=EmbeddingInputType.QUERY,
)

Note que nem todos os modelos de embedding suportam indicar o tipo de entrada no pedido e, nesses casos, é devolvido um erro 422. Por padrão, são devolvidos embeddings do tipo Text.

Importante

Os itens marcados (pré-visualização) neste artigo encontram-se atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e não a recomendamos para cargas de trabalho em produção. Certas funcionalidades podem não ser suportadas ou podem ter capacidades limitadas. Para mais informações, consulte Termos de Utilização Suplementares para Microsoft Azure Pré-visualizações.

Este artigo explica como usar a API de embeddings com modelos implementados nos Microsoft Foundry Models.

Pré-requisitos

Para usar modelos de embedding na sua aplicação, precisa de:

  • Instale a biblioteca de inferência Azure para JavaScript com o seguinte comando:

    npm install @azure-rest/ai-inference
    npm install @azure/core-auth
    npm install @azure/identity
    

    Se estiver a usar Node.js, pode configurar as dependências em package.json:

    package.json

    {
      "name": "main_app",
      "version": "1.0.0",
      "description": "",
      "main": "app.js",
      "type": "module",
      "dependencies": {
        "@azure-rest/ai-inference": "1.0.0-beta.6",
        "@azure/core-auth": "1.9.0",
        "@azure/core-sse": "2.2.0",
        "@azure/identity": "4.8.0"
      }
    }
    
  • Importa o seguinte:

    import ModelClient from "@azure-rest/ai-inference";
    import { isUnexpected } from "@azure-rest/ai-inference";
    import { createSseStream } from "@azure/core-sse";
    import { AzureKeyCredential } from "@azure/core-auth";
    import { DefaultAzureCredential } from "@azure/identity";
    

Utilização de embeddings

Primeiro, crie o cliente para consumir o modelo. O código seguinte utiliza uma URL de endpoint e uma chave que são armazenadas nas variáveis de ambiente.

const client = ModelClient(
    "https://<resource>.services.ai.azure.com/models", 
    new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);

Se configurou o recurso com suporte Microsoft Entra ID, pode usar o seguinte excerto de código para criar um cliente.

const clientOptions = { credentials: { "https://cognitiveservices.azure.com" } };

const client = ModelClient(
    "https://<resource>.services.ai.azure.com/models", 
    new DefaultAzureCredential()
    clientOptions,
);

Criar embeddings

Crie um pedido de embedding para ver a saída do modelo.

var response = await client.path("/embeddings").post({
    body: {
        model: "text-embedding-3-small",
        input: ["The ultimate answer to the question of life"],
    }
});

Dica

Ao criar um pedido, tenha em conta o limite de entrada do token para o modelo. Se precisares de incorporar porções maiores de texto, precisarias de uma estratégia de fragmentação.

A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:

if (isUnexpected(response)) {
    throw response.body.error;
}

console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);

Pode ser útil calcular embeddings em lotes de entrada. O parâmetro inputs pode ser uma lista de cadeias, onde cada cadeia é uma entrada diferente. Por sua vez, a resposta é uma lista de embeddings, em que cada embedding corresponde à entrada na mesma posição.

var response = await client.path("/embeddings").post({
    body: {
        model: "text-embedding-3-small",
        input: [
            "The ultimate answer to the question of life", 
            "The largest planet in our solar system is Jupiter",
        ],
    }
});

A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:

if (isUnexpected(response)) {
    throw response.body.error;
}

console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);

Dica

Ao criar lotes de pedidos, tenha em conta o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de 1024 lotes.

Especificar dimensões de embeddings

Pode especificar o número de dimensões para as incorporações. O seguinte exemplo de código mostra como criar embeddings com dimensões 1024. Note que nem todos os modelos de embedding suportam indicar o número de dimensões no pedido e, nesses casos, é devolto um erro 422.

var response = await client.path("/embeddings").post({
    body: {
        model: "text-embedding-3-small",
        input: ["The ultimate answer to the question of life"],
        dimensions: 1024,
    }
});

Criar diferentes tipos de incorporações (embeddings)

Alguns modelos podem gerar múltiplos embeddings para a mesma entrada, dependendo de como planeias usá-los. Esta funcionalidade permite-lhe recuperar embeddings mais precisos para padrões RAG.

O exemplo seguinte mostra como criar embeddings que são usados para criar um embedding para um documento que será armazenado numa base de dados vetorial:

var response = await client.path("/embeddings").post({
    body: {
        model: "text-embedding-3-small",
        input: ["The answer to the ultimate question of life, the universe, and everything is 42"],
        input_type: "document",
    }
});

Quando trabalha numa consulta para recuperar tal documento, pode usar o seguinte excerto de código para criar os embeddings da consulta e maximizar o desempenho da recuperação.

var response = await client.path("/embeddings").post({
    body: {
        model: "text-embedding-3-small",
        input: ["What's the ultimate meaning of life?"],
        input_type: "query",
    }
});

Note que nem todos os modelos de embedding suportam indicar o tipo de entrada no pedido e, nesses casos, é devolvido um erro 422. Por padrão, são devolvidos embeddings do tipo Text.

Importante

Os itens marcados (pré-visualização) neste artigo encontram-se atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e não a recomendamos para cargas de trabalho em produção. Certas funcionalidades podem não ser suportadas ou podem ter capacidades limitadas. Para mais informações, consulte Termos de Utilização Suplementares para Microsoft Azure Pré-visualizações.

Este artigo explica como usar a API de embeddings com modelos implementados nos Microsoft Foundry Models.

Pré-requisitos

Para usar modelos de embedding na sua aplicação, precisa de:

  • Adicione o pacote de inferência Azure IA ao seu projeto:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-ai-inference</artifactId>
        <version>1.0.0-beta.4</version>
    </dependency>
    
  • Se estiver a usar o Entra ID, também precisa do seguinte pacote:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
        <version>1.15.3</version>
    </dependency>
    
  • Importar o seguinte espaço de nomes:

    package com.azure.ai.inference.usage;
    
    import com.azure.ai.inference.EmbeddingsClient;
    import com.azure.ai.inference.EmbeddingsClientBuilder;
    import com.azure.ai.inference.ChatCompletionsClient;
    import com.azure.ai.inference.ChatCompletionsClientBuilder;
    import com.azure.ai.inference.models.EmbeddingsResult;
    import com.azure.ai.inference.models.EmbeddingItem;
    import com.azure.ai.inference.models.ChatCompletions;
    import com.azure.core.credential.AzureKeyCredential;
    import com.azure.core.util.Configuration;
    
    import java.util.ArrayList;
    import java.util.List;
    
  • Importar o seguinte espaço de nomes:

    package com.azure.ai.inference.usage;
    
    import com.azure.ai.inference.EmbeddingsClient;
    import com.azure.ai.inference.EmbeddingsClientBuilder;
    import com.azure.ai.inference.models.EmbeddingsResult;
    import com.azure.ai.inference.models.EmbeddingItem;
    import com.azure.core.credential.AzureKeyCredential;
    import com.azure.core.util.Configuration;
    
    import java.util.ArrayList;
    import java.util.List;
    
  • Uma implementação de modelo de embeddings. Se não tiveres um, lê Adicionar e configurar Foundry Models para adicionar um modelo de embeddings ao teu recurso.

Utilização de embeddings

Primeiro, crie o cliente para consumir o modelo. O código seguinte utiliza uma URL de endpoint e uma chave que são armazenadas nas variáveis de ambiente.

EmbeddingsClient client = new EmbeddingsClient(
    URI.create(System.getProperty("AZURE_INFERENCE_ENDPOINT")),
    new AzureKeyCredential(System.getProperty("AZURE_INFERENCE_CREDENTIAL")),
    "text-embedding-3-small"
);

Se configurou o recurso com suporte Microsoft Entra ID, pode usar o seguinte excerto de código para criar um cliente.

client = new EmbeddingsClient(
    URI.create(System.getProperty("AZURE_INFERENCE_ENDPOINT")),
    new DefaultAzureCredential(),
    "text-embedding-3-small"
);

Criar embeddings

Crie um pedido de embedding para ver a saída do modelo.

EmbeddingsOptions requestOptions = new EmbeddingsOptions()
    .setInput(Arrays.asList("The ultimate answer to the question of life"));

Response<EmbeddingsResult> response = client.embed(requestOptions);

Dica

Ao criar um pedido, tenha em conta o limite de entrada do token para o modelo. Se precisares de incorporar porções maiores de texto, precisarias de uma estratégia de fragmentação.

A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:

System.out.println("Embedding: " + response.getValue().getData());
System.out.println("Model: " + response.getValue().getModel());
System.out.println("Usage:");
System.out.println("\tPrompt tokens: " + response.getValue().getUsage().getPromptTokens());
System.out.println("\tTotal tokens: " + response.getValue().getUsage().getTotalTokens());

Pode ser útil calcular embeddings em lotes de entrada. O parâmetro inputs pode ser uma lista de cadeias, onde cada cadeia é uma entrada diferente. Por sua vez, a resposta é uma lista de embeddings, em que cada embedding corresponde à entrada na mesma posição.

requestOptions = new EmbeddingsOptions()
    .setInput(Arrays.asList(
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter"
    ));

response = client.embed(requestOptions);

A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:

Dica

Ao criar lotes de pedidos, tenha em conta o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de 1024 lotes.

Especificar dimensões de embeddings

Pode especificar o número de dimensões para as incorporações. O seguinte exemplo de código mostra como criar embeddings com dimensões 1024. Note que nem todos os modelos de embedding suportam indicar o número de dimensões no pedido e, nesses casos, é devolto um erro 422.

Criar diferentes tipos de incorporações (embeddings)

Alguns modelos podem gerar múltiplos embeddings para a mesma entrada, dependendo de como planeias usá-los. Esta funcionalidade permite-lhe recuperar embeddings mais precisos para padrões RAG.

O exemplo seguinte mostra como criar embeddings que são usados para criar um embedding para um documento que será armazenado numa base de dados vetorial:

List<String> input = Arrays.asList("The answer to the ultimate question of life, the universe, and everything is 42");
requestOptions = new EmbeddingsOptions(input, EmbeddingInputType.DOCUMENT);

response = client.embed(requestOptions);

Quando trabalha numa consulta para recuperar tal documento, pode usar o seguinte excerto de código para criar os embeddings da consulta e maximizar o desempenho da recuperação.

input = Arrays.asList("What's the ultimate meaning of life?");
requestOptions = new EmbeddingsOptions(input, EmbeddingInputType.QUERY);

response = client.embed(requestOptions);

Note que nem todos os modelos de embedding suportam indicar o tipo de entrada no pedido e, nesses casos, é devolvido um erro 422. Por padrão, são devolvidos embeddings do tipo Text.

Importante

Os itens marcados (pré-visualização) neste artigo encontram-se atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e não a recomendamos para cargas de trabalho em produção. Certas funcionalidades podem não ser suportadas ou podem ter capacidades limitadas. Para mais informações, consulte Termos de Utilização Suplementares para Microsoft Azure Pré-visualizações.

Este artigo explica como usar a API de embeddings com modelos implementados nos Microsoft Foundry Models.

Pré-requisitos

Para usar modelos de embedding na sua aplicação, precisa de:

  • Instale o pacote de inferência de IA Azure com o seguinte comando:

    dotnet add package Azure.AI.Inference --prerelease
    
  • Se estiver a usar o Entra ID, também precisa do seguinte pacote:

    dotnet add package Azure.Identity
    

Utilização de embeddings

Primeiro, crie o cliente para consumir o modelo. O código seguinte utiliza uma URL de endpoint e uma chave que são armazenadas nas variáveis de ambiente.

EmbeddingsClient client = new EmbeddingsClient(
    new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
    new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);

Se configurou o recurso com suporte Microsoft Entra ID, pode usar o seguinte excerto de código para criar um cliente. Note que aqui includeInteractiveCredentials está definido apenas true para fins de demonstração, para que a autenticação possa ser feita usando o navegador web. Em cargas de trabalho em produção, deves remover esse parâmetro.

TokenCredential credential = new DefaultAzureCredential(includeInteractiveCredentials: true);
AzureAIInferenceClientOptions clientOptions = new AzureAIInferenceClientOptions();
BearerTokenAuthenticationPolicy tokenPolicy = new BearerTokenAuthenticationPolicy(credential, new string[] { "https://cognitiveservices.azure.com/.default" });

clientOptions.AddPolicy(tokenPolicy, HttpPipelinePosition.PerRetry);

client = new EmbeddingsClient(
    new Uri("https://<resource>.services.ai.azure.com/models"),
    credential,
    clientOptions,
);

Criar embeddings

Crie um pedido de embedding para ver a saída do modelo.

EmbeddingsOptions requestOptions = new EmbeddingsOptions()
{
    Input = {
        "The ultimate answer to the question of life"
    },
    Model = "text-embedding-3-small"
};

Response<EmbeddingsResult> response = client.Embed(requestOptions);

Dica

Ao criar um pedido, tenha em conta o limite de entrada do token para o modelo. Se precisares de incorporar porções maiores de texto, precisarias de uma estratégia de fragmentação.

A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:

Console.WriteLine($"Embedding: {response.Value.Data}");
Console.WriteLine($"Model: {response.Value.Model}");
Console.WriteLine("Usage:");
Console.WriteLine($"\tPrompt tokens: {response.Value.Usage.PromptTokens}");
Console.WriteLine($"\tTotal tokens: {response.Value.Usage.TotalTokens}");

Pode ser útil calcular embeddings em lotes de entrada. O parâmetro inputs pode ser uma lista de cadeias, onde cada cadeia é uma entrada diferente. Por sua vez, a resposta é uma lista de embeddings, em que cada embedding corresponde à entrada na mesma posição.

EmbeddingsOptions requestOptions = new EmbeddingsOptions()
{
    Input = {
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter"
    },
    Model = "text-embedding-3-small"
};

Response<EmbeddingsResult> response = client.Embed(requestOptions);

A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:

Dica

Ao criar lotes de pedidos, tenha em conta o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de 1024 lotes.

Especificar dimensões de embeddings

Pode especificar o número de dimensões para as incorporações. O seguinte exemplo de código mostra como criar embeddings com dimensões 1024. Note que nem todos os modelos de embedding suportam indicar o número de dimensões no pedido e, nesses casos, é devolto um erro 422.

Criar diferentes tipos de incorporações (embeddings)

Alguns modelos podem gerar múltiplos embeddings para a mesma entrada, dependendo de como planeias usá-los. Esta funcionalidade permite-lhe recuperar embeddings mais precisos para padrões RAG.

O exemplo seguinte mostra como criar embeddings que são usados para criar um embedding para um documento que será armazenado numa base de dados vetorial:

var input = new List<string> { 
    "The answer to the ultimate question of life, the universe, and everything is 42"
};
var requestOptions = new EmbeddingsOptions()
{
    Input = input,
    InputType = EmbeddingInputType.DOCUMENT, 
    Model = "text-embedding-3-small"
};

Response<EmbeddingsResult> response = client.Embed(requestOptions);

Quando trabalha numa consulta para recuperar tal documento, pode usar o seguinte excerto de código para criar os embeddings da consulta e maximizar o desempenho da recuperação.

var input = new List<string> { 
    "What's the ultimate meaning of life?"
};
var requestOptions = new EmbeddingsOptions()
{
    Input = input,
    InputType = EmbeddingInputType.QUERY,
    Model = "text-embedding-3-small"
};

Response<EmbeddingsResult> response = client.Embed(requestOptions);

Note que nem todos os modelos de embedding suportam indicar o tipo de entrada no pedido e, nesses casos, é devolvido um erro 422. Por padrão, são devolvidos embeddings do tipo Text.

Importante

Os itens marcados (pré-visualização) neste artigo encontram-se atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e não a recomendamos para cargas de trabalho em produção. Certas funcionalidades podem não ser suportadas ou podem ter capacidades limitadas. Para mais informações, consulte Termos de Utilização Suplementares para Microsoft Azure Pré-visualizações.

Este artigo explica como usar a API de embeddings com modelos implementados nos Microsoft Foundry Models.

Pré-requisitos

Para usar modelos de embedding na sua aplicação, precisa de:

Utilização de embeddings

Para usar os embeddings de texto, utilize a rota /embeddings anexada à URL base juntamente com a sua credencial indicada em api-key. Authorization cabeçalho também é suportado no formato Bearer <key>.

POST https://<resource>.services.ai.azure.com/models/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
api-key: <key>

Se configurou o recurso com suporte a Microsoft Entra ID, passe o seu token no cabeçalho Authorization com o formato Bearer <token>. Use o âmbito https://ai.azure.com/.default.

POST https://<resource>.services.ai.azure.com/models/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
Authorization: Bearer <token>

Usar o Microsoft Entra ID pode exigir uma configuração adicional no seu recurso para conceder acesso. Aprenda a configurar autenticação sem chave com Microsoft Entra ID.

Criar embeddings

Crie um pedido de embedding para ver a saída do modelo.

{
    "model": "text-embedding-3-small",
    "input": [
        "The ultimate answer to the question of life"
    ]
}

Dica

Ao criar um pedido, tenha em conta o limite de entrada do token para o modelo. Se precisares de incorporar porções maiores de texto, precisarias de uma estratégia de fragmentação.

A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:

{
    "id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
    "object": "list",
    "data": [
        {
            "index": 0,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        }
    ],
    "model": "text-embedding-3-small",
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 0,
        "total_tokens": 9
    }
}

Pode ser útil calcular embeddings em lotes de entrada. O parâmetro inputs pode ser uma lista de cadeias, onde cada cadeia é uma entrada diferente. Por sua vez, a resposta é uma lista de embeddings, em que cada embedding corresponde à entrada na mesma posição.

{
    "model": "text-embedding-3-small",
    "input": [
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter"
    ]
}

A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:

{
    "id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
    "object": "list",
    "data": [
        {
            "index": 0,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        },
        {
            "index": 1,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        }
    ],
    "model": "text-embedding-3-small",
    "usage": {
        "prompt_tokens": 19,
        "completion_tokens": 0,
        "total_tokens": 19
    }
}

Dica

Ao criar lotes de pedidos, tenha em conta o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de 1024 lotes.

Especificar dimensões de embeddings

Pode especificar o número de dimensões para as incorporações. O seguinte exemplo de código mostra como criar embeddings com dimensões 1024. Note que nem todos os modelos de embedding suportam indicar o número de dimensões no pedido e, nesses casos, é devolto um erro 422.

{
    "model": "text-embedding-3-small",
    "input": [
        "The ultimate answer to the question of life"
    ],
    "dimensions": 1024
}

Criar diferentes tipos de incorporações (embeddings)

Alguns modelos podem gerar múltiplos embeddings para a mesma entrada, dependendo de como planeias usá-los. Esta funcionalidade permite-lhe recuperar embeddings mais precisos para padrões RAG.

O exemplo seguinte mostra como criar embeddings que são usados para criar um embedding para um documento que será armazenado numa base de dados vetorial. Como text-embedding-3-small não suporta esta capacidade, estamos a usar um modelo de embedding do Cohere no seguinte exemplo:

{
    "model": "cohere-embed-v3-english",
    "input": [
        "The answer to the ultimate question of life, the universe, and everything is 42"
    ],
    "input_type": "document"
}

Quando trabalha numa consulta para recuperar tal documento, pode usar o seguinte excerto de código para criar os embeddings da consulta e maximizar o desempenho da recuperação. Como text-embedding-3-small não suporta esta capacidade, estamos a usar um modelo de embedding do Cohere no seguinte exemplo:

{
    "model": "cohere-embed-v3-english",
    "input": [
        "What's the ultimate meaning of life?"
    ],
    "input_type": "query"
}

Note que nem todos os modelos de embedding suportam indicar o tipo de entrada no pedido e, nesses casos, é devolvido um erro 422. Por padrão, são devolvidos embeddings do tipo Text.