Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Bepaalde functies worden mogelijk niet ondersteund of hebben mogelijk beperkte mogelijkheden. Voor meer informatie, zie Aanvullende Gebruiksvoorwaarden voor Microsoft Azure Previews.
In dit artikel wordt uitgelegd hoe u de API voor het insluiten van afbeeldingen gebruikt met Azure AI Foundry-modellen.
Vereiste voorwaarden
Als u insluitmodellen in uw toepassing wilt gebruiken, hebt u het volgende nodig:
Een Azure-abonnement. Als je GitHub Models gebruikt, kun je je ervaring verbeteren en in het proces een Azure-abonnement aanmaken. Lees de upgrade van GitHub-modellen naar Azure AI Foundry-modellen als dat uw geval is.
Een Azure AI Foundry-project. Dit type project wordt beheerd onder een Azure AI Foundry-resource (voorheen Bekend als Azure AI Services-resource). Als u geen Foundry-project hebt, raadpleegt u Een project maken voor Azure AI Foundry (Foundry-projecten).
De URL van het eindpunt.
De sleutel van het eindpunt (als u ervoor kiest om API-sleutel te gebruiken voor verificatie).
Installeer het Azure AI-deductiepakket voor Python met de volgende opdracht:
pip install -U azure-ai-inference
Een implementatie van een afbeeldingsinsluitingsmodel. Als u er nog geen hebt, lees Foundry-modellen toevoegen en configureren om een embedmodel toe te voegen aan uw resource.
- In dit voorbeeld wordt
Cohere-embed-v3-englishgebruikgemaakt van Cohere.
- In dit voorbeeld wordt
Gebruik afbeeldingsinsluitingen
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
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"
)
Als u de resource hebt geconfigureerd voor ondersteuning voor Microsoft Entra ID , kunt u het volgende codefragment gebruiken om een client te maken.
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"
)
Insluitingen maken
Als u insluitingen van afbeeldingen wilt maken, moet u de afbeeldingsgegevens doorgeven als onderdeel van uw aanvraag. Afbeeldingsgegevens moeten de PNG-indeling hebben en als base64 zijn gecodeerd.
from azure.ai.inference.models import ImageEmbeddingInput
image_input= ImageEmbeddingInput.load(image_file="sample1.png", image_format="png")
response = client.embed(
input=[ image_input ],
)
Aanbeveling
Houd bij het maken van een aanvraag rekening met de invoerlimiet van het token voor het model. Als u grotere delen van tekst wilt insluiten, hebt u een segmenteringsstrategie nodig.
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
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)
Belangrijk
Het berekenen van embeddings in batches wordt mogelijk niet ondersteund voor alle modellen. Voor Cohere-embed-v3-english model moet u bijvoorbeeld stuk voor stuk één afbeelding verzenden.
Afbeeldingen en tekstparen insluiten
Sommige modellen kunnen insluitingen genereren op basis van afbeeldingen en tekstparen. In dit geval kunt u de image en text velden in de aanvraag gebruiken om de afbeelding en tekst door te geven aan het model. In het volgende voorbeeld ziet u hoe u insluitingen maakt voor afbeeldingen en tekstparen:
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 ],
)
Verschillende typen insluitingen maken
Sommige modellen kunnen meerdere insluitingen genereren voor dezelfde invoer, afhankelijk van hoe u deze wilt gebruiken. Met deze mogelijkheid kunt u nauwkeurigere insluitingen voor RAG-patronen ophalen.
In het volgende voorbeeld ziet u hoe u insluitingen maakt die worden gebruikt om een insluiting te maken voor een document dat wordt opgeslagen in een vectordatabase:
from azure.ai.inference.models import EmbeddingInputType
response = client.embed(
input=[ image_input ],
input_type=EmbeddingInputType.DOCUMENT,
)
Wanneer u aan een query werkt om een dergelijk document op te halen, kunt u het volgende codefragment gebruiken om de insluitingen voor de query te maken en de prestaties van het ophalen te maximaliseren.
from azure.ai.inference.models import EmbeddingInputType
response = client.embed(
input=[ image_input ],
input_type=EmbeddingInputType.QUERY,
)
U ziet dat niet alle ondersteuning voor insluitingsmodellen het invoertype in de aanvraag aangeeft en dat in die gevallen een 422-fout wordt geretourneerd.
Belangrijk
Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Bepaalde functies worden mogelijk niet ondersteund of hebben mogelijk beperkte mogelijkheden. Voor meer informatie, zie Aanvullende Gebruiksvoorwaarden voor Microsoft Azure Previews.
In dit artikel wordt uitgelegd hoe u de API voor het insluiten van afbeeldingen gebruikt met Azure AI Foundry-modellen.
Vereiste voorwaarden
Als u insluitmodellen in uw toepassing wilt gebruiken, hebt u het volgende nodig:
Een Azure-abonnement. Als je GitHub Models gebruikt, kun je je ervaring verbeteren en in het proces een Azure-abonnement aanmaken. Lees de upgrade van GitHub-modellen naar Azure AI Foundry-modellen als dat uw geval is.
Een Azure AI Foundry-project. Dit type project wordt beheerd onder een Azure AI Foundry-resource (voorheen Bekend als Azure AI Services-resource). Als u geen Foundry-project hebt, raadpleegt u Een project maken voor Azure AI Foundry (Foundry-projecten).
De URL van het eindpunt.
De sleutel van het eindpunt (als u ervoor kiest om API-sleutel te gebruiken voor verificatie).
Installeer de Azure-deductiebibliotheek voor JavaScript met de volgende opdracht:
npm install @azure-rest/ai-inference npm install @azure/core-auth npm install @azure/identityAls u Node.jsgebruikt, kunt u de afhankelijkheden configureren in 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" } }Importeer het volgende:
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";
Een implementatie van een afbeeldingsinsluitingsmodel. Als u er nog geen hebt, lees Het toevoegen en configureren van Foundry-modellen om een embeddingmodel toe te voegen voor uw resource.
- In dit voorbeeld wordt
Cohere-embed-v3-englishgebruikgemaakt van Cohere.
- In dit voorbeeld wordt
Gebruik afbeeldingsinsluitingen
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
const client = ModelClient(
"https://<resource>.services.ai.azure.com/models",
new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);
Als u de resource hebt geconfigureerd met ondersteuning voor Microsoft Entra ID , kunt u het volgende codefragment gebruiken om een client te maken.
const clientOptions = { credentials: { "https://cognitiveservices.azure.com" } };
const client = ModelClient(
"https://<resource>.services.ai.azure.com/models",
new DefaultAzureCredential()
clientOptions,
);
Insluitingen maken
Als u insluitingen van afbeeldingen wilt maken, moet u de afbeeldingsgegevens doorgeven als onderdeel van uw aanvraag. Afbeeldingsgegevens moeten de PNG-indeling hebben en als base64 zijn gecodeerd.
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",
}
});
Aanbeveling
Houd bij het maken van een aanvraag rekening met de invoerlimiet van het token voor het model. Als u grotere delen van tekst wilt insluiten, hebt u een segmenteringsstrategie nodig.
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Belangrijk
Het berekenen van embeddings in batches wordt mogelijk niet ondersteund voor alle modellen. Voor Cohere-embed-v3-english model moet u bijvoorbeeld stuk voor stuk één afbeelding verzenden.
Afbeeldingen en tekstparen insluiten
Sommige modellen kunnen insluitingen genereren op basis van afbeeldingen en tekstparen. In dit geval kunt u de image en text velden in de aanvraag gebruiken om de afbeelding en tekst door te geven aan het model. In het volgende voorbeeld ziet u hoe u insluitingen maakt voor afbeeldingen en tekstparen:
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",
}
});
Verschillende typen insluitingen maken
Sommige modellen kunnen meerdere insluitingen genereren voor dezelfde invoer, afhankelijk van hoe u deze wilt gebruiken. Met deze mogelijkheid kunt u nauwkeurigere insluitingen voor RAG-patronen ophalen.
In het volgende voorbeeld ziet u hoe u insluitingen maakt die worden gebruikt om een insluiting te maken voor een document dat wordt opgeslagen in een vectordatabase:
var response = await client.path("/images/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "document",
model: "Cohere-embed-v3-english",
}
});
Wanneer u aan een query werkt om een dergelijk document op te halen, kunt u het volgende codefragment gebruiken om de insluitingen voor de query te maken en de prestaties van het ophalen te maximaliseren.
var response = await client.path("/images/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "query",
model: "Cohere-embed-v3-english",
}
});
U ziet dat niet alle ondersteuning voor insluitingsmodellen het invoertype in de aanvraag aangeeft en dat in die gevallen een 422-fout wordt geretourneerd.
Opmerking
Het gebruik van insluitingen van afbeeldingen wordt alleen ondersteund met behulp van Python-, JavaScript-, C#- of REST-aanvragen.
Belangrijk
Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Bepaalde functies worden mogelijk niet ondersteund of hebben mogelijk beperkte mogelijkheden. Voor meer informatie, zie Aanvullende Gebruiksvoorwaarden voor Microsoft Azure Previews.
In dit artikel wordt uitgelegd hoe u de API voor het insluiten van afbeeldingen gebruikt met Azure AI Foundry-modellen.
Vereiste voorwaarden
Als u insluitmodellen in uw toepassing wilt gebruiken, hebt u het volgende nodig:
Een Azure-abonnement. Als je GitHub Models gebruikt, kun je je ervaring verbeteren en in het proces een Azure-abonnement aanmaken. Lees de upgrade van GitHub-modellen naar Azure AI Foundry-modellen als dat uw geval is.
Een Azure AI Foundry-project. Dit type project wordt beheerd onder een Azure AI Foundry-resource (voorheen Bekend als Azure AI Services-resource). Als u geen Foundry-project hebt, raadpleegt u Een project maken voor Azure AI Foundry (Foundry-projecten).
De URL van het eindpunt.
De sleutel van het eindpunt (als u ervoor kiest om API-sleutel te gebruiken voor verificatie).
Installeer het Azure AI-deductiepakket met de volgende opdracht:
dotnet add package Azure.AI.Inference --prereleaseAls je Entra ID gebruikt, heb je ook het volgende pakket nodig:
dotnet add package Azure.Identity
Een implementatie van een afbeeldingsinsluitingsmodel. Als u er nog geen hebt, lees Foundry-modellen toevoegen en configureren om een embedmodel toe te voegen aan uw resource.
- In dit voorbeeld wordt
Cohere-embed-v3-englishgebruikgemaakt van Cohere.
- In dit voorbeeld wordt
Gebruik afbeeldingsinsluitingen
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
ImageEmbeddingsClient client = new ImageEmbeddingsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Als u de resource hebt geconfigureerd met ondersteuning voor Microsoft Entra ID , kunt u het volgende codefragment gebruiken om een client te maken. U ziet dat includeInteractiveCredentials deze is ingesteld op true alleen voor demonstratiedoeleinden, zodat verificatie kan plaatsvinden met behulp van de webbrowser. Voor productieworkloads moet u de parameter verwijderen.
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
);
Insluitingen maken
Als u insluitingen van afbeeldingen wilt maken, moet u de afbeeldingsgegevens doorgeven als onderdeel van uw aanvraag. Afbeeldingsgegevens moeten de PNG-indeling hebben en als base64 zijn gecodeerd.
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);
Aanbeveling
Houd bij het maken van een aanvraag rekening met de invoerlimiet van het token voor het model. Als u grotere delen van tekst wilt insluiten, hebt u een segmenteringsstrategie nodig.
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
foreach (EmbeddingItem item in response.Value.Data)
{
List<float> embedding = item.Embedding.ToObjectFromJson<List<float>>();
Console.WriteLine($"Index: {item.Index}, Embedding: <{string.Join(", ", embedding)}>");
}
Belangrijk
Het berekenen van embeddings in batches wordt mogelijk niet voor alle modellen ondersteund. Voor Cohere-embed-v3-english model moet u bijvoorbeeld stuk voor stuk één afbeelding verzenden.
Afbeeldingen en tekstparen insluiten
Sommige modellen kunnen insluitingen genereren op basis van afbeeldingen en tekstparen. In dit geval kunt u de image en text velden in de aanvraag gebruiken om de afbeelding en tekst door te geven aan het model. In het volgende voorbeeld ziet u hoe u insluitingen maakt voor afbeeldingen en tekstparen:
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);
Verschillende typen insluitingen maken
Sommige modellen kunnen meerdere insluitingen genereren voor dezelfde invoer, afhankelijk van hoe u deze wilt gebruiken. Met deze mogelijkheid kunt u nauwkeurigere insluitingen voor RAG-patronen ophalen.
In het volgende voorbeeld ziet u hoe u insluitingen maakt voor een document dat wordt opgeslagen in een vectordatabase:
var requestOptions = new EmbeddingsOptions()
{
Input = image_input,
InputType = EmbeddingInputType.DOCUMENT,
Model = "Cohere-embed-v3-english"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
Wanneer u aan een query werkt om een dergelijk document op te halen, kunt u het volgende codefragment gebruiken om de insluitingen voor de query te maken en de prestaties van het ophalen te maximaliseren.
var requestOptions = new EmbeddingsOptions()
{
Input = image_input,
InputType = EmbeddingInputType.QUERY,
Model = "Cohere-embed-v3-english"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
U ziet dat niet alle ondersteuning voor insluitingsmodellen het invoertype in de aanvraag aangeeft en dat in die gevallen een 422-fout wordt geretourneerd.
Belangrijk
Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Bepaalde functies worden mogelijk niet ondersteund of hebben mogelijk beperkte mogelijkheden. Voor meer informatie, zie Aanvullende Gebruiksvoorwaarden voor Microsoft Azure Previews.
In dit artikel wordt uitgelegd hoe u de API voor het insluiten van afbeeldingen gebruikt met Azure AI Foundry-modellen.
Vereiste voorwaarden
Als u insluitmodellen in uw toepassing wilt gebruiken, hebt u het volgende nodig:
Een Azure-abonnement. Als je GitHub Models gebruikt, kun je je ervaring verbeteren en in het proces een Azure-abonnement aanmaken. Lees de upgrade van GitHub-modellen naar Azure AI Foundry-modellen als dat uw geval is.
Een Azure AI Foundry-project. Dit type project wordt beheerd onder een Azure AI Foundry-resource (voorheen Bekend als Azure AI Services-resource). Als u geen Foundry-project hebt, raadpleegt u Een project maken voor Azure AI Foundry (Foundry-projecten).
De URL van het eindpunt.
De sleutel van het eindpunt (als u ervoor kiest om API-sleutel te gebruiken voor verificatie).
Een implementatie van een afbeeldingsinsluitingsmodel. Als u er nog geen hebt, lees Het toevoegen en configureren van Foundry-modellen om een embeddingmodel toe te voegen voor uw resource.
- In dit voorbeeld wordt
Cohere-embed-v3-englishgebruikgemaakt van Cohere.
- In dit voorbeeld wordt
Gebruik afbeeldingsinsluitingen
Als u de tekst insluitingen wilt gebruiken, gebruikt u de route /images/embeddings die is toegevoegd aan uw basis-URL, samen met uw referenties die zijn aangegeven in api-key.
Authorization header wordt ook ondersteund met het formaat 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>
Als u de resource hebt geconfigureerd met ondersteuning voor Microsoft Entra ID, geeft u het token mee in de Authorization header in het formaat Bearer <token>. Gebruik scope 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>
Het gebruik van Microsoft Entra-id vereist mogelijk extra configuratie in uw resource om toegang te verlenen. Meer informatie over het configureren van sleutelloze verificatie met Microsoft Entra-id.
Insluitingen maken
Als u insluitingen van afbeeldingen wilt maken, moet u de afbeeldingsgegevens doorgeven als onderdeel van uw aanvraag. Afbeeldingsgegevens moeten de PNG-indeling hebben en als base64 zijn gecodeerd.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
]
}
Aanbeveling
Houd bij het maken van een aanvraag rekening met de invoerlimiet van het token voor het model. Als u grotere delen van tekst wilt insluiten, hebt u een segmenteringsstrategie nodig.
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
{
"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
}
}
Belangrijk
Het berekenen van embeddings in batches wordt mogelijk niet ondersteund voor alle modellen. Voor Cohere-embed-v3-english model moet u bijvoorbeeld stuk voor stuk één afbeelding verzenden.
Afbeeldingen en tekstparen insluiten
Sommige modellen kunnen insluitingen genereren op basis van afbeeldingen en tekstparen. In dit geval kunt u de image en text velden in de aanvraag gebruiken om de afbeelding en tekst door te geven aan het model. In het volgende voorbeeld ziet u hoe u insluitingen maakt voor afbeeldingen en tekstparen:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh...",
"text": "A photo of a cat"
}
]
}
Verschillende typen insluitingen maken
Sommige modellen kunnen meerdere insluitingen genereren voor dezelfde invoer, afhankelijk van hoe u deze wilt gebruiken. Met deze mogelijkheid kunt u nauwkeurigere insluitingen voor RAG-patronen ophalen.
In het volgende voorbeeld ziet u hoe u insluitingen maakt die worden gebruikt om een insluiting te maken voor een document dat wordt opgeslagen in een vectordatabase:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "document"
}
Wanneer u aan een query werkt om een dergelijk document op te halen, kunt u het volgende codefragment gebruiken om de insluitingen voor de query te maken en de prestaties van het ophalen te maximaliseren.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "query"
}
U ziet dat niet alle ondersteuning voor insluitingsmodellen het invoertype in de aanvraag aangeeft en dat in die gevallen een 422-fout wordt geretourneerd.