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.
Importante
Los elementos marcados (versión preliminar) en este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure.
En este artículo se explica cómo usar la API de incrustaciones de imágenes con modelos de Azure AI Foundry.
Prerrequisitos
Para usar modelos de inserción en la aplicación, necesita lo siguiente:
Una suscripción de Azure. Si usa modelos de GitHub, puede actualizar su experiencia y crear una suscripción de Azure en el proceso. Lea Actualización de modelos de GitHub a modelos de Azure AI Foundry si es su caso.
Un recurso de Azure AI Foundry (anteriormente conocido como Azure AI Services). Para más información, consulte Creación de un recurso de Azure AI Foundry.
Dirección URL y clave del punto de conexión.
Instale el paquete de inferencia de Azure AI para Python con el siguiente comando:
pip install -U azure-ai-inference
Implementación de modelo de inserciones 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-english
de Cohere.
- En este ejemplo se usa
Usar incrustaciones de imágenes
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.
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 con 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 la imagen como parte de la solicitud. Los datos de la imagen deben estar en formato PNG y estar 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 ],
)
Sugerencia
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 se pueden ver las estadísticas de uso del 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)
Importante
Es posible que las incrustaciones informáticas en lotes no se admitan para todos los modelos. Por ejemplo, para el modelo Cohere-embed-v3-english
, debe enviar una imagen a la vez.
Integració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 ],
)
Creación de diferentes tipos de inserciones
Algunos modelos pueden generar múltiples inserciones para la misma entrada en función de cómo planee usarlos. Esta capacidad le permite recuperar inserciones más precisas para los patrones de RAG.
El siguiente ejemplo muestra cómo crear inserciones que se utilizan 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,
)
Cuando trabaje en una consulta para recuperar un documento de este tipo, puede usar el siguiente fragmento de código para crear las inserciones para la consulta y maximizar el rendimiento de la 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 incrustació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) en este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure.
En este artículo se explica cómo usar la API de incrustaciones de imágenes con modelos de Azure AI Foundry.
Prerrequisitos
Para usar modelos de inserción en la aplicación, necesita lo siguiente:
Una suscripción de Azure. Si usa modelos de GitHub, puede actualizar su experiencia y crear una suscripción de Azure en el proceso. Lea Actualización de modelos de GitHub a modelos de Azure AI Foundry si es su caso.
Un recurso de Azure AI Foundry (anteriormente conocido como Azure AI Services). Para más información, consulte Creación de un recurso de Azure AI Foundry.
Dirección URL y clave del punto de conexión.
Instale la biblioteca de inferencia de 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";
Implementación de modelo de inserciones de imágenes. Si no tiene uno, lea Agregar y configurar modelos de Foundry para agregar un modelo de incrustación a su recurso.
- En este ejemplo se usa
Cohere-embed-v3-english
de Cohere.
- En este ejemplo se usa
Usar incrustaciones de imágenes
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.
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 el identificador de Entra de Microsoft , 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 la imagen como parte de la solicitud. Los datos de la imagen deben estar en formato PNG y estar 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",
}
});
Sugerencia
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 se pueden 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 las incrustaciones informáticas en lotes no se admitan para todos los modelos. Por ejemplo, para el modelo Cohere-embed-v3-english
, debe enviar una imagen a la vez.
Integració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",
}
});
Creación de diferentes tipos de inserciones
Algunos modelos pueden generar múltiples inserciones para la misma entrada en función de cómo planee usarlos. Esta capacidad le permite recuperar inserciones más precisas para los patrones de RAG.
El siguiente ejemplo muestra cómo crear inserciones que se utilizan 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",
}
});
Cuando trabaje en una consulta para recuperar un documento de este tipo, puede usar el siguiente fragmento de código para crear las inserciones para la consulta y maximizar el rendimiento de la 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 incrustació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 de Python, JavaScript, C#o REST.
Importante
Los elementos marcados (versión preliminar) en este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure.
En este artículo se explica cómo usar la API de incrustaciones de imágenes con modelos de Azure AI Foundry.
Prerrequisitos
Para usar modelos de inserción en la aplicación, necesita lo siguiente:
Una suscripción de Azure. Si usa modelos de GitHub, puede actualizar su experiencia y crear una suscripción de Azure en el proceso. Lea Actualización de modelos de GitHub a modelos de Azure AI Foundry si es su caso.
Un recurso de Azure AI Foundry (anteriormente conocido como Azure AI Services). Para más información, consulte Creación de un recurso de Azure AI Foundry.
Dirección URL y clave del punto de conexión.
Instale el paquete de inferencia de Azure AI con el siguiente comando:
dotnet add package Azure.AI.Inference --prerelease
Si usa Entra ID, también necesita el siguiente paquete:
dotnet add package Azure.Identity
Implementación de modelo de inserciones 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-english
de Cohere.
- En este ejemplo se usa
Usar incrustaciones de imágenes
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.
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 el identificador de Entra de Microsoft , 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 cargas de trabajo 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 la imagen como parte de la solicitud. Los datos de la imagen deben estar en formato PNG y estar 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);
Sugerencia
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 se pueden 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 modelo Cohere-embed-v3-english
, debe enviar una imagen a la vez.
Integració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_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);
Creación de diferentes tipos de inserciones
Algunos modelos pueden generar múltiples inserciones para la misma entrada en función de cómo planee usarlos. Esta capacidad le permite recuperar inserciones más precisas para los patrones de 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);
Cuando trabaje en una consulta para recuperar un documento de este tipo, puede usar el siguiente fragmento de código para crear las inserciones para la consulta y maximizar el rendimiento de la 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 incrustació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) en este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure.
En este artículo se explica cómo usar la API de incrustaciones de imágenes con modelos de Azure AI Foundry.
Prerrequisitos
Para usar modelos de inserción en la aplicación, necesita lo siguiente:
Una suscripción de Azure. Si usa modelos de GitHub, puede actualizar su experiencia y crear una suscripción de Azure en el proceso. Lea Actualización de modelos de GitHub a modelos de Azure AI Foundry si es su caso.
Un recurso de Azure AI Foundry (anteriormente conocido como Azure AI Services). Para más información, consulte Creación de un recurso de Azure AI Foundry.
Dirección URL y clave del punto de conexión.
Implementación de modelo de inserciones de imágenes. Si no tiene uno, lea Agregar y configurar modelos de Foundry para agregar un modelo de incrustación a su recurso.
- En este ejemplo se usa
Cohere-embed-v3-english
de Cohere.
- En este ejemplo se usa
Usar incrustaciones de imágenes
Para usar las incrustaciones de texto, use la ruta /images/embeddings
anexada a la dirección 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/images/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
api-key: <key>
Si ha configurado el recurso con soporte de Microsoft Entra ID, pase su token en el encabezado Authorization
con el formato Bearer <token>
. Use el ámbito https://cognitiveservices.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. Obtenga información sobre cómo configurar la autenticación sin claves con el identificador de Microsoft Entra.
Creación de incrustaciones
Para crear incrustaciones de imágenes, debe pasar los datos de la imagen como parte de la solicitud. Los datos de la imagen deben estar en formato PNG y estar codificados como base64.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
]
}
Sugerencia
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 se pueden 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 las incrustaciones informáticas en lotes no se admitan para todos los modelos. Por ejemplo, para el modelo Cohere-embed-v3-english
, debe enviar una imagen a la vez.
Integració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"
}
]
}
Creación de diferentes tipos de inserciones
Algunos modelos pueden generar múltiples inserciones para la misma entrada en función de cómo planee usarlos. Esta capacidad le permite recuperar inserciones más precisas para los patrones de RAG.
El siguiente ejemplo muestra cómo crear inserciones que se utilizan 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"
}
Cuando trabaje en una consulta para recuperar un documento de este tipo, puede usar el siguiente fragmento de código para crear las inserciones para la consulta y maximizar el rendimiento de la recuperación.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "query"
}
Observe que no todos los modelos de incrustación admiten que indique el tipo de entrada en la solicitud y, en esos casos, se devuelve un error 422.