Partager via


Interroger les documents ingérés à l’aide de l’API d’inférence

Important

Cette fonctionnalité est en version préliminaire. Ces informations concernent une fonctionnalité en préversion qui peut être considérablement modifiée avant son lancement. Microsoft n’offre aucune garantie, expresse ou implicite, concernant les informations fournies ici.

Pour interroger le corpus une fois les documents configurés et ingérés, fournissez les détails suivants :

Authentification

Vous devez ajouter un en-tête d’autorisation à votre demande. De plus, vous devez obtenir un jeton pour votre application. Consultez l’exemple suivant pour savoir comment générer un jeton dans l’exemple. 

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

API de niveau supérieur Ask

Accédez au groupe de ressources déployé et recherchez api_management_name.

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

Champs de demande

La demande contient les champs de niveau supérieur suivants :

Nom du champ Saisissez Requis Description/Exemple
requête chaîne Oui Exemple : Quand Campbell Soup publie-t-il ses résultats ?  
 
filtre chaîne Non Une page Web pour en savoir plus sur le filtrage de la recherche AI Azure. https://learn.microsoft.com/azure/search/search-filters  
 
Message système chaîne Non Votre message système. Remarque : Ce message système remplace notre message système standard et peut affecter les performances. Nous ne recommandons pas de l’utiliser.  
 

Champs réponse

Nom du champ Saisissez Description
message chaîne Le résultat de la requête
citationsRésultat CitationsObjet de résultat Une citation dans le message qui pointe vers une citation spécifique d’un fichier associé au Assistant ou au message.  

CitationsObjet de résultat

Nom du champ Saisissez Description
citations Dictionnaire. Clé : chaîne, valeur : objet de citation La clé représente le document, par exemple, doc1.  
intention Tableau de chaînes Intentions reconnues.   

Objet de citation

Nom du champ Saisissez Description
contenu Liste des morceaux Le contenu du bloc renvoyé
titre chaîne Le titre du document
URL Chaîne L’URL du document
Nom de fichier Chaîne Le nom du fichier
Numéro de page Int Le numéro de page du bloc
Identifiant de morceau Chaîne L’ID du bloc

Filtres possibles

Nom du champ Saisissez Commentaires
Chemin de fichier Chaîne filepath eq 'morningstar ford report.pdf'  
numéro_de_page Int32   
contient_image booléen   
titre Chaîne   
document_metadata/auteur Chaîne   
document_metadata/résumé Chaîne   
document_metadata/mots-clés Chaîne   
métadonnées_du_document/date_de_création Décalage de date et d’heure Utilisez ce champ pour filtrer selon certains critères, par exemple, les trois derniers mois : document_metadata/creation_date ge 2023-12-19T00:00:00Z
document_metadata/titre Chaîne   
métadonnées_du_document/métadonnées_supplémentaires/trimestre_financier Chaîne   
métadonnées_du_document/métadonnées_supplémentaires/exercice_financier Chaîne   
métadonnées_du_document/métadonnées_supplémentaires/organisation Chaîne   

Tester l’API

Vous pouvez tester l’API d’inférence à l’aide du service de gestion d’API Azure sur le portail Azure. Vous devez utiliser l’API point de terminaison dans votre code pour interroger les données. Les étapes suivantes expliquent l’ensemble du processus de test de l’API :

Note

L’URL de la passerelle de gestion des API est disponible sur la page de présentation de la gestion des API.

  1. Sur le portail Azure, accédez à votre groupe de ressources et Sélectionner la ressource Gestion des API .

Capture d’écran de la page affichant les détails du groupe de ressources

  1. Sur la ressource Gestion des API, accédez à API > API > Inférence > v1. Vous devriez voir l’API ASK d’analyse des documents financiers.

Capture d’écran de l’écran de gestion des API

  1. Sélectionner Test > Publier ASK.

Capture d’écran de l’écran de gestion des API avec la méthode POST mise en surbrillance

  1. Demandez un token pour l’ enregistrement de l’application que vous avez créée.

    a. Utilisez la CLI Azure et connectez-vous au locataire qui inclut le déploiement, en tant qu’utilisateur disposant d’autorisations pour appeler l’API.

    Exécutez la commande suivante : az account get-access-token --resource <app-reg cli id>

    Ici, app-reg cli-id signifie l’ ID de l’application (client).

    Vous devriez recevoir un réponse similaire à la sortie de commande suivante :

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

    b. Pour accéder à l’API, incluez le jeton JWT dans la requête. Copiez le jeton JWT de la commande réponse et ajoutez-le comme en-tête d’autorisation dans la demande. az La valeur de l’en-tête doit être Bearer <JWT-Token>. Modifiez la query valeur par Hi et Sélectionner Envoyer.

    Capture d’écran de l’écran de gestion des API avec le corps de la demande mis en surbrillance

    Vous devriez recevoir un réponse similaire au message HTTP suivant :

    Capture d’écran du HTTP réponse de la requête envoyée

    c. Pour tester l’API, remplacez la query valeur par une chaîne de texte qui pourrait conduire à un réponse en fonction du contenu des documents ingérés, et à Sélectionner Envoyer.

  2. Testez le processus d’appel d’API directement à partir de votre code. Le code Python suivant extrait montre comment vous pouvez utiliser l’API dans votre code.

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())