Freigeben über


AML-Skill in einer Anreicherungspipeline von Azure AI Search

Wichtig

Die Unterstützung für Indexerverbindungen mit dem Azure AI Studio-Modellkatalog befindet sich in der öffentlichen Vorschau unter zusätzlichen Nutzungsbedingungen. Vorschau-REST-APIs unterstützen diese Fähigkeit.

Mit dem AML-Skill können Sie die KI-Anreicherung durch ein benutzerdefiniertes AML-Modell (Azure Machine Learning) erweitern. Nachdem ein AML-Modell trainiert und bereitgestellt wurde, integriert ein AML-Skill dieses in die KI-Anreicherung.

Wie andere integrierte Skills weist ein AML-Skill Eingaben und Ausgaben auf. Die Eingaben werden als JSON-Objekt an den bereitgestellten AML-Online-Endpunkt gesendet, das eine JSON-Nutzlast als Antwort zusammen mit einem Erfolgsstatuscode ausgibt. Ihre Daten werden im geografischen Raum verarbeitet, in dem Ihr Modell bereitgestellt wird. Es wird erwartet, dass die Antwort die von Ihrem Skill AML angegebenen Ergebnisse aufweist. Jede andere Antwort gilt als Fehler und es werden keine Anreicherung durchgeführt.

Die AML-Fähigkeit kann mit der stabilen API-Version 2024-07-01 oder der 2024-05-01-Preview-API-Version für Verbindungen mit dem Modellkatalog in Azure AI Studio aufgerufen werden.

Ab 2024-05-01-Preview-REST-API und in der Azure-Portal (die auch auf die Vorschau 2024-05-01 ausgerichtet ist), hat Azure AI Search den Azure AI Studio-Modellkatalog-Katalogvektorizer für Abfragezeitverbindungen zum Modellkatalog in Azure AI Studio eingeführt. Wenn Sie diesen Vektorizer für Abfragen verwenden möchten, ist die AML-Fähigkeit das Indizierungs-Gegenstück zum Generieren von Einbettungen mithilfe eines Modells im Azure AI Studio-Modellkatalog.

Während der Indizierung kann die AML-Fähigkeit eine Verbindung mit dem Modellkatalog herstellen, um Vektoren für den Index zu generieren. Abfragen können zur Abfragezeit einen Vektorizer verwenden, um eine Verbindung mit demselben Modell herzustellen, um Textzeichenfolgen für eine Vektorabfrage zu vektorisieren. In diesem Workflow sollten die AML-Kenntnisse und der Modellkatalogvektorizer zusammen verwendet werden, damit Sie dasselbe Einbettungsmodell sowohl für die Indizierung als auch für Abfragen verwenden. Weitere Informationen zu diesem Workflow finden Sie unter Implementieren der integrierten Vektorisierung mithilfe von Modellen aus Azure AI Studio .

Hinweis

Der Indexer versucht zwei Mal, bestimmte Standard-HTTP-Statuscodes, die vom AML-Onlineendpunkt zurückgegeben werden, erneut zu ermitteln. Diese HTTP-Statuscodes lauten:

  • 503 Service Unavailable
  • 429 Too Many Requests

Voraussetzungen

@odata.type

Microsoft.Skills.Custom.AmlSkill

Skillparameter

Bei den Parametern wird zwischen Groß- und Kleinschreibung unterschieden. Welche Parameter Sie verwenden, hängt davon ab, welche Authentifizierung der AML-Onlineendpunkt ggf. erfordert

Parametername Beschreibung
uri (Erforderlich für die Schlüsselauthentifizierung) Der Bewertungs-URI des AML-Onlineendpunkts, an den die JSON-Nutzlast gesendet wird. Nur das HTTPS-URI-Schema ist zulässig.
key (Erforderlich für Schlüsselauthentifizierung) Der Schlüssel für den AML-Online-Endpunkt.
resourceId (Erforderlich für Tokenauthentifizierung). Die Azure Resource Manager-Ressourcen-ID des AML-Onlinenendpunkts. Er sollte im Format „subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/onlineendpoints/{endpoint_name}“ vorliegen.
region (Optional für Tokenauthentifizierung). Die Region, in der der AML-Onlineendpunkt bereitgestellt wird.
timeout (Optional) Wenn angegeben, wird damit das Zeitlimit für den HTTP-Client angegeben, der den API-Aufruf durchführt. Es muss als XSD-Wert „dayTimeDuration“ formatiert sein (eine eingeschränkte Teilmenge eines ISO 8601-Zeitwerts). Zum Beispiel PT60S für 60 Sekunden. Wenn kein Wert festgelegt ist, wird ein Standardwert von 30 Sekunden ausgewählt. Das Zeitlimit kann auf maximal 230 Sekunden und mindestens 1 Sekunde festgelegt werden.
degreeOfParallelism (Optional) Wenn angegeben, wird die Anzahl der Aufrufe angezeigt, die der Indexer parallel zum von Ihnen bereitgestellten Endpunkt vornimmt. Sie können diesen Wert verringern, wenn Ihr Endpunkt unter zu hoher Anforderungslast fehlschlägt. Sie können ihn auslösen, wenn Ihr Endpunkt mehr Anforderungen annehmen kann und Sie eine Erhöhung der Leistung des Indexers wünschen. Wenn kein Wert festgelegt ist, wird ein Standardwert von 5 verwendet. „degreeOfParallelism“ kann auf maximal 10 und mindestens 1 festgelegt werden.

Zu verwendende Skillparameter

Welche AML-Skillparameter erforderlich sind, hängt davon ab, welche Authentifizierung der AML-Onlineendpunkt ggf. erfordert. AML-Onlineendpunkte bieten zwei Authentifizierungsoptionen:

  • Schlüsselbasierte Authentifizierung. Ein statischer Schlüssel wird bereitgestellt, um Bewertungsanforderungen von AML-Skills zu authentifizieren.
    • Verwenden Sie die Parameter uri und key.
  • Tokenbasierte Authentifizierung. Der AML-Onlineendpunkt wird mithilfe der tokenbasierten Authentifizierungbereitgestellt. Die verwaltete Identität des Azure KI Suchdienstes muss aktiviert sein. Die AML-Fähigkeit verwendet dann die verwaltete Identität des Diensts, um sich beim AML-Onlineendpunkt zu authentifizieren, ohne dass statische Schlüssel erforderlich sind. Der Identität muss die Rolle „Besitzer“ oder „Mitwirkender“ zugewiesen werden.
    • Verwenden Sie den resourceId-Parameter.
    • Wenn sich der Suchdienst in einer anderen Region als der AML-Arbeitsbereich befindet, verwenden Sie den Parameter region, um die Region festzulegen, in der der AML-Onlineendpunkt bereitgestellt wurde

Skilleingaben

Es gibt keine „vordefinierten“ Eingaben für diese Qualifikation. Sie können mindestens ein Feld auswählen, das zum Zeitpunkt der Ausführung dieses Skills bereits verfügbar ist, da Eingaben und die an den AML-Onlineendpunkt gesendete JSON-Nutzlast unterschiedliche Felder aufweisen.

Skillausgaben

Es gibt keine „vordefinierten“ Ausgaben für diese Qualifikation. Abhängig von der Antwort, die Ihr AML-Onlineendpunkt zurückgibt, fügen Sie Ausgabefelder hinzu, damit sie von der JSON-Antwort übernommen werden können.

Beispieldefinition

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A sample model that detects the language of sentence",
    "uri": "https://contoso.count-things.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

Beispiel für eine Eingabe-JSON-Struktur

Diese JSON-Struktur stellt die Nutzlast dar, die an Ihren AML-Onlineendpunkt gesendet wird. Die Felder der Struktur auf oberster Ebene entsprechen den im Abschnitt inputs der Skilldefinition angegebenen „Namen“. Der Wert dieser Felder ergibt sich aus der source dieser Felder (die aus einem Feld im Dokument oder möglicherweise aus einer anderen Qualifikation stammen kann)

{
  "text": "Este es un contrato en Inglés"
}

Beispiel für eine Ausgabe-JSON-Struktur

Die „Ausgabe“ entspricht der Antwort, die von Ihrem AML-Onlineendpunkt zurückgegebenen wird. Der AML-Onlineendpunkt sollte nur eine JSON-Nutzlast zurückgeben (verifiziert durch Untersuchen des Content-Type-Antwortheaders) und sollte ein Objekt sein, bei dem die Felder Anreicherungen sind, die mit den „Namen“ in output übereinstimmen und deren Wert als die Anreicherung angesehen wird.

{
    "detected_language_code": "es"
}

Definition des Inlinestrukturierungsbeispiels

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A sample model that detects the language of sentence",
    "uri": "https://contoso.count-things.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "shapedText",
        "sourceContext": "/document",
        "inputs": [
            {
              "name": "content",
              "source": "/document/content"
            }
        ]
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

JSON-Eingabestruktur der Inlinestrukturierung

{
  "shapedText": { "content": "Este es un contrato en Inglés" }
}

JSON-Ausgabestruktur des Inlinestrukturierungsbeispiels

{
    "detected_language_code": "es"
}

Auftretende Fehler

Neben der Tatsache, dass AML nicht verfügbar ist oder keine erfolgreichen Statuscodes gesendet werden, gelten die folgenden Fälle als Fehlerfälle:

  • Wenn der AML-Onlineendpunkt einen Statuscode für den Erfolg zurückgibt, die Antwort aber anzeigt, dass er nicht application/json ist, dann wird die Antwort als ungültig betrachtet, und es werden keine Anreicherungen durchgeführt.
  • Wenn der AML-Onlineendpunkt ungültige JSON zurückgibt

In Fällen, in denen der AML-Onlineendpunkt nicht verfügbar ist oder einen HTTP-Fehler zurückgibt, wird eine Fehlermeldung mit allen verfügbaren Details zum HTTP-Fehler in den Ausführungsverlauf des Indexers aufgenommen.

Siehe auch