Partilhar via


Como gerar incorporações com inferência de modelo de IA do Azure

Importante

Os itens marcados (visualização) neste artigo estão atualmente em visualização pública. Essa visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Este artigo explica como usar a API de incorporação com modelos implantados na inferência de modelo de IA do Azure nos serviços de IA do Azure.

Pré-requisitos

Para usar modelos de incorporação em seu aplicativo, você precisa:

  • Uma subscrição do Azure. Se você estiver usando Modelos do GitHub, poderá atualizar sua experiência e criar uma assinatura do Azure no processo. Leia Atualização de modelos do GitHub para inferência de modelo de IA do Azure, se esse for o seu caso.

  • Um recurso de serviços de IA do Azure. Para obter mais informações, consulte Criar um recurso dos Serviços de IA do Azure.

  • A URL e a chave do ponto de extremidade.

    Captura de ecrã a mostrar como obter o URL e a chave associados ao recurso.

  • Uma implantação de modelo de incorporação. Se você não tiver um, leia Adicionar e configurar modelos aos serviços de IA do Azure para adicionar um modelo de incorporação ao seu recurso.

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

    pip install -U azure-ai-inference
    

    Gorjeta

    Leia mais sobre o pacote de inferência e a referência da IA do Azure.

Usar incorporações

Primeiro, crie o cliente para consumir o modelo. O código a seguir usa uma URL de ponto de extremidade e uma chave que são armazenadas em variáveis de ambiente.

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

model = EmbeddingsClient(
    endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
    credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
    model="text-embedding-3-small"
)

Se você configurou o recurso para com suporte a ID do Microsoft Entra, você pode usar o trecho de código a seguir para criar um cliente.

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

model = EmbeddingsClient(
    endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
    credential=DefaultAzureCredential(),
    model="text-embedding-3-small"
)

Criar incorporações

Crie uma solicitação de incorporação para ver a saída do modelo.

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

Gorjeta

Ao criar uma solicitação, leve em consideração o limite de entrada do token para o modelo. Se você precisar incorporar partes maiores de texto, precisará de uma estratégia de fragmentação.

A resposta é a seguinte, onde você pode ver as estatísticas de uso do modelo:

import numpy as np

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

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

Pode ser útil calcular incorporações em lotes de entrada. O parâmetro inputs pode ser uma lista de strings, onde cada string é uma entrada diferente. Por sua vez, a resposta é uma lista de incorporações, onde cada incorporação 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 você pode ver as estatísticas de uso do modelo:

import numpy as np

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

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

Gorjeta

Ao criar lotes de solicitação, leve em consideração o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de lote 1024.

Especificar dimensões de incorporação

Você pode especificar o número de dimensões para as incorporações. O código de exemplo a seguir mostra como criar incorporações com dimensões 1024. Observe que nem todos os modelos de incorporação suportam a indicação do número de dimensões na solicitação e, nesses casos, um erro 422 é retornado.

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

Crie diferentes tipos de incorporações

Alguns modelos podem gerar várias incorporações para a mesma entrada, dependendo de como você planeja usá-las. Esse recurso permite que você recupere incorporações mais precisas para padrões RAG.

O exemplo a seguir mostra como criar incorporações que são usadas para criar uma incorporação para um documento que será armazenado em um banco 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,
)

Ao trabalhar em uma consulta para recuperar esse documento, você pode usar o trecho de código a seguir para criar as incorporações para a consulta e maximizar o desempenho de recuperação.

from azure.ai.inference.models import EmbeddingInputType

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

Observe que nem todos os modelos de incorporação suportam a indicação do tipo de entrada na solicitação e, nesses casos, um erro 422 é retornado. Por padrão, as incorporações do tipo Text são retornadas.

Importante

Os itens marcados (visualização) neste artigo estão atualmente em visualização pública. Essa visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Este artigo explica como usar a API de incorporação com modelos implantados na inferência de modelo de IA do Azure nos serviços de IA do Azure.

Pré-requisitos

Para usar modelos de incorporação em seu aplicativo, você precisa:

  • Uma subscrição do Azure. Se você estiver usando Modelos do GitHub, poderá atualizar sua experiência e criar uma assinatura do Azure no processo. Leia Atualização de modelos do GitHub para inferência de modelo de IA do Azure, se esse for o seu caso.

  • Um recurso de serviços de IA do Azure. Para obter mais informações, consulte Criar um recurso dos Serviços de IA do Azure.

  • A URL e a chave do ponto de extremidade.

    Captura de ecrã a mostrar como obter o URL e a chave associados ao recurso.

  • Uma implantação de modelo de incorporação. Se você não tiver um, leia Adicionar e configurar modelos aos serviços de IA do Azure para adicionar um modelo de incorporação ao seu recurso.

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

    npm install @azure-rest/ai-inference
    

    Gorjeta

    Leia mais sobre o pacote de inferência e a referência da IA do Azure.

Usar incorporações

Primeiro, crie o cliente para consumir o modelo. O código a seguir usa uma URL de ponto de extremidade e uma chave que são armazenadas em variáveis de ambiente.

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

const client = new ModelClient(
    process.env.AZURE_INFERENCE_ENDPOINT, 
    new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL),
    "text-embedding-3-small"
);

Se você configurou o recurso para com suporte a ID do Microsoft Entra, você pode usar o trecho de código a seguir para criar um cliente.

import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { DefaultAzureCredential }  from "@azure/identity";

const client = new ModelClient(
    process.env.AZURE_INFERENCE_ENDPOINT, 
    new DefaultAzureCredential(),
    "text-embedding-3-small"
);

Criar incorporações

Crie uma solicitação de incorporação para ver a saída do modelo.

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

Gorjeta

Ao criar uma solicitação, leve em consideração o limite de entrada do token para o modelo. Se você precisar incorporar partes maiores de texto, precisará de uma estratégia de fragmentação.

A resposta é a seguinte, onde você pode ver as estatísticas de uso 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 incorporações em lotes de entrada. O parâmetro inputs pode ser uma lista de strings, onde cada string é uma entrada diferente. Por sua vez, a resposta é uma lista de incorporações, onde cada incorporação corresponde à entrada na mesma posição.

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

A resposta é a seguinte, onde você pode ver as estatísticas de uso do modelo:

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

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

Gorjeta

Ao criar lotes de solicitação, leve em consideração o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de lote 1024.

Especificar dimensões de incorporação

Você pode especificar o número de dimensões para as incorporações. O código de exemplo a seguir mostra como criar incorporações com dimensões 1024. Observe que nem todos os modelos de incorporação suportam a indicação do número de dimensões na solicitação e, nesses casos, um erro 422 é retornado.

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

Crie diferentes tipos de incorporações

Alguns modelos podem gerar várias incorporações para a mesma entrada, dependendo de como você planeja usá-las. Esse recurso permite que você recupere incorporações mais precisas para padrões RAG.

O exemplo a seguir mostra como criar incorporações que são usadas para criar uma incorporação para um documento que será armazenado em um banco de dados vetorial:

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

Ao trabalhar em uma consulta para recuperar esse documento, você pode usar o trecho de código a seguir para criar as incorporações para a consulta e maximizar o desempenho de recuperação.

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

Observe que nem todos os modelos de incorporação suportam a indicação do tipo de entrada na solicitação e, nesses casos, um erro 422 é retornado. Por padrão, as incorporações do tipo Text são retornadas.

Importante

Os itens marcados (visualização) neste artigo estão atualmente em visualização pública. Essa visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Este artigo explica como usar a API de incorporação com modelos implantados na inferência de modelo de IA do Azure nos serviços de IA do Azure.

Pré-requisitos

Para usar modelos de incorporação em seu aplicativo, você precisa:

  • Uma subscrição do Azure. Se você estiver usando Modelos do GitHub, poderá atualizar sua experiência e criar uma assinatura do Azure no processo. Leia Atualização de modelos do GitHub para inferência de modelo de IA do Azure, se esse for o seu caso.

  • Um recurso de serviços de IA do Azure. Para obter mais informações, consulte Criar um recurso dos Serviços de IA do Azure.

  • A URL e a chave do ponto de extremidade.

    Captura de ecrã a mostrar como obter o URL e a chave associados ao recurso.

  • Uma implantação de modelo de incorporação. Se você não tiver um, leia Adicionar e configurar modelos aos serviços de IA do Azure para adicionar um modelo de incorporação ao seu recurso.

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

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-ai-inference</artifactId>
        <version>1.0.0-beta.1</version>
    </dependency>
    

    Gorjeta

    Leia mais sobre o pacote de inferência e a referência da IA do Azure.

  • Se você estiver usando o Entra ID, você também precisa do seguinte pacote:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
        <version>1.13.3</version>
    </dependency>
    
  • Importe o seguinte namespace:

    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;
    

Usar incorporações

Primeiro, crie o cliente para consumir o modelo. O código a seguir usa uma URL de ponto de extremidade e uma chave que são armazenadas em 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 você configurou o recurso para com suporte a ID do Microsoft Entra, você pode usar o trecho de código a seguir para criar um cliente.

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

Criar incorporações

Crie uma solicitação de incorporação 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);

Gorjeta

Ao criar uma solicitação, leve em consideração o limite de entrada do token para o modelo. Se você precisar incorporar partes maiores de texto, precisará de uma estratégia de fragmentação.

A resposta é a seguinte, onde você pode ver as estatísticas de uso 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 incorporações em lotes de entrada. O parâmetro inputs pode ser uma lista de strings, onde cada string é uma entrada diferente. Por sua vez, a resposta é uma lista de incorporações, onde cada incorporação 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 você pode ver as estatísticas de uso do modelo:

Gorjeta

Ao criar lotes de solicitação, leve em consideração o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de lote 1024.

Especificar dimensões de incorporação

Você pode especificar o número de dimensões para as incorporações. O código de exemplo a seguir mostra como criar incorporações com dimensões 1024. Observe que nem todos os modelos de incorporação suportam a indicação do número de dimensões na solicitação e, nesses casos, um erro 422 é retornado.

Crie diferentes tipos de incorporações

Alguns modelos podem gerar várias incorporações para a mesma entrada, dependendo de como você planeja usá-las. Esse recurso permite que você recupere incorporações mais precisas para padrões RAG.

O exemplo a seguir mostra como criar incorporações que são usadas para criar uma incorporação para um documento que será armazenado em um banco 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);

Ao trabalhar em uma consulta para recuperar esse documento, você pode usar o trecho de código a seguir para criar as incorporações para a consulta e maximizar o desempenho de recuperação.

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

response = client.embed(requestOptions);

Observe que nem todos os modelos de incorporação suportam a indicação do tipo de entrada na solicitação e, nesses casos, um erro 422 é retornado. Por padrão, as incorporações do tipo Text são retornadas.

Importante

Os itens marcados (visualização) neste artigo estão atualmente em visualização pública. Essa visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Este artigo explica como usar a API de incorporação com modelos implantados na inferência de modelo de IA do Azure nos serviços de IA do Azure.

Pré-requisitos

Para usar modelos de incorporação em seu aplicativo, você precisa:

  • Uma subscrição do Azure. Se você estiver usando Modelos do GitHub, poderá atualizar sua experiência e criar uma assinatura do Azure no processo. Leia Atualização de modelos do GitHub para inferência de modelo de IA do Azure, se esse for o seu caso.

  • Um recurso de serviços de IA do Azure. Para obter mais informações, consulte Criar um recurso dos Serviços de IA do Azure.

  • A URL e a chave do ponto de extremidade.

    Captura de ecrã a mostrar como obter o URL e a chave associados ao recurso.

  • Uma implantação de modelo de incorporação. Se você não tiver um, leia Adicionar e configurar modelos aos serviços de IA do Azure para adicionar um modelo de incorporação ao seu recurso.

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

    dotnet add package Azure.AI.Inference --prerelease
    

    Gorjeta

    Leia mais sobre o pacote de inferência e a referência da IA do Azure.

  • Se você estiver usando o Entra ID, você também precisa do seguinte pacote:

    dotnet add package Azure.Identity
    

Usar incorporações

Primeiro, crie o cliente para consumir o modelo. O código a seguir usa uma URL de ponto de extremidade e uma chave que são armazenadas em variáveis de ambiente.

EmbeddingsClient client = new EmbeddingsClient(
    new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
    new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL")),
    "text-embedding-3-small"
);

Se você configurou o recurso para com suporte a ID do Microsoft Entra, você pode usar o trecho de código a seguir para criar um cliente.

client = new EmbeddingsClient(
    new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
    new DefaultAzureCredential(includeInteractiveCredentials: true),
    "text-embedding-3-small"
);

Criar incorporações

Crie uma solicitação de incorporação para ver a saída do modelo.

EmbeddingsOptions requestOptions = new EmbeddingsOptions()
{
    Input = {
        "The ultimate answer to the question of life"
    },
};

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

Gorjeta

Ao criar uma solicitação, leve em consideração o limite de entrada do token para o modelo. Se você precisar incorporar partes maiores de texto, precisará de uma estratégia de fragmentação.

A resposta é a seguinte, onde você pode ver as estatísticas de uso 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 incorporações em lotes de entrada. O parâmetro inputs pode ser uma lista de strings, onde cada string é uma entrada diferente. Por sua vez, a resposta é uma lista de incorporações, onde cada incorporação 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"
    },
};

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

A resposta é a seguinte, onde você pode ver as estatísticas de uso do modelo:

Gorjeta

Ao criar lotes de solicitação, leve em consideração o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de lote 1024.

Especificar dimensões de incorporação

Você pode especificar o número de dimensões para as incorporações. O código de exemplo a seguir mostra como criar incorporações com dimensões 1024. Observe que nem todos os modelos de incorporação suportam a indicação do número de dimensões na solicitação e, nesses casos, um erro 422 é retornado.

Crie diferentes tipos de incorporações

Alguns modelos podem gerar várias incorporações para a mesma entrada, dependendo de como você planeja usá-las. Esse recurso permite que você recupere incorporações mais precisas para padrões RAG.

O exemplo a seguir mostra como criar incorporações que são usadas para criar uma incorporação para um documento que será armazenado em um banco 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, EmbeddingInputType.DOCUMENT);

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

Ao trabalhar em uma consulta para recuperar esse documento, você pode usar o trecho de código a seguir para criar as incorporações para a consulta e maximizar o desempenho de recuperação.

var input = new List<string> { 
    "What's the ultimate meaning of life?"
};
var requestOptions = new EmbeddingsOptions(input, EmbeddingInputType.QUERY);

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

Observe que nem todos os modelos de incorporação suportam a indicação do tipo de entrada na solicitação e, nesses casos, um erro 422 é retornado. Por padrão, as incorporações do tipo Text são retornadas.

Importante

Os itens marcados (visualização) neste artigo estão atualmente em visualização pública. Essa visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Este artigo explica como usar a API de incorporação com modelos implantados na inferência de modelo de IA do Azure nos serviços de IA do Azure.

Pré-requisitos

Para usar modelos de incorporação em seu aplicativo, você precisa:

  • Uma subscrição do Azure. Se você estiver usando Modelos do GitHub, poderá atualizar sua experiência e criar uma assinatura do Azure no processo. Leia Atualização de modelos do GitHub para inferência de modelo de IA do Azure, se esse for o seu caso.

  • Um recurso de serviços de IA do Azure. Para obter mais informações, consulte Criar um recurso dos Serviços de IA do Azure.

  • A URL e a chave do ponto de extremidade.

    Captura de ecrã a mostrar como obter o URL e a chave associados ao recurso.

Usar incorporações

Para usar as incorporações de texto, use a rota /embeddings anexada à URL base junto com sua credencial indicada em api-key. Authorization cabeçalho também é suportado com o 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 você configurou o recurso com suporte ao Microsoft Entra ID , passe o Authorization token no cabeçalho:

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

Criar incorporações

Crie uma solicitação de incorporação para ver a saída do modelo.

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

Gorjeta

Ao criar uma solicitação, leve em consideração o limite de entrada do token para o modelo. Se você precisar incorporar partes maiores de texto, precisará de uma estratégia de fragmentação.

A resposta é a seguinte, onde você pode ver as estatísticas de uso 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 incorporações em lotes de entrada. O parâmetro inputs pode ser uma lista de strings, onde cada string é uma entrada diferente. Por sua vez, a resposta é uma lista de incorporações, onde cada incorporação 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 você pode ver as estatísticas de uso 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
    }
}

Gorjeta

Ao criar lotes de solicitação, leve em consideração o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de lote 1024.

Especificar dimensões de incorporação

Você pode especificar o número de dimensões para as incorporações. O código de exemplo a seguir mostra como criar incorporações com dimensões 1024. Observe que nem todos os modelos de incorporação suportam a indicação do número de dimensões na solicitação e, nesses casos, um erro 422 é retornado.

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

Crie diferentes tipos de incorporações

Alguns modelos podem gerar várias incorporações para a mesma entrada, dependendo de como você planeja usá-las. Esse recurso permite que você recupere incorporações mais precisas para padrões RAG.

O exemplo a seguir mostra como criar incorporações que são usadas para criar uma incorporação para um documento que será armazenado em um banco de dados vetorial. Como text-embedding-3-small não suporta esse recurso, estamos usando um modelo de incorporação da Cohere no exemplo a seguir:

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

Ao trabalhar em uma consulta para recuperar esse documento, você pode usar o trecho de código a seguir para criar as incorporações para a consulta e maximizar o desempenho de recuperação. Como text-embedding-3-small não suporta esse recurso, estamos usando um modelo de incorporação da Cohere no exemplo a seguir:

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

Observe que nem todos os modelos de incorporação suportam a indicação do tipo de entrada na solicitação e, nesses casos, um erro 422 é retornado. Por padrão, as incorporações do tipo Text são retornadas.