Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Azure OpenAI Embedding-Fähigkeit verbindet sich mit einem Einbettungsmodell, das in Ihrem Azure OpenAI-Ressourcen - oder Azure AI Foundry-Projekt bereitgestellt wird, um Einbettungen während der Indizierung zu generieren. Ihre Daten werden im geografischen Raum verarbeitet, in dem Ihr Modell bereitgestellt wird.
Der Assistent zum Importieren von Daten (neu) im Azure-Portal verwendet die Azure OpenAI Embedding-Fähigkeit zum Vektorisieren von Inhalten. Sie können den Assistenten ausführen und das generierte Skillset überprüfen, um zu sehen, wie der Assistent die Fähigkeit zum Einbetten von Modellen erstellt.
Note
Diese Fähigkeit ist an Azure OpenAI gebunden und wird zum bestehenden Azure OpenAI Standard-Preis berechnet.
Prerequisites
Eine Azure OpenAI in Azure AI Foundry Models-Ressource oder Azure AI Foundry-Projekt.
Ihre Azure OpenAI-Ressource muss über eine benutzerdefinierte Unterdomäne verfügen, z
https://<resourcename>.openai.azure.com
. B. . Wenn Sie die Ressource im Azure-Portal erstellt haben, wurde diese Unterdomäne während der Ressourceneinrichtung automatisch generiert.Ihr Azure AI Foundry-Projekt sollte über einen Azure AI Services-Endpunkt mit der
cognitiveservices.azure.com
Domäne verfügen. Nachdem Sie ein Azure OpenAI-Einbettungsmodell im Projekt bereitgestellt haben, müssen Sie den Endpunkt so ändern, dass er dieopenai.azure.com
Domäne verwendet. Ändern Sie z. B. den Endpunkt vonhttps://<resourcename>.cognitiveservices.azure.com
" inhttps://<resourcename>.openai.azure.com
". Anschließend können Sie diesen aktualisierten Endpunkt für dieresourceUri
Eigenschaft in dieser Fähigkeit verwenden.
Ein in Ihre Ressource oder Ihr Projekt bereitgestelltes Azure OpenAI-Einbettungsmodell .
@odata.type
Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill
Datenlimits
Die maximale Größe einer Texteingabe sollte 8.000 Token betragen. Übersteigt die Eingabe das zulässige Maximum, gibt das Modell einen Fehler für eine ungültige Anfrage aus. Weitere Informationen finden Sie unter dem Schlüsselkonzept Tokens in der Azure OpenAI Dokumentation. Erwägen Sie, den Skill „Textaufteilung“ zu verwenden, wenn Sie Datenblöcke benötigen.
Skillparameter
Bei den Parametern wird zwischen Groß- und Kleinschreibung unterschieden.
Inputs | Description |
---|---|
resourceUri |
Der URI des Modellanbieters. Dieser Parameter unterstützt nur URLs mit der openai.azure.com Domäne, z https://<resourcename>.openai.azure.com . B. . Wenn Ihr Azure OpenAI-Endpunkt über eine URL mit der cognitiveservices.azure.com Domäne verfügt, z https://<resourcename>.cognitiveservices.azure.com . B. , müssen Sie eine benutzerdefinierte Unterdomäne für openai.azure.com die Azure OpenAI-Ressource erstellen und stattdessen verwenden https://<resourcename>.openai.azure.com . Dieses Feld ist erforderlich, wenn Ihre Azure OpenAI-Ressource hinter einem privaten Endpunkt bereitgestellt wird oder die VNet-Integration (Virtual Network) verwendet. |
apiKey |
Der geheime Schlüssel, mit dem auf das Modell zugegriffen wird. Wenn Sie einen Schlüssel angeben, lassen Sie authIdentity leer. Wenn Sie sowohl die apiKey als auch die authIdentity einstellen, wird die apiKey für die Verbindung verwendet. |
deploymentId |
Der Name des bereitgestellten Azure OpenAI-Einbettungsmodells. Das Modell sollte ein Einbettungsmodell sein, z. B. text-embedding-ada-002. Siehe die Liste der Azure OpenAI-Modelle für unterstützte Modelle. |
authIdentity |
Eine benutzerverwaltete Identität, die vom Suchdienst für die Verbindung zu Azure OpenAI verwendet wird. Sie können entweder eine system- oder eine benutzerverwaltete Identität verwenden. Wenn Sie eine vom System verwaltete Identität verwenden möchten, lassen Sie sie leerapiKey .authIdentity Die vom System verwaltete Identität wird automatisch verwendet. Eine verwaltete Identität muss über Cognitive Services OpenAI User Berechtigungen verfügen, um Text an Azure OpenAI zu senden. |
modelName |
Diese Eigenschaft ist erforderlich, wenn Ihr Skillset mithilfe der REST-API 2024-05-01 oder 2024-07-01 erstellt wird. Legen Sie diese Eigenschaft auf den Bereitstellungsnamen eines Azure OpenAI-Einbettungsmodells fest, das auf dem durch resourceUri angegebenen Anbieter bereitgestellt und über deploymentId identifiziert wird. Derzeit werden die Werte text-embedding-ada-002 , text-embedding-3-large und text-embedding-3-small unterstützt. |
dimensions |
Optional, beginnend mit der REST-API 2024-05-01-Preview, die Dimensionen von Einbettungen, die Sie generieren möchten, vorausgesetzt, das Modell unterstützt einen Bereich von Dimensionen. Unterstützte Bereiche sind unten aufgeführt und gelten derzeit nur für die Modellreihe "text-embedding-3". Der Standardwert ist die maximale Größe für jedes Modell. Bei Skillsets, die mit früheren REST-API-Versionen erstellt wurden, die auf die 2023-10-01-Vorschau zurückreichen, werden Dimensionen auf 1536 festgelegt. Achten Sie beim Festlegen der Dimensionseigenschaft auf eine Fähigkeit darauf, die dimensions Eigenschaft für die Vektorfelddefinition auf denselben Wert festzulegen. |
Unterstützte Dimensionen von modelName
Die unterstützten Dimensionen für eine Azure OpenAI Embedding-Fähigkeit hängen vom konfigurierten modelName
ab.
modelName |
Mindestmaße | Maximale Abmessungen |
---|---|---|
text-embedding-ada-002 | 1536 | 1536 |
text-embedding-3-large | 1 | 3072 |
text-embedding-3-small | 1 | 1536 |
Skilleingaben
Input | Description |
---|---|
text |
Der zu vektorisierende Eingabetext. Wenn Sie Datenblöcke verwenden, ist die Quelle möglicherweise /document/pages/* . |
Skillausgaben
Output | Description |
---|---|
embedding |
Vektorisierte Einbettung für den Eingabetext. |
Beispieldefinition
Nehmen wir einen Datensatz mit den folgenden Feldern:
{
"content": "Microsoft released Windows 10."
}
Dann könnte Ihre Kompetenzdefinition wie folgt aussehen:
{
"@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
"description": "Connects a deployed embedding model.",
"resourceUri": "https://my-demo-openai-eastus.openai.azure.com/",
"deploymentId": "my-text-embedding-ada-002-model",
"modelName": "text-embedding-ada-002",
"dimensions": 1536,
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "embedding"
}
]
}
Beispielausgabe
Für den gegebenen Eingabetext wird eine vektorisierte Einbettungsausgabe erzeugt.
{
"embedding": [
0.018990106880664825,
-0.0073809814639389515,
....
0.021276434883475304,
]
}
Die Ausgabe befindet sich im Speicher. Um diese Ausgabe an ein Feld im Suchindex zu senden, müssen Sie ein outputFieldMapping definieren, die die vektorisierte Einbettungsausgabe (ein Array) einem Vektorfeld zuordnet. Wenn sich die Skillausgabe im Einbettungs-Knoten des Dokuments befindet und content_vector das Feld im Suchindex ist, sollte das outputFieldMapping im Index wie folgt aussehen:
"outputFieldMappings": [
{
"sourceFieldName": "/document/embedding/*",
"targetFieldName": "content_vector"
}
]
Bewährte Methoden
Im Folgenden sind einige bewährte Methoden aufgeführt, die Sie bei der Verwendung dieser Skills berücksichtigen müssen:
Wenn Sie ihr Azure OpenAI-TPM-Limit (Token pro Minute) erreichen, sollten Sie die Kontingentbeschränkungen berücksichtigen, damit Sie entsprechend adressieren können. Weitere Informationen zur Leistung Ihrer Azure OpenAI-Instanzleistung finden Sie in der Azure OpenAI-Überwachungsdokumentation.
Die Azure OpenAI-Einbettungsmodellbereitstellung, die Sie für diesen Skill verwenden, sollte idealerweise von der Bereitstellung getrennt sein, die für andere Anwendungsfälle verwendet wird, einschließlich der Abfragevektorisierung. So kann jede Bereitstellung auf den jeweiligen Anwendungsfall zugeschnitten werden, was zu einer optimierten Leistung führt und die Identifizierung des Datenverkehrs durch den Indexer und die Aufrufe zur Indexeinbettung erleichtert.
Ihre Azure OpenAI-Instanz sollte sich in der gleichen Region oder zumindest in der Nähe der Region befinden, in der Ihr KI-Suchdienst gehostet wird. Dies verringert die Latenzzeit und verbessert die Geschwindigkeit der Datenübertragung zwischen den Diensten.
Wenn Ihr Grenzwert für Azure OpenAI TPM (Token pro Minute) höher ist als in der Dokumentation für Kontingente und Grenzen angegeben, öffnen Sie eine Supportanfrage an das Azure KI-Suche-Team, damit dieser entsprechend angepasst werden kann. Dies trägt dazu bei, dass Ihr Indizierungsprozess nicht unnötig durch den dokumentierten Standard-TPM-Grenzwert verlangsamt wird, wenn Sie höhere Grenzwerte haben.
Beispiele und funktionierende Codebeispiele für diese Fähigkeit finden Sie unter den folgenden Links:
Fehler und Warnungen
Condition | Result |
---|---|
Null oder ungültiger URI | Error |
Null oder ungültige deploymentID | Error |
Text ist leer | Warning |
Text ist größer als 8.000 Token | Error |