Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 bildinbäddning med Azure AI Foundry Models.
Förutsättningar
För att använda inbäddningsmodeller i din applikation behöver du:
Ett Azure-abonnemang. 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 Foundry-modeller om så är fallet.
Ett Azure AI Foundry-projekt. Den här typen av projekt hanteras under en Azure AI Foundry-resurs (kallades tidigare Azure AI Services-resurs). Om du inte har ett Foundry-projekt kan du läsa Skapa ett projekt för Azure AI Foundry (Foundry-projekt).
Slutpunktens URL.
Slutpunktens nyckel (om du väljer att använda API-nyckeln för autentisering).
Installera Azure AI-slutsatsdragningspaketet för Python med följande kommando:
pip install -U azure-ai-inference
Distribuering av en avbildningsmodell för bildinbäddningar. Om du inte har någon läser du Lägg till och konfigurera Foundry Models för att lägga till en inbäddningsmodell i resursen.
- Det här exemplet använder
Cohere-embed-v3-englishfrån Cohere.
- Det här exemplet använder
Använda bildinbä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
client = ImageEmbeddingsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
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
client = ImageEmbeddingsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
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 = client.embed(
input=[ image_input ],
)
Tips/Råd
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. Till exempel, för Cohere-embed-v3-english-modellen behöver du 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 = client.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 = client.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 = client.embed(
input=[ image_input ],
input_type=EmbeddingInputType.QUERY,
)
Observera att inte alla inbäddningsmodeller stöder att ange inputtyp i förfrågan 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 bildinbäddning med Azure AI Foundry Models.
Förutsättningar
För att använda inbäddningsmodeller i din applikation behöver du:
Ett Azure-abonnemang. 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 Foundry-modeller om så är fallet.
Ett Azure AI Foundry-projekt. Den här typen av projekt hanteras under en Azure AI Foundry-resurs (kallades tidigare Azure AI Services-resurs). Om du inte har ett Foundry-projekt kan du läsa Skapa ett projekt för Azure AI Foundry (Foundry-projekt).
Slutpunktens URL.
Slutpunktens nyckel (om du väljer att använda API-nyckeln för autentisering).
Installera Azure Inference-biblioteket för JavaScript med följande kommando:
npm install @azure-rest/ai-inference npm install @azure/core-auth npm install @azure/identityOm du använder Node.jskan du konfigurera beroendena i 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" } }Importera följande:
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";
Distribuering av en avbildningsmodell för bildinbäddningar. Om du inte redan har någon, läs Lägg till och konfigurera Foundry Models för att lägga till en inbäddningsmodell i resursen.
- Det här exemplet använder
Cohere-embed-v3-englishfrån Cohere.
- Det här exemplet använder
Använda bildinbä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.
const client = ModelClient(
"https://<resource>.services.ai.azure.com/models",
new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);
Om du har konfigurerat resursen med Microsoft Entra ID-stöd kan du använda följande kodfragment för att skapa en klient.
const clientOptions = { credentials: { "https://cognitiveservices.azure.com" } };
const client = ModelClient(
"https://<resource>.services.ai.azure.com/models",
new DefaultAzureCredential()
clientOptions,
);
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 } ],
model: "Cohere-embed-v3-english",
}
});
Tips/Råd
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. Till exempel, för Cohere-embed-v3-english-modellen behöver du 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
}
],
model: "Cohere-embed-v3-english",
}
});
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("/images/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "document",
model: "Cohere-embed-v3-english",
}
});
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("/images/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "query",
model: "Cohere-embed-v3-english",
}
});
Observera att inte alla inbäddningsmodeller stöder att ange inputtyp i förfrågan och i dessa fall returneras ett 422-fel.
Anmärkning
Användning av bildinbäddningar stöds endast med hjälp av Python-, JavaScript-, C#- 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 bildinbäddning med Azure AI Foundry Models.
Förutsättningar
För att använda inbäddningsmodeller i din applikation behöver du:
Ett Azure-abonnemang. 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 Foundry-modeller om så är fallet.
Ett Azure AI Foundry-projekt. Den här typen av projekt hanteras under en Azure AI Foundry-resurs (kallades tidigare Azure AI Services-resurs). Om du inte har ett Foundry-projekt kan du läsa Skapa ett projekt för Azure AI Foundry (Foundry-projekt).
Slutpunktens URL.
Slutpunktens nyckel (om du väljer att använda API-nyckeln för autentisering).
Installera Azure AI-slutsatsdragningspaketet med följande kommando:
dotnet add package Azure.AI.Inference --prereleaseOm du använder Entra ID behöver du också följande paket:
dotnet add package Azure.Identity
Distribuering av en avbildningsmodell för bildinbäddningar. Om du inte har någon läser du Lägg till och konfigurera Foundry Models för att lägga till en inbäddningsmodell i resursen.
- Det här exemplet använder
Cohere-embed-v3-englishfrån Cohere.
- Det här exemplet använder
Använda bildinbä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.
ImageEmbeddingsClient client = new ImageEmbeddingsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Om du har konfigurerat resursen med Microsoft Entra ID-stöd kan du använda följande kodfragment för att skapa en klient. Observera att includeInteractiveCredentials är inställt true på endast i demonstrationssyfte så att autentisering kan ske med hjälp av webbläsaren. För produktionsarbetsbelastningar bör du ta bort parametern.
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
);
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.
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);
Tips/Råd
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:
foreach (EmbeddingItem item in response.Value.Data)
{
List<float> embedding = item.Embedding.ToObjectFromJson<List<float>>();
Console.WriteLine($"Index: {item.Index}, Embedding: <{string.Join(", ", embedding)}>");
}
Viktigt!
Databehandling av inbäddningar i batchar kanske inte stöds för alla modeller. Till exempel, för Cohere-embed-v3-english-modellen behöver du 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_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);
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 för ett dokument som ska lagras i en vektordatabas:
var requestOptions = new EmbeddingsOptions()
{
Input = image_input,
InputType = EmbeddingInputType.DOCUMENT,
Model = "Cohere-embed-v3-english"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
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 requestOptions = new EmbeddingsOptions()
{
Input = image_input,
InputType = EmbeddingInputType.QUERY,
Model = "Cohere-embed-v3-english"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
Observera att inte alla inbäddningsmodeller stöder att ange inputtyp i förfrågan 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 bildinbäddning med Azure AI Foundry Models.
Förutsättningar
För att använda inbäddningsmodeller i din applikation behöver du:
Ett Azure-abonnemang. 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 Foundry-modeller om så är fallet.
Ett Azure AI Foundry-projekt. Den här typen av projekt hanteras under en Azure AI Foundry-resurs (kallades tidigare Azure AI Services-resurs). Om du inte har ett Foundry-projekt kan du läsa Skapa ett projekt för Azure AI Foundry (Foundry-projekt).
Slutpunktens URL.
Slutpunktens nyckel (om du väljer att använda API-nyckeln för autentisering).
Distribuering av en avbildningsmodell för bildinbäddningar. Om du inte redan har någon, läs Lägg till och konfigurera Foundry Models för att lägga till en inbäddningsmodell i resursen.
- Det här exemplet använder
Cohere-embed-v3-englishfrån Cohere.
- Det här exemplet använder
Använda bildinbä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 Microsoft Entra ID-stöd, skickar du din token i Authorization-rubriken med formatet Bearer <token>. Använd omfång 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>
Användning av Microsoft Entra-ID kan kräva ytterligare konfiguration i resursen för att bevilja åtkomst. Lär dig hur du konfigurerar nyckellös autentisering med Microsoft Entra-ID.
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..."
}
]
}
Tips/Råd
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. Till exempel, för Cohere-embed-v3-english-modellen behöver du 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 att ange inputtyp i förfrågan och i dessa fall returneras ett 422-fel.