Så här genererar du inbäddningar av avbildningar med Azure AI-modellinferens
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Den här artikeln beskriver hur du använder API för inbäddning av avbildningar med modeller som distribuerats till Azure AI-modellinferens i Azure AI Foundry.
Förutsättningar
Om du vill använda inbäddningsmodeller i ditt program behöver du:
En Azure-prenumeration Om du använder GitHub-modeller kan du uppgradera din upplevelse och skapa en Azure-prenumeration i processen. Läs Uppgradera från GitHub-modeller till Azure AI-modellinferens om så är fallet.
En Azure AI-tjänstresurs. Mer information finns i Skapa en Azure AI Services-resurs.
Slutpunkts-URL:en och nyckeln.
En distribution av en avbildningsmodell för inbäddningsmodeller. Om du inte har någon läser du Lägg till och konfigurera modeller i Azure AI-tjänster för att lägga till en inbäddningsmodell i resursen.
- Det här exemplet använder
Cohere-embed-v3-english
från Cohere.
- Det här exemplet använder
Installera Azure AI-slutsatsdragningspaketet med följande kommando:
pip install -U azure-ai-inference
Dricks
Läs mer om Azure AI-slutsatsdragningspaketet och referensen.
Använda inbäddningar
Skapa först klienten för att använda modellen. I följande kod används en slutpunkts-URL och nyckel som lagras i miljövariabler.
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"
)
Om du har konfigurerat resursen till med Stöd för Microsoft Entra-ID kan du använda följande kodfragment för att skapa en klient.
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"
)
Skapa inbäddningar
Om du vill skapa avbildningsinbäddningar måste du skicka bilddata som en del av din begäran. Bilddata ska vara i PNG-format och kodas som 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 ],
)
Dricks
När du skapar en begäran tar du hänsyn till tokens indatagräns för modellen. Om du behöver bädda in större delar av text behöver du en segmenteringsstrategi.
Svaret är följande, där du kan se modellens användningsstatistik:
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)
Viktigt!
Databehandling av inbäddningar i batchar kanske inte stöds för alla modeller. För modellen behöver du till exempel cohere-embed-v3
skicka en bild i taget.
Bädda in bilder och textpar
Vissa modeller kan generera inbäddningar från bilder och textpar. I det här fallet kan du använda fälten image
och text
i begäran för att skicka bilden och texten till modellen. I följande exempel visas hur du skapar inbäddningar för bilder och textpar:
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 ],
)
Skapa olika typer av inbäddningar
Vissa modeller kan generera flera inbäddningar för samma indata beroende på hur du planerar att använda dem. Med den här funktionen kan du hämta mer exakta inbäddningar för RAG-mönster.
I följande exempel visas hur du skapar inbäddningar som används för att skapa en inbäddning för ett dokument som ska lagras i en vektordatabas:
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=[ image_input ],
input_type=EmbeddingInputType.DOCUMENT,
)
När du arbetar med en fråga för att hämta ett sådant dokument kan du använda följande kodfragment för att skapa inbäddningarna för frågan och maximera hämtningsprestandan.
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=[ image_input ],
input_type=EmbeddingInputType.QUERY,
)
Observera att inte alla inbäddningsmodeller stöder indatatypen i begäran och i dessa fall returneras ett 422-fel.
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Den här artikeln beskriver hur du använder API för inbäddning av avbildningar med modeller som distribuerats till Azure AI-modellinferens i Azure AI Foundry.
Förutsättningar
Om du vill använda inbäddningsmodeller i ditt program behöver du:
En Azure-prenumeration Om du använder GitHub-modeller kan du uppgradera din upplevelse och skapa en Azure-prenumeration i processen. Läs Uppgradera från GitHub-modeller till Azure AI-modellinferens om så är fallet.
En Azure AI-tjänstresurs. Mer information finns i Skapa en Azure AI Services-resurs.
Slutpunkts-URL:en och nyckeln.
En distribution av en avbildningsmodell för inbäddningsmodeller. Om du inte har någon läser du Lägg till och konfigurera modeller i Azure AI-tjänster för att lägga till en inbäddningsmodell i resursen.
- Det här exemplet använder
Cohere-embed-v3-english
från Cohere.
- Det här exemplet använder
Installera Azure Inference-biblioteket för JavaScript med följande kommando:
npm install @azure-rest/ai-inference
Dricks
Läs mer om Azure AI-slutsatsdragningspaketet och referensen.
Använda inbäddningar
Skapa först klienten för att använda modellen. I följande kod används en slutpunkts-URL och nyckel som lagras i miljövariabler.
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"
);
Om du har konfigurerat resursen till med Stöd för Microsoft Entra-ID kan du använda följande kodfragment för att skapa en klient.
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"
);
Skapa inbäddningar
Om du vill skapa avbildningsinbäddningar måste du skicka bilddata som en del av din begäran. Bilddata ska vara i PNG-format och kodas som 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 } ],
}
});
Dricks
När du skapar en begäran tar du hänsyn till tokens indatagräns för modellen. Om du behöver bädda in större delar av text behöver du en segmenteringsstrategi.
Svaret är följande, där du kan se modellens användningsstatistik:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Viktigt!
Databehandling av inbäddningar i batchar kanske inte stöds för alla modeller. För modellen behöver du till exempel cohere-embed-v3
skicka en bild i taget.
Bädda in bilder och textpar
Vissa modeller kan generera inbäddningar från bilder och textpar. I det här fallet kan du använda fälten image
och text
i begäran för att skicka bilden och texten till modellen. I följande exempel visas hur du skapar inbäddningar för bilder och textpar:
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
}
]
}
});
Skapa olika typer av inbäddningar
Vissa modeller kan generera flera inbäddningar för samma indata beroende på hur du planerar att använda dem. Med den här funktionen kan du hämta mer exakta inbäddningar för RAG-mönster.
I följande exempel visas hur du skapar inbäddningar som används för att skapa en inbäddning för ett dokument som ska lagras i en vektordatabas:
var response = await client.path("/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "document",
}
});
När du arbetar med en fråga för att hämta ett sådant dokument kan du använda följande kodfragment för att skapa inbäddningarna för frågan och maximera hämtningsprestandan.
var response = await client.path("/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "query",
}
});
Observera att inte alla inbäddningsmodeller stöder indatatypen i begäran och i dessa fall returneras ett 422-fel.
Kommentar
Användning av bildinbäddningar stöds endast med hjälp av Python-, JavaScript- eller REST-begäranden.
Kommentar
Användning av bildinbäddningar stöds endast med hjälp av Python-, JavaScript- eller REST-begäranden.
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Den här artikeln beskriver hur du använder API för inbäddning av avbildningar med modeller som distribuerats till Azure AI-modellinferens i Azure AI Foundry.
Förutsättningar
Om du vill använda inbäddningsmodeller i ditt program behöver du:
En Azure-prenumeration Om du använder GitHub-modeller kan du uppgradera din upplevelse och skapa en Azure-prenumeration i processen. Läs Uppgradera från GitHub-modeller till Azure AI-modellinferens om så är fallet.
En Azure AI-tjänstresurs. Mer information finns i Skapa en Azure AI Services-resurs.
Slutpunkts-URL:en och nyckeln.
En distribution av en avbildningsmodell för inbäddningsmodeller. Om du inte har någon läser du Lägg till och konfigurera modeller i Azure AI-tjänster för att lägga till en inbäddningsmodell i resursen.
- Det här exemplet använder
Cohere-embed-v3-english
från Cohere.
- Det här exemplet använder
Använda inbäddningar
Om du vill använda textbäddningar använder du den väg /images/embeddings
som läggs till i bas-URL:en tillsammans med dina autentiseringsuppgifter som anges i api-key
.
Authorization
-huvudet stöds också med formatet 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>
Om du har konfigurerat resursen med Stöd för Microsoft Entra-ID skickar du token i Authorization
rubriken:
POST https://<resource>.services.ai.azure.com/models/images/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
Authorization: Bearer <token>
Skapa inbäddningar
Om du vill skapa avbildningsinbäddningar måste du skicka bilddata som en del av din begäran. Bilddata ska vara i PNG-format och kodas som base64.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
]
}
Dricks
När du skapar en begäran tar du hänsyn till tokens indatagräns för modellen. Om du behöver bädda in större delar av text behöver du en segmenteringsstrategi.
Svaret är följande, där du kan se modellens användningsstatistik:
{
"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
}
}
Viktigt!
Databehandling av inbäddningar i batchar kanske inte stöds för alla modeller. För modellen behöver du till exempel cohere-embed-v3
skicka en bild i taget.
Bädda in bilder och textpar
Vissa modeller kan generera inbäddningar från bilder och textpar. I det här fallet kan du använda fälten image
och text
i begäran för att skicka bilden och texten till modellen. I följande exempel visas hur du skapar inbäddningar för bilder och textpar:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh...",
"text": "A photo of a cat"
}
]
}
Skapa olika typer av inbäddningar
Vissa modeller kan generera flera inbäddningar för samma indata beroende på hur du planerar att använda dem. Med den här funktionen kan du hämta mer exakta inbäddningar för RAG-mönster.
I följande exempel visas hur du skapar inbäddningar som används för att skapa en inbäddning för ett dokument som ska lagras i en vektordatabas:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "document"
}
När du arbetar med en fråga för att hämta ett sådant dokument kan du använda följande kodfragment för att skapa inbäddningarna för frågan och maximera hämtningsprestandan.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "query"
}
Observera att inte alla inbäddningsmodeller stöder indatatypen i begäran och i dessa fall returneras ett 422-fel.