Freigeben über


Erfasste Dokumente mithilfe der Inferenz-API abfragen

Wichtig

Dies ist eine Vorschauversion. Diese Informationen beziehen sich auf eine Vorabversionsfunktion, die vor ihrer Veröffentlichung möglicherweise erheblich geändert wird. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.

Um das Korpus abzufragen, nachdem die Dokumente konfiguriert und aufgenommen wurden, geben Sie die folgenden Details an:

Authentifizierung

Sie müssen Ihrer Anfrage einen Autorisierungsheader hinzufügen. Außerdem müssen Sie ein Token für Ihre Anwendung erhalten. Im folgenden Beispiel erfahren Sie, wie im Beispiel ein Token generiert wird. 

{'Content-Type': 'application/json', 'Authorization': 'Bearer {token}'}

Ask API – oberste Ebene

Gehen Sie zur bereitgestellten Ressourcengruppe und suchen Sie api_management_name.

https://{api_management_name}.azure-api.net/inference/v1/Ask

Anfragefelder

Die Anfrage enthält die folgenden Felder der obersten Ebene:

Feldname Geben Sie Erforderlich Beschreibung/Beispiel
Abfrage Schnur Ja Beispiel: Wann veröffentlicht Campbell Soup seine Ergebnisse?  
 
Filter Schnur Nein Eine Webseite mit Informationen zum Filtern der KI-Suche Azure. https://learn.microsoft.com/azure/search/search-filters  
 
Systemnachricht Schnur Nein Ihre Systemnachricht. Hinweis: Diese Systemnachricht ersetzt unsere Standard-Systemnachricht und kann die Leistung beeinträchtigen. Wir empfehlen, es nicht zu verwenden.  
 

Antwort Felder

Feldname Geben Sie Beschreibung
Nachricht Schnur Das Ergebnis der Abfrage
ZitateErgebnis CitationsResult-Objekt Ein Zitat innerhalb der Nachricht, das auf ein bestimmtes Zitat aus einer mit Assistent oder der Nachricht verknüpften Datei verweist.  

CitationsResult-Objekt

Feldname Geben Sie Beschreibung
Zitate Wörterbuch. Schlüssel: Zeichenfolge, Wert: Zitatobjekt Der Schlüssel stellt das Dokument dar, z. B. doc1.  
Absicht Array von Zeichenfolgen Anerkannte Absichten.   

Zitationsobjekt

Feldname Geben Sie Beschreibung
Inhalt Liste der Brocken Der zurückgegebene Chunk-Inhalt
Titel Schnur Der Titel des Dokuments
URL (URL) Zeichenfolge Die URL zum Dokument
Dateiname Zeichenfolge Der Dateiname
Seitennummer Int Die Seitenzahl des Blocks
Chunk-ID Zeichenfolge Die Chunk-ID

Mögliche Filter

Feldname Geben Sie Kommentare
Dateipfad Zeichenfolge filepath eq 'morningstar ford report.pdf'  
Seitenzahl Int32   
enthält_Bild boolesch   
Titel Zeichenfolge   
Dokumentmetadaten/Autor Zeichenfolge   
Dokumentmetadaten/Zusammenfassung Zeichenfolge   
Dokumentmetadaten/Schlüsselwörter Zeichenfolge   
Dokumentmetadaten/Erstellungsdatum Datum/Uhrzeit-Offset Nutzen Sie dieses Feld um nach bestimmten Kriterien zu filtern, zum Beispiel nach den letzten drei Monaten: document_metadata/creation_date ge 2023-12-19T00:00:00Z
Dokumentmetadaten/Titel Zeichenfolge   
Dokumentmetadaten/zusätzliche_metadaten/Finanzquartal Zeichenfolge   
Dokumentmetadaten/zusätzliche_metadaten/Geschäftsjahr Zeichenfolge   
Dokumentmetadaten/zusätzliche_Metadaten/Organisation Zeichenfolge   

Testen der API

Sie können die Inference-API mit dem Azure API Management-Dienst auf dem Azure-Portal testen. Sie müssen die API Endpunkt in Ihrem Code verwenden, um die Daten abzufragen. Die folgenden Schritte erläutern den gesamten Prozess des API-Tests:

Anmerkung

Die URL des API Management-Gateways ist auf der Übersichtsseite zu API Management verfügbar.

  1. Gehen Sie im Azure-Portal zu Ihrer Ressourcengruppe und Auswählen zur API Management -Ressource.

Screenshot der Seite mit den Ressourcengruppendetails

  1. Gehen Sie in der API-Verwaltungsressource zu APIs > APIs > Inference > v1. Sie sollten die ASK-API zur Analyse von Finanzdokumenten sehen.

Screenshot des API-Verwaltungsbildschirms

  1. Auswählen Test > Post ASK.

Screenshot des API-Verwaltungsbildschirms mit hervorgehobener POST-Methode

  1. Fordern Sie ein Zugriffstoken für die von Ihnen erstellte App-Registrierung an.

    a. Verwenden Sie die CLI Azure und melden Sie sich beim Mandanten, der die Bereitstellung enthält, als Benutzer mit Berechtigungen zum Aufrufen der API an.

    Führen Sie den folgenden Befehl aus: az account get-access-token --resource <app-reg cli id>

    Hiermit ist die app-reg cli-id Anwendungs-(Client-)ID gemeint.

    Sie sollten eine Antwort erhalten, die der folgenden Befehlsausgabe ähnelt:

    { 
     "accessToken": "<JWT-Token>" 
     "expiresOn": "2024-11-11 16:13:11.000000", 
     "expires_on": 1731334391, 
     "subscription": "<subscription_id>", 
     "tenant": "<tenant_id>" 
     "tokenType": "Bearer" 
    }
    

    b. Um auf die API zuzugreifen, schließen Sie das JWT-Token in die Anfrage ein. Kopieren Sie das JWT-Token aus dem az Befehl Antwort und fügen Sie es der Anfrage als Autorisierungsheader hinzu. Der Wert des Headers sollte Bearer <JWT-Token> sein. Ändern Sie den query Wert in Hi und Auswählen Senden.

    Screenshot des API-Verwaltungsbildschirms mit hervorgehobenem Anforderungstext

    Sie sollten eine Antwort erhalten, die der folgenden HTTP-Nachricht ähnelt:

    Screenshot des HTTP Antwort zur gesendeten Anfrage

    c. Um die API zu testen, ändern Sie den query Wert in eine Textzeichenfolge, die basierend auf dem Inhalt der aufgenommenen Dokumente zu einem Antwort führen kann, und Auswählen Senden.

  2. Testen Sie den Vorgang des API-Aufrufs direkt aus Ihrem Code. Der folgende Python-Code Ausschnitt zeigt, wie Sie die API in Ihrem Code verwenden können.

from azure.identity import DefaultAzureCredential 
import requests 
# Get Credentials 
credentials = DefaultAzureCredential() 
# Get the access token 
access_token = credentials.get_token("<App Registration Scope>",tenant_id="<your tenant id>") 
# Define the URL, headers, and payload 
url = "https://<api managment url>/inference/v1/Ask" 
headers = { 
    "Content-Type": "application/json", 
    "Authorization": f"Bearer {access_token.token}" 
} 
payload = { 
    "query": "<your query>" 
} 
# Execute the POST request 
response = requests.post(url, headers=headers, json=payload) 
# Print the response 
print(response.status_code) 
print(response.json())