Cómo generar incrustaciones con modelos de Microsoft Foundry (clásico)

Solo se aplica a:portal Foundry (clásico). Este artículo no está disponible para el nuevo portal de Foundry. Obtenga más información sobre el nuevo portal.

Nota

Los vínculos de este artículo pueden abrir contenido en la nueva documentación de Microsoft Foundry en lugar de la documentación de Foundry (clásico) que está viendo ahora.

Importante

Azure SDK beta de inferencia de IA está en desuso y se retirará el 26 de agosto de 2026. Cambie a la API openAI/v1 disponible con carácter general con un SDK estable de OpenAI. Siga la guía de migración para cambiar a OpenAI/v1 mediante el SDK para su lenguaje de programación preferido.

Importante

Los elementos marcados (versión preliminar) de este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se proporciona sin un contrato de nivel de servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no se admitan o que tengan funcionalidades restringidas. Para obtener más información, vea Supplemental Terms of Use for Microsoft Azure Previews.

En este artículo se explica cómo usar la API de inserción con modelos implementados en Microsoft Foundry Models.

Requisitos previos

Para usar modelos de inserción en la aplicación, necesita lo siguiente:

  • Instale el paquete de inferencia Azure AI para Python con el siguiente comando:

    pip install -U azure-ai-inference
    

Uso de incrustaciones

En primer lugar, crear el cliente para usar el modelo. El código siguiente usa una dirección URL de punto de conexión y una clave que se almacenan en variables de entorno.

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"
)

Si ha configurado el recurso con compatibilidad con Microsoft Entra ID, puede usar el siguiente fragmento de código para crear un 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"
)

Creación de incrustaciones

Cree una solicitud de inserción para ver la salida del modelo.

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

Propina

Al crear una solicitud, tenga en cuenta el límite de entrada del token para el modelo. Si necesita insertar partes más grandes del texto, necesitará una estrategia de fragmentación.

La respuesta es la siguiente, donde puede ver las estadísticas de uso del 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)

Puede ser útil calcular incrustaciones en lotes de entrada. El parámetro inputs puede ser una lista de cadenas, donde cada cadena es una entrada diferente. A su vez, la respuesta es una lista de incrustaciones, donde cada inserción corresponde a la entrada en la misma posición.

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

La respuesta es la siguiente, donde puede ver las estadísticas de uso del 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)

Propina

Al crear lotes de solicitud, tenga en cuenta el límite de lotes para cada uno de los modelos. La mayoría de los modelos tienen un límite de lotes de 1024.

Especificar dimensiones de inserción

Puede especificar el número de dimensiones para las incrustaciones. En el código de ejemplo siguiente se muestra cómo crear incrustaciones con 1024 dimensiones. Observe que no todos los modelos de inserción admiten que indique el número de dimensiones de la solicitud y, en esos casos, se devuelve un error 422.

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

Crear diferentes tipos de incrustaciones

Algunos modelos pueden generar varias incrustaciones para la misma entrada en función de cómo planee usarlas. Esta funcionalidad le permite recuperar incrustaciones más precisas para los patrones RAG.

En el ejemplo siguiente se muestra cómo crear incrustaciones que se usan para crear una inserción para un documento que se almacenará en una base de datos vectorial:

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,
)

Al trabajar en una consulta para recuperar este documento, puede usar el siguiente fragmento de código para crear las incrustaciones de la consulta y maximizar el rendimiento de recuperación.

from azure.ai.inference.models import EmbeddingInputType

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

Observe que no todos los modelos de inserción admiten que indique el tipo de entrada en la solicitud y, en esos casos, se devuelve un error 422. De forma predeterminada, se devuelven incrustaciones de tipo Text .

Importante

Los elementos marcados (versión preliminar) de este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se proporciona sin un contrato de nivel de servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no se admitan o que tengan funcionalidades restringidas. Para obtener más información, vea Supplemental Terms of Use for Microsoft Azure Previews.

En este artículo se explica cómo usar la API de inserción con modelos implementados en Microsoft Foundry Models.

Requisitos previos

Para usar modelos de inserción en la aplicación, necesita lo siguiente:

  • Instale la biblioteca de inferencia Azure para JavaScript con el siguiente comando:

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

    Si usa Node.js, puede configurar las dependencias en 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"
      }
    }
    
  • Importe lo siguiente:

    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";
    

Uso de incrustaciones

En primer lugar, cree la aplicación cliente para consumir el modelo. El código siguiente usa una dirección URL de punto de conexión y una clave que se almacenan en variables de entorno.

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

Si ha configurado el recurso con compatibilidad con Microsoft Entra ID, puede usar el siguiente fragmento de código para crear un cliente.

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

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

Creación de incrustaciones

Cree una solicitud de inserción para ver la salida del modelo.

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

Propina

Al crear una solicitud, tenga en cuenta el límite de entrada del token para el modelo. Si necesita insertar partes más grandes del texto, necesitará una estrategia de fragmentación.

La respuesta es la siguiente, donde puede ver las estadísticas de uso del modelo:

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

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

Puede ser útil calcular incrustaciones en lotes de entrada. El parámetro inputs puede ser una lista de cadenas, donde cada cadena es una entrada diferente. A su vez, la respuesta es una lista de incrustaciones, donde cada inserción corresponde a la entrada en la misma posición.

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",
        ],
    }
});

La respuesta es la siguiente, donde puede ver las estadísticas de uso del modelo:

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

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

Propina

Al crear lotes de solicitud, tenga en cuenta el límite de lotes para cada uno de los modelos. La mayoría de los modelos tienen un límite de lotes de 1024.

Especificar dimensiones de inserción

Puede especificar el número de dimensiones para las incrustaciones. En el código de ejemplo siguiente se muestra cómo crear incrustaciones con 1024 dimensiones. Observe que no todos los modelos de inserción admiten que indique el número de dimensiones de la solicitud y, en esos casos, se devuelve un error 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,
    }
});

Crear diferentes tipos de incrustaciones

Algunos modelos pueden generar varias incrustaciones para la misma entrada en función de cómo planee usarlas. Esta funcionalidad le permite recuperar incrustaciones más precisas para los patrones RAG.

En el ejemplo siguiente se muestra cómo crear incrustaciones que se usan para crear una inserción para un documento que se almacenará en una base de datos vectorial:

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",
    }
});

Al trabajar en una consulta para recuperar este documento, puede usar el siguiente fragmento de código para crear las incrustaciones de la consulta y maximizar el rendimiento de recuperación.

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

Observe que no todos los modelos de inserción admiten que indique el tipo de entrada en la solicitud y, en esos casos, se devuelve un error 422. De forma predeterminada, se devuelven incrustaciones de tipo Text .

Importante

Los elementos marcados (versión preliminar) de este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se proporciona sin un contrato de nivel de servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no se admitan o que tengan funcionalidades restringidas. Para obtener más información, vea Supplemental Terms of Use for Microsoft Azure Previews.

En este artículo se explica cómo usar la API de inserción con modelos implementados en Microsoft Foundry Models.

Requisitos previos

Para usar modelos de inserción en la aplicación, necesita lo siguiente:

  • Agregue el paquete Azure de inferencia de IA al proyecto:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-ai-inference</artifactId>
        <version>1.0.0-beta.4</version>
    </dependency>
    
  • Si usa Entra ID, también necesita el siguiente paquete:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
        <version>1.15.3</version>
    </dependency>
    
  • Importe el siguiente espacio de nombres:

    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;
    
  • Importe el siguiente espacio de nombres:

    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;
    
  • Implementación de modelos de incrustaciones. Si no tiene uno, lea Agregar y configurar modelos de Foundry para agregar un modelo de incrustaciones al recurso.

Uso de incrustaciones

En primer lugar, cree el cliente para consumir el modelo. El código siguiente usa una dirección URL de punto de conexión y una clave que se almacenan en variables de entorno.

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

Si ha configurado el recurso con soporte de Microsoft Entra ID, puede usar el siguiente fragmento de código para crear un cliente.

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

Creación de incrustaciones

Cree una solicitud de inserción para ver la salida del modelo.

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

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

Propina

Al crear una solicitud, tenga en cuenta el límite de entrada del token para el modelo. Si necesita insertar partes más grandes del texto, necesitará una estrategia de fragmentación.

La respuesta es la siguiente, donde puede ver las estadísticas de uso del 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());

Puede ser útil calcular incrustaciones en lotes de entrada. El parámetro inputs puede ser una lista de cadenas, donde cada cadena es una entrada diferente. A su vez, la respuesta es una lista de incrustaciones, donde cada inserción corresponde a la entrada en la misma posición.

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);

La respuesta es la siguiente, donde puede ver las estadísticas de uso del modelo:

Propina

Al crear lotes de solicitud, tenga en cuenta el límite de lotes para cada uno de los modelos. La mayoría de los modelos tienen un límite de lotes de 1024.

Especificar dimensiones de inserción

Puede especificar el número de dimensiones para las incrustaciones. En el código de ejemplo siguiente se muestra cómo crear incrustaciones con 1024 dimensiones. Observe que no todos los modelos de inserción admiten que indique el número de dimensiones de la solicitud y, en esos casos, se devuelve un error 422.

Crear diferentes tipos de incrustaciones

Algunos modelos pueden generar varias incrustaciones para la misma entrada en función de cómo planee usarlas. Esta funcionalidad le permite recuperar incrustaciones más precisas para los patrones RAG.

En el ejemplo siguiente se muestra cómo crear incrustaciones que se usan para crear una inserción para un documento que se almacenará en una base de datos vectorial:

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);

Al trabajar en una consulta para recuperar este documento, puede usar el siguiente fragmento de código para crear las incrustaciones de la consulta y maximizar el rendimiento de recuperación.

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

response = client.embed(requestOptions);

Observe que no todos los modelos de inserción admiten que indique el tipo de entrada en la solicitud y, en esos casos, se devuelve un error 422. De forma predeterminada, se devuelven incrustaciones de tipo Text .

Importante

Los elementos marcados (versión preliminar) de este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se proporciona sin un contrato de nivel de servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no se admitan o que tengan funcionalidades restringidas. Para obtener más información, vea Supplemental Terms of Use for Microsoft Azure Previews.

En este artículo se explica cómo usar la API de inserción con modelos implementados en Microsoft Foundry Models.

Requisitos previos

Para usar modelos de inserción en la aplicación, necesita lo siguiente:

  • Instale el paquete de inferencia Azure AI con el comando siguiente:

    dotnet add package Azure.AI.Inference --prerelease
    
  • Si usa Entra ID, también necesita el siguiente paquete:

    dotnet add package Azure.Identity
    

Uso de incrustaciones

En primer lugar, cree la aplicación cliente para consumir el modelo. El código siguiente usa una dirección URL de punto de conexión y una clave que se almacenan en variables de entorno.

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

Si configuró el recurso con compatibilidad de Microsoft Entra ID, puede usar el siguiente fragmento de código para crear un cliente. Tenga en cuenta que aquí includeInteractiveCredentials está establecido true en solo para fines de demostración, por lo que la autenticación puede producirse mediante el explorador web. En las cargas de trabajo de producción, debería eliminar tal 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,
);

Creación de incrustaciones

Cree una solicitud de inserción para ver la salida del 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);

Propina

Al crear una solicitud, tenga en cuenta el límite de entrada del token para el modelo. Si necesita insertar partes más grandes del texto, necesitará una estrategia de fragmentación.

La respuesta es la siguiente, donde puede ver las estadísticas de uso del 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}");

Puede ser útil calcular incrustaciones en lotes de entrada. El parámetro inputs puede ser una lista de cadenas, donde cada cadena es una entrada diferente. A su vez, la respuesta es una lista de incrustaciones, donde cada inserción corresponde a la entrada en la misma posición.

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);

La respuesta es la siguiente, donde puede ver las estadísticas de uso del modelo:

Propina

Al crear lotes de solicitud, tenga en cuenta el límite de lotes para cada uno de los modelos. La mayoría de los modelos tienen un límite de lotes de 1024.

Especificar dimensiones de inserción

Puede especificar el número de dimensiones para las incrustaciones. En el código de ejemplo siguiente se muestra cómo crear incrustaciones con 1024 dimensiones. Observe que no todos los modelos de inserción admiten que indique el número de dimensiones de la solicitud y, en esos casos, se devuelve un error 422.

Crear diferentes tipos de incrustaciones

Algunos modelos pueden generar varias incrustaciones para la misma entrada en función de cómo planee usarlas. Esta funcionalidad le permite recuperar incrustaciones más precisas para los patrones RAG.

En el ejemplo siguiente se muestra cómo crear incrustaciones que se usan para crear una inserción para un documento que se almacenará en una base de datos vectorial:

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);

Al trabajar en una consulta para recuperar este documento, puede usar el siguiente fragmento de código para crear las incrustaciones de la consulta y maximizar el rendimiento de recuperación.

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);

Observe que no todos los modelos de inserción admiten que indique el tipo de entrada en la solicitud y, en esos casos, se devuelve un error 422. De forma predeterminada, se devuelven incrustaciones de tipo Text .

Importante

Los elementos marcados (versión preliminar) de este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se proporciona sin un contrato de nivel de servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no se admitan o que tengan funcionalidades restringidas. Para obtener más información, vea Supplemental Terms of Use for Microsoft Azure Previews.

En este artículo se explica cómo usar la API de inserción con modelos implementados en Microsoft Foundry Models.

Requisitos previos

Para usar modelos de inserción en la aplicación, necesita lo siguiente:

Uso de incrustaciones

Para usar las incrustaciones de texto, use la ruta anexada a la dirección /embeddings URL base junto con la credencial indicada en api-key. El encabezado Authorization también se admite con el 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>

Si ha configurado el recurso con compatibilidad con Microsoft Entra ID, pase su token en el encabezado Authorization con el formato Bearer <token>. Use el á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>

El uso de Microsoft Entra ID puede requerir una configuración adicional en el recurso para conceder acceso. Aprenda a configurar la autenticación sin clave con Microsoft Entra ID.

Creación de incrustaciones

Cree una solicitud de inserción para ver la salida del modelo.

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

Propina

Al crear una solicitud, tenga en cuenta el límite de entrada del token para el modelo. Si necesita insertar partes más grandes del texto, necesitará una estrategia de fragmentación.

La respuesta es la siguiente, donde puede ver las estadísticas de uso del 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
    }
}

Puede ser útil calcular incrustaciones en lotes de entrada. El parámetro inputs puede ser una lista de cadenas, donde cada cadena es una entrada diferente. A su vez, la respuesta es una lista de incrustaciones, donde cada inserción corresponde a la entrada en la misma posición.

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

La respuesta es la siguiente, donde puede ver las estadísticas de uso del 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
    }
}

Propina

Al crear lotes de solicitud, tenga en cuenta el límite de lotes para cada uno de los modelos. La mayoría de los modelos tienen un límite de lotes de 1024.

Especificar dimensiones de inserción

Puede especificar el número de dimensiones para las incrustaciones. En el código de ejemplo siguiente se muestra cómo crear incrustaciones con 1024 dimensiones. Observe que no todos los modelos de inserción admiten que indique el número de dimensiones de la solicitud y, en esos casos, se devuelve un error 422.

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

Crear diferentes tipos de incrustaciones

Algunos modelos pueden generar varias incrustaciones para la misma entrada en función de cómo planee usarlas. Esta funcionalidad le permite recuperar incrustaciones más precisas para los patrones RAG.

En el ejemplo siguiente se muestra cómo crear incrustaciones que se usan para crear una inserción para un documento que se almacenará en una base de datos vectorial. Dado text-embedding-3-small que no admite esta funcionalidad, se usa un modelo de inserción de Cohere en el ejemplo siguiente:

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

Al trabajar en una consulta para recuperar este documento, puede usar el siguiente fragmento de código para crear las incrustaciones de la consulta y maximizar el rendimiento de recuperación. Dado text-embedding-3-small que no admite esta funcionalidad, se usa un modelo de inserción de Cohere en el ejemplo siguiente:

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

Observe que no todos los modelos de inserción admiten que indique el tipo de entrada en la solicitud y, en esos casos, se devuelve un error 422. De forma predeterminada, se devuelven incrustaciones de tipo Text .