Generieren von Einbettungen mit Azure OpenAI

Eine Einbettung ist ein Vektor von Gleitkommazahlen, der die semantische Bedeutung von Text darstellt. Ähnlicher Text erzeugt Vektoren, die eng miteinander verbunden sind, wodurch Einbettungen für die Vektorsuche, Empfehlungen, Klassifizierung und Clustering nützlich sind.

Voraussetzungen

  • Ein Azure-Abonnement. Erstellen Sie eine kostenlos , wenn Sie keins haben.
  • Eine Azure OpenAI-Ressource mit einer Einbettungsmodellbereitstellung.
  • Ihr Ressourcenendpunkt, wie zum Beispiel https://YOUR-RESOURCE-NAME.openai.azure.com.
  • Für die Microsoft Entra ID-Authentifizierung, eine Identität, der für die Azure OpenAI-Ressource die Rolle Cognitive Services OpenAI User zugewiesen ist. Weitere Informationen finden Sie unter Rollenbasierte Zugriffssteuerung für Azure OpenAI.
  • Die Azure CLI für die lokale Authentifizierung.
  • Der Laufzeit- und Paket-Manager für die von Ihnen ausgewählte Sprache.

Weitere sprachspezifische Einrichtungsanleitungen finden Sie unter Azure OpenAI unterstützte Programmiersprachen.

Der Wert model in jeder Anfrage ist der Bereitstellungsname Ihres Azure-Modells. Die Beispiele verwenden text-embedding-3-small; ersetzen Sie es, wenn Ihre Bereitstellung einen anderen Namen hat.

Ein Embedding generieren

Senden Sie Text an den Endpunkt der Einbettungen, und lesen Sie den Vektor aus dem ersten Element in der Antwort.

Die v1-Einbettungs-API unterstützt Microsoft Entra ID- und API-Schlüsselauthentifizierung. Microsoft Entra ID wird empfohlen, da dadurch keine langlebigen Anmeldeinformationen gespeichert werden. In den Beispielen in diesem Artikel wird Microsoft Entra ID verwendet.

Melden Sie sich für die lokale Entwicklung bei Azure an, bevor Sie ein SDK-Beispiel ausführen:

az login

DefaultAzureCredentialverwendet Ihre angemeldete Identität lokal und kann eine verwaltete Identität verwenden, wenn Ihre Anwendung in Azure ausgeführt wird.

Die API-Schlüsselauthentifizierung wird ebenfalls unterstützt. Informationen zur schlüsselbasierten Clientkonfiguration finden Sie unter Azure OpenAI v1-API-Leitfaden.

Installieren Sie die OpenAI- und Azure Identity-Pakete:

pip install openai azure-identity

Generieren Sie eine Einbettung, und drucken Sie deren Abmessungen:

from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
token_provider = get_bearer_token_provider(
	DefaultAzureCredential(), "https://ai.azure.com/.default"
)
openai = OpenAI(
	base_url=endpoint,
	api_key=token_provider,
)

# Generate one embedding vector.
response = openai.embeddings.create(
	model="text-embedding-3-small",
	input="The quick brown fox jumped over the lazy dog.",
)
print(f"Embedding dimensions: {len(response.data[0].embedding)}")
Embedding dimensions: <number>

Referenz: embeddings.create

Bewährte Methoden

Tip

Einbettungsanforderungen geben HTTP 400 zurück, wenn die Summe der Eingabetoken 300.000 überschreitet, auch wenn jede einzelne Eingabe unter dem Grenzwert pro Eingabe liegt. Teilen Sie große Batches in kleinere Anforderungen auf.

Überprüfen, ob Eingaben die maximale Länge nicht überschreiten

  • Die maximale Eingabelänge für die aktuellen Einbettungsmodelle beträgt 8.192 Token. Überprüfen Sie die einzelnen Eingaben, bevor Sie die Anforderung senden.
  • Wenn Sie ein Array von Eingaben in einer einzigen Einbettungsanforderung senden, beträgt die maximale Arraygröße 2.048.
  • Jede /embeddings Anforderung verfügt über einen 300.000-Token-Aggregatgrenzwert für alle Eingaben. Anforderungen oberhalb dieses Grenzwerts schlagen mit HTTP 400 fehl.
  • Halten Sie die Gesamtzahl der Token pro Minute unter dem Kontingent, das Ihrer Modellbereitstellung zugewiesen ist. Aktuelle Grenzwerte finden Sie unter Azure OpenAI-Kontingente und -Grenzwerte.

Problembehandlung

  • Bei einer 401-Antwort melden Sie sich erneut an und vergewissern Sie sich, dass das Zugriffstoken die richtige Audience verwendet.
  • Vergewissern Sie sich für eine 403-Antwort, dass Ihrer Identität für die Azure OpenAI-Ressource die Rolle Cognitive Services OpenAI User zugewiesen ist.
  • Vergewissern Sie sich bei einer Antwort vom Typ 404, dass der Endpunkt /openai/v1/ enthält und dass model einen gültigen Bereitstellungsnamen enthält.
  • Überprüfen Sie für eine 400 Antwort den Anforderungstext, die Tokenanzahl der einzelnen Eingaben, die Anzahl der Eingaben und die Aggregattokenanzahl.

Einschränkungen und Risiken

Einbettungsmodelle können in bestimmten Fällen unzuverlässig sein oder soziale Risiken darstellen. Sie können Schaden verursachen, wenn sie ohne Entschärfungen verwendet werden. Weitere Informationen zum verantwortungsvollen Umgang mit ihrer Nutzung finden Sie in den Inhalten "Verantwortungsvolle KI ".

Nächste Schritte