Teilen über


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:

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:

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:

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.