Generieren von Bildeinbettungen mit dem Azure KI-Modellinferenzdienst
Wichtig
Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
In diesem Artikel wird erläutert, wie Sie die Bildeinbettungs-API bei Modellen verwenden, die im Azure KI-Modellinferenzdienst in Azure AI Foundry bereitgestellt werden.
Voraussetzungen
Um Einbettungsmodelle in Ihrer Anwendung zu verwenden, benötigen Sie Folgendes:
Ein Azure-Abonnement. Wenn Sie GitHub-Modelle verwenden, können Sie Ihre Erfahrung upgraden und während dem Prozess ein Azure-Abonnement erstellen. Lesen Sie in diesem Fall Upgrade von GitHub-Modellen auf die Azure KI-Modellinferenz.
Eine Azure KI Services-Ressource. Weitere Informationen finden Sie unter Erstellen einer Azure KI Services-Ressource.
Endpunkt-URL und -Schlüssel
Ein bereitgestelltes Bildeinbettungsmodell. Wenn Sie kein Modell haben, lesen Sie den Artikel Hinzufügen und Konfigurieren von Modellen für Azure KI Services, um Ihrer Ressource ein Einbettungsmodell hinzuzufügen.
- In diesem Beispiel wird
Cohere-embed-v3-english
-Modell von Cohere verwendet.
- In diesem Beispiel wird
Installieren Sie das Azure KI-Inferenzpaket mit dem folgenden Befehl:
pip install -U azure-ai-inference
Tipp
Lesen Sie mehr über das Azure KI-Inferenzpaket und die zugehörige Referenz.
Verwenden von Einbettungen
Erstellen Sie als Erstes einen Client zum Nutzen des Modells. Der folgende Code verwendet eine Endpunkt-URL und einen Schlüssel, die in Umgebungsvariablen gespeichert sind.
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"
)
Wenn Sie die Ressource mit Unterstützung vonMicrosoft Entra ID konfiguriert haben, können Sie den folgenden Codeschnipsel verwenden, um einen Client zu erstellen.
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"
)
Erstellen von Einbettungen
Um Bildeinbettungen zu erstellen, müssen Sie die Bilddaten als Teil Ihrer Anforderung übergeben. Bilddaten sollten im PNG-Format mit Base64-Codierung vorliegen.
from azure.ai.inference.models import ImageEmbeddingInput
image_input= ImageEmbeddingInput.load(image_file="sample1.png", image_format="png")
response = model.embed(
input=[ image_input ],
)
Tipp
Berücksichtigen Sie beim Erstellen einer Anforderung das Tokeneingabelimit für das Modell. Wenn Sie größere Textmengen einbetten müssen, benötigen Sie eine Segmentierungsstrategie.
Die Antwort lautet wie folgt, wobei Sie die Nutzungsstatistiken des Modells sehen können:
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)
Wichtig
Die Stapelverarbeitung von Einbettungen wird möglicherweise nicht für alle Modelle unterstützt. Für das cohere-embed-v3
-Modell muss z. B. jeweils nur ein Bild gesendet werden.
Einbetten von Bild- und Textpaaren
Einige Modelle können Einbettungen aus Bild- und Textpaaren generieren. In diesem Fall können Sie die Felder image
und text
in der Anforderung verwenden, um das Bild und den Text an das Modell zu übergeben. Das folgende Beispiel zeigt, wie Einbettungen für Bild- und Textpaare erstellt werden:
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 ],
)
Erstellen verschiedener Typen von Einbettungen
Einige Modelle können mehrere Einbettungen für dieselbe Eingabe generieren, je nachdem, welche Verwendung geplant ist. Mit dieser Funktion können Sie genauere Einbettungen für RAG-Muster abrufen.
Das folgende Beispiel zeigt, wie Einbettungen erstellt werden, die zum Erstellen einer Einbettung für ein Dokument verwendet werden, das in einer Vektordatenbank gespeichert wird:
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=[ image_input ],
input_type=EmbeddingInputType.DOCUMENT,
)
Wenn Sie an einer Abfrage arbeiten, um ein solches Dokument abzurufen, können Sie den folgenden Codeschnipsel verwenden, um die Einbettungen für die Abfrage zu erstellen und die Abrufleistung zu maximieren.
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=[ image_input ],
input_type=EmbeddingInputType.QUERY,
)
Beachten Sie, dass nicht alle Einbettungsmodelle die Angabe des Eingabetyps in der Anforderung unterstützen. In diesen Fällen wird ein 422-Fehler zurückgegeben.
Wichtig
Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
In diesem Artikel wird erläutert, wie Sie die Bildeinbettungs-API bei Modellen verwenden, die im Azure KI-Modellinferenzdienst in Azure AI Foundry bereitgestellt werden.
Voraussetzungen
Um Einbettungsmodelle in Ihrer Anwendung zu verwenden, benötigen Sie Folgendes:
Ein Azure-Abonnement. Wenn Sie GitHub-Modelle verwenden, können Sie Ihre Erfahrung upgraden und während dem Prozess ein Azure-Abonnement erstellen. Lesen Sie in diesem Fall Upgrade von GitHub-Modellen auf die Azure KI-Modellinferenz.
Eine Azure KI Services-Ressource. Weitere Informationen finden Sie unter Erstellen einer Azure KI Services-Ressource.
Endpunkt-URL und -Schlüssel
Ein bereitgestelltes Bildeinbettungsmodell. Wenn Sie kein Modell haben, lesen Sie den Artikel Hinzufügen und Konfigurieren von Modellen für Azure KI Services, um Ihrer Ressource ein Einbettungsmodell hinzuzufügen.
- In diesem Beispiel wird
Cohere-embed-v3-english
-Modell von Cohere verwendet.
- In diesem Beispiel wird
Installieren Sie die Azure KI-Inferenzbibliothek für JavaScript mit dem folgenden Befehl:
npm install @azure-rest/ai-inference
Tipp
Lesen Sie mehr über das Azure KI-Inferenzpaket und die zugehörige Referenz.
Verwenden von Einbettungen
Erstellen Sie als Erstes einen Client zum Nutzen des Modells. Der folgende Code verwendet eine Endpunkt-URL und einen Schlüssel, die in Umgebungsvariablen gespeichert sind.
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"
);
Wenn Sie die Ressource mit Unterstützung vonMicrosoft Entra ID konfiguriert haben, können Sie den folgenden Codeschnipsel verwenden, um einen Client zu erstellen.
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"
);
Erstellen von Einbettungen
Um Bildeinbettungen zu erstellen, müssen Sie die Bilddaten als Teil Ihrer Anforderung übergeben. Bilddaten sollten im PNG-Format mit Base64-Codierung vorliegen.
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 } ],
}
});
Tipp
Berücksichtigen Sie beim Erstellen einer Anforderung das Tokeneingabelimit für das Modell. Wenn Sie größere Textmengen einbetten müssen, benötigen Sie eine Segmentierungsstrategie.
Die Antwort lautet wie folgt, wobei Sie die Nutzungsstatistiken des Modells sehen können:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Wichtig
Die Stapelverarbeitung von Einbettungen wird möglicherweise nicht für alle Modelle unterstützt. Für das cohere-embed-v3
-Modell muss z. B. jeweils nur ein Bild gesendet werden.
Einbetten von Bild- und Textpaaren
Einige Modelle können Einbettungen aus Bild- und Textpaaren generieren. In diesem Fall können Sie die Felder image
und text
in der Anforderung verwenden, um das Bild und den Text an das Modell zu übergeben. Das folgende Beispiel zeigt, wie Einbettungen für Bild- und Textpaare erstellt werden:
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
}
]
}
});
Erstellen verschiedener Typen von Einbettungen
Einige Modelle können mehrere Einbettungen für dieselbe Eingabe generieren, je nachdem, welche Verwendung geplant ist. Mit dieser Funktion können Sie genauere Einbettungen für RAG-Muster abrufen.
Das folgende Beispiel zeigt, wie Einbettungen erstellt werden, die zum Erstellen einer Einbettung für ein Dokument verwendet werden, das in einer Vektordatenbank gespeichert wird:
var response = await client.path("/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "document",
}
});
Wenn Sie an einer Abfrage arbeiten, um ein solches Dokument abzurufen, können Sie den folgenden Codeschnipsel verwenden, um die Einbettungen für die Abfrage zu erstellen und die Abrufleistung zu maximieren.
var response = await client.path("/embeddings").post({
body: {
input: [ { image: image_data_base64 } ],
input_type: "query",
}
});
Beachten Sie, dass nicht alle Einbettungsmodelle die Angabe des Eingabetyps in der Anforderung unterstützen. In diesen Fällen wird ein 422-Fehler zurückgegeben.
Hinweis
Die Verwendung von Bildeinbettungen wird nur bei Verwendung von Python-, JavaScript- oder REST-Anforderungen unterstützt.
Hinweis
Die Verwendung von Bildeinbettungen wird nur bei Verwendung von Python-, JavaScript- oder REST-Anforderungen unterstützt.
Wichtig
Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
In diesem Artikel wird erläutert, wie Sie die Bildeinbettungs-API bei Modellen verwenden, die im Azure KI-Modellinferenzdienst in Azure AI Foundry bereitgestellt werden.
Voraussetzungen
Um Einbettungsmodelle in Ihrer Anwendung zu verwenden, benötigen Sie Folgendes:
Ein Azure-Abonnement. Wenn Sie GitHub-Modelle verwenden, können Sie Ihre Erfahrung upgraden und während dem Prozess ein Azure-Abonnement erstellen. Lesen Sie in diesem Fall Upgrade von GitHub-Modellen auf die Azure KI-Modellinferenz.
Eine Azure KI Services-Ressource. Weitere Informationen finden Sie unter Erstellen einer Azure KI Services-Ressource.
Endpunkt-URL und -Schlüssel
Ein bereitgestelltes Bildeinbettungsmodell. Wenn Sie kein Modell haben, lesen Sie den Artikel Hinzufügen und Konfigurieren von Modellen für Azure KI Services, um Ihrer Ressource ein Einbettungsmodell hinzuzufügen.
- In diesem Beispiel wird
Cohere-embed-v3-english
-Modell von Cohere verwendet.
- In diesem Beispiel wird
Verwenden von Einbettungen
Um die Texteinbettungen zu nutzen, verwenden Sie die Route /images/embeddings
, die an Ihre Basis-URL angefügt ist, zusammen mit den in api-key
angegebenen Anmeldeinformationen. Der Header Authorization
wird auch im Format Bearer <key>
unterstützt.
POST https://<resource>.services.ai.azure.com/models/images/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
api-key: <key>
Wenn Sie die Ressource mit Unterstützung von Microsoft Entra ID konfiguriert haben, übergeben Sie das Token im Authorization
-Header:
POST https://<resource>.services.ai.azure.com/models/images/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
Authorization: Bearer <token>
Erstellen von Einbettungen
Um Bildeinbettungen zu erstellen, müssen Sie die Bilddaten als Teil Ihrer Anforderung übergeben. Bilddaten sollten im PNG-Format mit Base64-Codierung vorliegen.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
]
}
Tipp
Berücksichtigen Sie beim Erstellen einer Anforderung das Tokeneingabelimit für das Modell. Wenn Sie größere Textmengen einbetten müssen, benötigen Sie eine Segmentierungsstrategie.
Die Antwort lautet wie folgt, wobei Sie die Nutzungsstatistiken des Modells sehen können:
{
"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
}
}
Wichtig
Die Stapelverarbeitung von Einbettungen wird möglicherweise nicht für alle Modelle unterstützt. Für das cohere-embed-v3
-Modell muss z. B. jeweils nur ein Bild gesendet werden.
Einbetten von Bild- und Textpaaren
Einige Modelle können Einbettungen aus Bild- und Textpaaren generieren. In diesem Fall können Sie die Felder image
und text
in der Anforderung verwenden, um das Bild und den Text an das Modell zu übergeben. Das folgende Beispiel zeigt, wie Einbettungen für Bild- und Textpaare erstellt werden:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh...",
"text": "A photo of a cat"
}
]
}
Erstellen verschiedener Typen von Einbettungen
Einige Modelle können mehrere Einbettungen für dieselbe Eingabe generieren, je nachdem, welche Verwendung geplant ist. Mit dieser Funktion können Sie genauere Einbettungen für RAG-Muster abrufen.
Das folgende Beispiel zeigt, wie Einbettungen erstellt werden, die zum Erstellen einer Einbettung für ein Dokument verwendet werden, das in einer Vektordatenbank gespeichert wird:
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "document"
}
Wenn Sie an einer Abfrage arbeiten, um ein solches Dokument abzurufen, können Sie den folgenden Codeschnipsel verwenden, um die Einbettungen für die Abfrage zu erstellen und die Abrufleistung zu maximieren.
{
"model": "Cohere-embed-v3-english",
"input": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
}
],
"input_type": "query"
}
Beachten Sie, dass nicht alle Einbettungsmodelle die Angabe des Eingabetyps in der Anforderung unterstützen. In diesen Fällen wird ein 422-Fehler zurückgegeben.