Como gerar incorporações de imagem com a 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 de imagens com modelos implantados na inferência de modelo de IA do Azure no Azure AI Foundry.
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.
Uma imagem incorpora a implantação do modelo. 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.
- Este exemplo usa
Cohere-embed-v3-english
Cohere.
- Este exemplo usa
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 ImageEmbeddingsClient
from azure.core.credentials import AzureKeyCredential
model = ImageEmbeddingsClient(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
model="Cohere-embed-v3-english"
)
Se você configurou o recurso com suporte ao Microsoft Entra ID , poderá usar o trecho de código a seguir para criar um cliente.
import os
from azure.ai.inference import ImageEmbeddingsClient
from azure.identity import DefaultAzureCredential
model = ImageEmbeddingsClient(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=DefaultAzureCredential(),
model="Cohere-embed-v3-english"
)
Criar incorporações
Para criar incorporações de imagem, você precisa passar os dados da imagem como parte de sua solicitação. Os dados de imagem devem estar no formato PNG e codificados como base64.
from azure.ai.inference.models import ImageEmbeddingInput
image_input= ImageEmbeddingInput.load(image_file="sample1.png", image_format="png")
response = model.embed(
input=[ image_input ],
)
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)
Importante
A computação de incorporações em lotes pode não ser suportada para todos os modelos. Por exemplo, para cohere-embed-v3
o modelo, você precisa enviar uma imagem de cada vez.
Incorporação de imagens e pares de texto
Alguns modelos podem gerar incorporações a partir de imagens e pares de texto. Nesse caso, você pode usar os image
campos e text
na solicitação para passar a imagem e o texto para o modelo. O exemplo a seguir mostra como criar incorporações para imagens e 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 = model.embed(
input=[ text_image_input ],
)
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=[ image_input ],
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=[ image_input ],
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.
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 de imagens com modelos implantados na inferência de modelo de IA do Azure no Azure AI Foundry.
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.
Uma imagem incorpora a implantação do modelo. 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.
- Este exemplo usa
Cohere-embed-v3-english
Cohere.
- Este exemplo usa
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),
"Cohere-embed-v3-english"
);
Se você configurou o recurso com suporte ao Microsoft Entra ID , poderá 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(),
"Cohere-embed-v3-english"
);
Criar incorporações
Para criar incorporações de imagem, você precisa passar os dados da imagem como parte de sua solicitação. Os dados de imagem devem estar no formato PNG e 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 } ],
}
});
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);
Importante
A computação de incorporações em lotes pode não ser suportada para todos os modelos. Por exemplo, para cohere-embed-v3
o modelo, você precisa enviar uma imagem de cada vez.
Incorporação de imagens e pares de texto
Alguns modelos podem gerar incorporações a partir de imagens e pares de texto. Nesse caso, você pode usar os image
campos e text
na solicitação para passar a imagem e o texto para o modelo. O exemplo a seguir mostra como criar incorporações para imagens e 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
}
]
}
});
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: [ { image: image_data_base64 } ],
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: [ { image: image_data_base64 } ],
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.
Nota
O uso de incorporações de imagem só é suportado usando solicitações Python, JavaScript ou REST.
Nota
O uso de incorporações de imagem só é suportado usando solicitações Python, JavaScript ou REST.
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 de imagens com modelos implantados na inferência de modelo de IA do Azure no Azure AI Foundry.
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.
Uma imagem incorpora a implantação do modelo. 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.
- Este exemplo usa
Cohere-embed-v3-english
Cohere.
- Este exemplo usa
Usar incorporações
Para usar as incorporações de texto, use a rota /images/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/images/embeddings
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/images/embeddings
Content-Type: application/json
Authorization: Bearer <token>
Criar incorporações
Para criar incorporações de imagem, você precisa passar os dados da imagem como parte de sua solicitação. Os dados de imagem devem estar no formato PNG e codificados como base64.
{
"model": "${varients-sample}",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
]
}
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": "Cohere-embed-v3-english",
"usage": {
"prompt_tokens": 9,
"completion_tokens": 0,
"total_tokens": 9
}
}
Importante
A computação de incorporações em lotes pode não ser suportada para todos os modelos. Por exemplo, para cohere-embed-v3
o modelo, você precisa enviar uma imagem de cada vez.
Incorporação de imagens e pares de texto
Alguns modelos podem gerar incorporações a partir de imagens e pares de texto. Nesse caso, você pode usar os image
campos e text
na solicitação para passar a imagem e o texto para o modelo. O exemplo a seguir mostra como criar incorporações para imagens e pares de texto:
{
"model": "${varients-sample}",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh...",
"text": "A photo of a cat"
}
]
}
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:
{
"model": "${varients-sample}",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"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.
{
"model": "${varients-sample}",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"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.