Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
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 incrustaciones de imágenes con modelos de Microsoft Foundry.
Requisitos previos
Para usar modelos de inserción en la aplicación, necesita lo siguiente:
Una suscripción Azure. Si usa GitHub Models, puede actualizar su experiencia y crear una suscripción de Azure en el proceso. Lea Actualización de Modelos de GitHub a Modelos de Fundición de Microsoft si es su caso.
Un proyecto de fundición. Este tipo de proyecto se administra en un recurso Foundry. Si no tiene un proyecto de Foundry, consulte Crear un proyecto para Foundry (proyectos de Foundry).
Dirección URL del punto de conexión.
Clave del punto de conexión (si decide usar la clave de API para la autenticación).
Instale el paquete de inferencia Azure AI para Python con el siguiente comando:
pip install -U azure-ai-inference
Una implementación de modelos de incrustaciones de imágenes. Si no tiene uno, lea Agregar y configurar modelos de Foundry para agregar un modelo de inserción al recurso.
- En este ejemplo se usa
Cohere-embed-v3-englishde Cohere.
- En este ejemplo se usa
Usar incrustaciones de imágenes
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 ImageEmbeddingsClient
from azure.core.credentials import AzureKeyCredential
client = ImageEmbeddingsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
model="Cohere-embed-v3-english"
)
Si configuró el recurso con compatibilidad de Microsoft Entra ID, puede usar el siguiente fragmento de código para crear un cliente.
import os
from azure.ai.inference import ImageEmbeddingsClient
from azure.identity import DefaultAzureCredential
client = ImageEmbeddingsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=DefaultAzureCredential(),
model="Cohere-embed-v3-english"
)
Creación de incrustaciones
Para crear incrustaciones de imágenes, debe pasar los datos de imagen como parte de la solicitud. Los datos de imagen deben estar en formato PNG y codificados como base64.
from azure.ai.inference.models import ImageEmbeddingInput
image_input= ImageEmbeddingInput.load(image_file="sample1.png", image_format="png")
response = client.embed(
input=[ image_input ],
)
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)
Importante
Es posible que no se admitan incrustaciones informáticas en lotes para todos los modelos. Por ejemplo, para el Cohere-embed-v3-english modelo, debe enviar una imagen a la vez.
Inserción de imágenes y pares de texto
Algunos modelos pueden generar incrustaciones a partir de imágenes y pares de texto. En este caso, puede usar los campos image y text de la solicitud para pasar la imagen y el texto al modelo. En el ejemplo siguiente se muestra cómo crear incrustaciones para imágenes y pares de texto:
text_image_input= ImageEmbeddingInput.load(image_file="sample1.png", image_format="png")
text_image_input.text = "A cute baby sea otter"
response = client.embed(
input=[ text_image_input ],
)
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 = client.embed(
input=[ image_input ],
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 = client.embed(
input=[ image_input ],
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.
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 incrustaciones de imágenes con modelos de Microsoft Foundry.
Requisitos previos
Para usar modelos de inserción en la aplicación, necesita lo siguiente:
Una suscripción Azure. Si usa GitHub Models, puede actualizar su experiencia y crear una suscripción de Azure en el proceso. Lea Actualización de Modelos de GitHub a Modelos de Fundición de Microsoft si es su caso.
Un proyecto de fundición. Este tipo de proyecto se administra en un recurso Foundry. Si no tiene un proyecto de Foundry, consulte Crear un proyecto para Foundry (proyectos de Foundry).
Dirección URL del punto de conexión.
Clave del punto de conexión (si decide usar la clave de API para la autenticación).
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/identitySi 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";
Una implementación de modelos de incrustaciones de imágenes. Si no tiene uno, lea Agregar y configurar modelos de Foundry para agregar un modelo de embeddings a su recurso.
- En este ejemplo se usa
Cohere-embed-v3-englishde Cohere.
- En este ejemplo se usa
Usar incrustaciones de imágenes
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.
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
Para crear incrustaciones de imágenes, debe pasar los datos de imagen como parte de la solicitud. Los datos de imagen deben estar en formato PNG y codificados como base64.
var image_path = "sample1.png";
var image_data = fs.readFileSync(image_path);
var image_data_base64 = Buffer.from(image_data).toString("base64");
var response = await client.path("/images/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
model: "Cohere-embed-v3-english",
}
});
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);
Importante
Es posible que no se admitan incrustaciones informáticas en lotes para todos los modelos. Por ejemplo, para el Cohere-embed-v3-english modelo, debe enviar una imagen a la vez.
Inserción de imágenes y pares de texto
Algunos modelos pueden generar incrustaciones a partir de imágenes y pares de texto. En este caso, puede usar los campos image y text de la solicitud para pasar la imagen y el texto al modelo. En el ejemplo siguiente se muestra cómo crear incrustaciones para imágenes y pares de texto:
var image_path = "sample1.png";
var image_data = fs.readFileSync(image_path);
var image_data_base64 = Buffer.from(image_data).toString("base64");
var response = await client.path("/images/embeddings").post({
body: {
input: [
{
text: "A cute baby sea otter",
image: image_data_base64
}
],
model: "Cohere-embed-v3-english",
}
});
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("/images/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "document",
model: "Cohere-embed-v3-english",
}
});
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("/images/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "query",
model: "Cohere-embed-v3-english",
}
});
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.
Nota
El uso de incrustaciones de imágenes solo se admite mediante solicitudes Python, JavaScript, C#o REST.
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 incrustaciones de imágenes con modelos de Microsoft Foundry.
Requisitos previos
Para usar modelos de inserción en la aplicación, necesita lo siguiente:
Una suscripción Azure. Si usa GitHub Models, puede actualizar su experiencia y crear una suscripción de Azure en el proceso. Lea Actualización de Modelos de GitHub a Modelos de Fundición de Microsoft si es su caso.
Un proyecto de fundición. Este tipo de proyecto se administra en un recurso Foundry. Si no tiene un proyecto de Foundry, consulte Crear un proyecto para Foundry (proyectos de Foundry).
Dirección URL del punto de conexión.
Clave del punto de conexión (si decide usar la clave de API para la autenticación).
Instale el paquete de inferencia Azure AI con el comando siguiente:
dotnet add package Azure.AI.Inference --prereleaseSi usa Entra ID, también necesita el siguiente paquete:
dotnet add package Azure.Identity
Una implementación de modelos de incrustaciones de imágenes. Si no tiene uno, lea Agregar y configurar modelos de Foundry para agregar un modelo de inserción al recurso.
- En este ejemplo se usa
Cohere-embed-v3-englishde Cohere.
- En este ejemplo se usa
Usar incrustaciones de imágenes
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.
ImageEmbeddingsClient client = new ImageEmbeddingsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Si configuró el recurso con compatibilidad con Microsoft Entra ID, puede usar el siguiente fragmento de código para crear un cliente. Tenga en cuenta que includeInteractiveCredentials se establece true en solo para fines de demostración, por lo que la autenticación puede producirse mediante el explorador web. Para las tareas de producción, debe quitar el 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);
ImageEmbeddingsClient client = new ImageEmbeddingsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
credential,
clientOptions
);
Creación de incrustaciones
Para crear incrustaciones de imágenes, debe pasar los datos de imagen como parte de la solicitud. Los datos de imagen deben estar en formato PNG y codificados como base64.
List<ImageEmbeddingInput> input = new List<ImageEmbeddingInput>
{
ImageEmbeddingInput.Load(imageFilePath:"sampleImage.png", imageFormat:"png")
};
var requestOptions = new ImageEmbeddingsOptions()
{
Input = input,
Model = "Cohere-embed-v3-english"
};
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:
foreach (EmbeddingItem item in response.Value.Data)
{
List<float> embedding = item.Embedding.ToObjectFromJson<List<float>>();
Console.WriteLine($"Index: {item.Index}, Embedding: <{string.Join(", ", embedding)}>");
}
Importante
Es posible que no se admitan incrustaciones informáticas en lotes para todos los modelos. Por ejemplo, para el Cohere-embed-v3-english modelo, debe enviar una imagen a la vez.
Inserción de imágenes y pares de texto
Algunos modelos pueden generar incrustaciones a partir de imágenes y pares de texto. En este caso, puede usar los campos image y text de la petición para pasar la imagen y el texto al modelo. En el ejemplo siguiente se muestra cómo crear incrustaciones para imágenes y pares de texto:
var image_input = ImageEmbeddingInput.Load(imageFilePath:"sampleImage.png", imageFormat:"png")
image_input.text = "A cute baby sea otter"
var requestOptions = new ImageEmbeddingsOptions()
{
Input = new List<ImageEmbeddingInput>
{
image_input
},
Model = "Cohere-embed-v3-english"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
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 para un documento que se almacenará en una base de datos vectorial:
var requestOptions = new EmbeddingsOptions()
{
Input = image_input,
InputType = EmbeddingInputType.DOCUMENT,
Model = "Cohere-embed-v3-english"
};
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 requestOptions = new EmbeddingsOptions()
{
Input = image_input,
InputType = EmbeddingInputType.QUERY,
Model = "Cohere-embed-v3-english"
};
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.
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 incrustaciones de imágenes con modelos de Microsoft Foundry.
Requisitos previos
Para usar modelos de inserción en la aplicación, necesita lo siguiente:
Una suscripción Azure. Si usa GitHub Models, puede actualizar su experiencia y crear una suscripción de Azure en el proceso. Lea Actualización de Modelos de GitHub a Modelos de Fundición de Microsoft si es su caso.
Un proyecto de fundición. Este tipo de proyecto se administra en un recurso Foundry. Si no tiene un proyecto de Foundry, consulte Crear un proyecto para Foundry (proyectos de Foundry).
Dirección URL del punto de conexión.
Clave del punto de conexión (si decide usar la clave de API para la autenticación).
Una implementación de modelos de incrustaciones de imágenes. Si no tiene uno, lea Agregar y configurar modelos de Foundry para agregar un modelo de embeddings a su recurso.
- En este ejemplo se usa
Cohere-embed-v3-englishde Cohere.
- En este ejemplo se usa
Usar incrustaciones de imágenes
Para usar los embeddings de texto, utiliza la ruta /images/embeddings añadida a tu URL base junto con tus credenciales indicadas en api-key. El encabezado Authorization también se admite con el formato Bearer <key>.
POST https://<resource>.services.ai.azure.com/models/images/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/images/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
Para crear incrustaciones de imágenes, debe pasar los datos de imagen como parte de la solicitud. Los datos de imagen deben estar en formato PNG y codificados como base64.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
]
}
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": "Cohere-embed-v3-english",
"usage": {
"prompt_tokens": 9,
"completion_tokens": 0,
"total_tokens": 9
}
}
Importante
Es posible que no se admitan incrustaciones informáticas en lotes para todos los modelos. Por ejemplo, para el Cohere-embed-v3-english modelo, debe enviar una imagen a la vez.
Inserción de imágenes y pares de texto
Algunos modelos pueden generar incrustaciones a partir de imágenes y pares de texto. En este caso, puede usar los campos image y text de la solicitud para pasar la imagen y el texto al modelo. En el ejemplo siguiente se muestra cómo crear incrustaciones para imágenes y pares de texto:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh...",
"text": "A photo of a cat"
}
]
}
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:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"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.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"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.