Come generare incorporamenti di immagini con l'inferenza del modello di intelligenza artificiale di Azure
Importante
Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente disponibili in anteprima pubblica. Questa anteprima viene fornita senza un contratto di servizio e non è consigliabile per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
Questo articolo illustra come usare l'API di incorporamento delle immagini con i modelli distribuiti nell'inferenza del modello di intelligenza artificiale di Azure in Azure AI Foundry.
Prerequisiti
Per usare i modelli di incorporamento nell'applicazione, è necessario:
Una sottoscrizione di Azure. Se si usano i modelli GitHub, è possibile aggiornare l'esperienza e creare una sottoscrizione di Azure nel processo. Leggere Eseguire l'aggiornamento dai modelli GitHub all'inferenza del modello di intelligenza artificiale di Azure, se questo è il caso.
Una risorsa dei servizi di intelligenza artificiale di Azure. Per altre informazioni, vedere Creare una risorsa di Servizi di intelligenza artificiale di Azure.
URL e chiave dell'endpoint.
Distribuzione di un modello di incorporamento di immagini. Se non è disponibile, leggere Aggiungere e configurare modelli ai servizi di intelligenza artificiale di Azure per aggiungere un modello di incorporamento alla risorsa.
- In questo esempio viene
Cohere-embed-v3-english
usato da Cohere.
- In questo esempio viene
Installare il pacchetto di inferenza di Intelligenza artificiale di Azure con il comando seguente:
pip install -U azure-ai-inference
Suggerimento
Altre informazioni sul pacchetto di inferenza di Intelligenza artificiale di Azure.
Usare gli incorporamenti
Creare prima di tutto il client per utilizzare il modello. Il codice seguente usa un URL dell'endpoint e una chiave archiviati nelle variabili di 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 la risorsa è stata configurata con il supporto di Microsoft Entra ID , è possibile usare il frammento di codice seguente per creare un client.
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"
)
Creare incorporamenti
Per creare incorporamenti di immagini, è necessario passare i dati dell'immagine come parte della richiesta. I dati dell'immagine devono essere in formato PNG e codificati come 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 ],
)
Suggerimento
Quando si crea una richiesta, tenere conto del limite di input del token per il modello. Se è necessario incorporare parti di testo più grandi, è necessaria una strategia di suddivisione in blocchi.
La risposta è la seguente, in cui è possibile visualizzare le statistiche di utilizzo del modello:
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
L'elaborazione degli incorporamenti in batch potrebbe non essere supportata per tutti i modelli. Ad esempio, per cohere-embed-v3
il modello, è necessario inviare un'immagine alla volta.
Incorporamento di immagini e coppie di testo
Alcuni modelli possono generare incorporamenti da immagini e coppie di testo. In questo caso, è possibile usare i image
campi e text
nella richiesta per passare l'immagine e il testo al modello. L'esempio seguente illustra come creare incorporamenti per le coppie di immagini e testo:
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 ],
)
Creare tipi diversi di incorporamenti
Alcuni modelli possono generare più incorporamenti per lo stesso input a seconda del modo in cui si prevede di usarli. Questa funzionalità consente di recuperare incorporamenti più accurati per i modelli RAG.
Nell'esempio seguente viene illustrato come creare incorporamenti usati per creare un incorporamento per un documento che verrà archiviato in un database vettoriale:
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=[ image_input ],
input_type=EmbeddingInputType.DOCUMENT,
)
Quando si lavora su una query per recuperare un documento di questo tipo, è possibile usare il frammento di codice seguente per creare gli incorporamenti per la query e ottimizzare le prestazioni di recupero.
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=[ image_input ],
input_type=EmbeddingInputType.QUERY,
)
Si noti che non tutti i modelli di incorporamento supportano l'indicazione del tipo di input nella richiesta e in questi casi viene restituito un errore 422.
Importante
Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente disponibili in anteprima pubblica. Questa anteprima viene fornita senza un contratto di servizio e non è consigliabile per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
Questo articolo illustra come usare l'API di incorporamento delle immagini con i modelli distribuiti nell'inferenza del modello di intelligenza artificiale di Azure in Azure AI Foundry.
Prerequisiti
Per usare i modelli di incorporamento nell'applicazione, è necessario:
Una sottoscrizione di Azure. Se si usano i modelli GitHub, è possibile aggiornare l'esperienza e creare una sottoscrizione di Azure nel processo. Leggere Eseguire l'aggiornamento dai modelli GitHub all'inferenza del modello di intelligenza artificiale di Azure, se questo è il caso.
Una risorsa dei servizi di intelligenza artificiale di Azure. Per altre informazioni, vedere Creare una risorsa di Servizi di intelligenza artificiale di Azure.
URL e chiave dell'endpoint.
Distribuzione di un modello di incorporamento di immagini. Se non si ha una sola lettura Aggiungere e configurare modelli ai servizi di intelligenza artificiale di Azure per aggiungere un modello di incorporamento alla risorsa.
- In questo esempio viene
Cohere-embed-v3-english
usato da Cohere.
- In questo esempio viene
Installare la libreria di inferenza di Azure per JavaScript con il comando seguente:
npm install @azure-rest/ai-inference
Suggerimento
Altre informazioni sul pacchetto di inferenza di Intelligenza artificiale di Azure.
Usare gli incorporamenti
Creare prima di tutto il client per utilizzare il modello. Il codice seguente usa un URL dell'endpoint e una chiave archiviati nelle variabili di 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 la risorsa è stata configurata con il supporto di Microsoft Entra ID , è possibile usare il frammento di codice seguente per creare un client.
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"
);
Creare incorporamenti
Per creare incorporamenti di immagini, è necessario passare i dati dell'immagine come parte della richiesta. I dati dell'immagine devono essere in formato PNG e codificati come 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 } ],
}
});
Suggerimento
Quando si crea una richiesta, tenere conto del limite di input del token per il modello. Se è necessario incorporare parti di testo più grandi, è necessaria una strategia di suddivisione in blocchi.
La risposta è la seguente, in cui è possibile visualizzare le statistiche di utilizzo del modello:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Importante
L'elaborazione degli incorporamenti in batch potrebbe non essere supportata per tutti i modelli. Ad esempio, per cohere-embed-v3
il modello, è necessario inviare un'immagine alla volta.
Incorporamento di immagini e coppie di testo
Alcuni modelli possono generare incorporamenti da immagini e coppie di testo. In questo caso, è possibile usare i image
campi e text
nella richiesta per passare l'immagine e il testo al modello. L'esempio seguente illustra come creare incorporamenti per le coppie di immagini e testo:
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
}
]
}
});
Creare tipi diversi di incorporamenti
Alcuni modelli possono generare più incorporamenti per lo stesso input a seconda del modo in cui si prevede di usarli. Questa funzionalità consente di recuperare incorporamenti più accurati per i modelli RAG.
Nell'esempio seguente viene illustrato come creare incorporamenti usati per creare un incorporamento per un documento che verrà archiviato in un database vettoriale:
var response = await client.path("/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "document",
}
});
Quando si lavora su una query per recuperare un documento di questo tipo, è possibile usare il frammento di codice seguente per creare gli incorporamenti per la query e ottimizzare le prestazioni di recupero.
var response = await client.path("/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "query",
}
});
Si noti che non tutti i modelli di incorporamento supportano l'indicazione del tipo di input nella richiesta e in questi casi viene restituito un errore 422.
Nota
L'uso di incorporamenti di immagini è supportato solo con le richieste Python, JavaScript o REST.
Nota
L'uso di incorporamenti di immagini è supportato solo con le richieste Python, JavaScript o REST.
Importante
Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente disponibili in anteprima pubblica. Questa anteprima viene fornita senza un contratto di servizio e non è consigliabile per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
Questo articolo illustra come usare l'API di incorporamento delle immagini con i modelli distribuiti nell'inferenza del modello di intelligenza artificiale di Azure in Azure AI Foundry.
Prerequisiti
Per usare i modelli di incorporamento nell'applicazione, è necessario:
Una sottoscrizione di Azure. Se si usano i modelli GitHub, è possibile aggiornare l'esperienza e creare una sottoscrizione di Azure nel processo. Leggere Eseguire l'aggiornamento dai modelli GitHub all'inferenza del modello di intelligenza artificiale di Azure, se questo è il caso.
Una risorsa dei servizi di intelligenza artificiale di Azure. Per altre informazioni, vedere Creare una risorsa di Servizi di intelligenza artificiale di Azure.
URL e chiave dell'endpoint.
Distribuzione di un modello di incorporamento di immagini. Se non si ha una sola lettura Aggiungere e configurare modelli ai servizi di intelligenza artificiale di Azure per aggiungere un modello di incorporamento alla risorsa.
- In questo esempio viene
Cohere-embed-v3-english
usato da Cohere.
- In questo esempio viene
Usare gli incorporamenti
Per usare gli incorporamenti di testo, usare la route /images/embeddings
aggiunta all'URL di base insieme alle credenziali indicate in api-key
.
Authorization
l'intestazione è supportata anche con il 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>
Se la risorsa è stata configurata con il supporto di Microsoft Entra ID , passare il token nell'intestazione Authorization
:
POST https://<resource>.services.ai.azure.com/models/images/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
Authorization: Bearer <token>
Creare incorporamenti
Per creare incorporamenti di immagini, è necessario passare i dati dell'immagine come parte della richiesta. I dati dell'immagine devono essere in formato PNG e codificati come base64.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
]
}
Suggerimento
Quando si crea una richiesta, tenere conto del limite di input del token per il modello. Se è necessario incorporare parti di testo più grandi, è necessaria una strategia di suddivisione in blocchi.
La risposta è la seguente, in cui è possibile visualizzare le statistiche di utilizzo del modello:
{
"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
L'elaborazione degli incorporamenti in batch potrebbe non essere supportata per tutti i modelli. Ad esempio, per cohere-embed-v3
il modello, è necessario inviare un'immagine alla volta.
Incorporamento di immagini e coppie di testo
Alcuni modelli possono generare incorporamenti da immagini e coppie di testo. In questo caso, è possibile usare i image
campi e text
nella richiesta per passare l'immagine e il testo al modello. L'esempio seguente illustra come creare incorporamenti per le coppie di immagini e testo:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh...",
"text": "A photo of a cat"
}
]
}
Creare tipi diversi di incorporamenti
Alcuni modelli possono generare più incorporamenti per lo stesso input a seconda del modo in cui si prevede di usarli. Questa funzionalità consente di recuperare incorporamenti più accurati per i modelli RAG.
Nell'esempio seguente viene illustrato come creare incorporamenti usati per creare un incorporamento per un documento che verrà archiviato in un database vettoriale:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "document"
}
Quando si lavora su una query per recuperare un documento di questo tipo, è possibile usare il frammento di codice seguente per creare gli incorporamenti per la query e ottimizzare le prestazioni di recupero.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "query"
}
Si noti che non tutti i modelli di incorporamento supportano l'indicazione del tipo di input nella richiesta e in questi casi viene restituito un errore 422.