Comment tracer votre application avec le kit de développement logiciel (SDK) de flux d’invite | Azure AI Studio

Important

Certaines des fonctionnalités décrites dans cet article peuvent uniquement être disponibles en préversion. Cette préversion est fournie sans contrat de niveau de service, nous la déconseillons dans des charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

Le traçage est un outil puissant qui donne aux développeurs une compréhension approfondie du processus d’exécution de leurs applications d’IA générative, comme des agents, AutoGen et des cas d’usage de génération augmentée de récupération (RAG, Retrieval-Augmented Generation). Il fournit une vue détaillée du flux d’exécution, y compris les entrées et les sorties de chaque nœud au sein de l’application. Ces informations essentielles s’avèrent cruciales lors du débogage d’applications complexes ou de l’optimisation des performances.

De plus en plus de développeurs utilisent différents frameworks, comme Langchain, Semantic Kernel ou OpenAI, et différents types d’agents pour créer des applications basées sur des grands modèles de langage (LLM, Large Language Model). Le traçage avec le kit de développement logiciel (SDK) de flux d’invite améliore la visibilité et simplifie la résolution des problèmes des applications basées sur des LLM, permettant la prise en charge efficace de l’analyse du développement, de l’itération et de la production. Le traçage dans AI Studio suit la spécification OpenTelemetry, permettant la capture et la visualisation des détails d’exécution internes de n’importe quelle application IA et améliorant l’expérience de développement globale.

Avantages du traçage d’AI Studio sur la plateforme cloud de niveau entreprise

De plus, nous proposons désormais des tests locaux persistants sur AI Studio, la plateforme cloud de niveau entreprise, améliorant considérablement la collaboration, la persistance et la gestion de l’historique des tests.

Avec le traçage, vous pouvez :

  • Disposer d’un emplacement cloud pour conserver et suivre l’historique de vos tests.
  • Extraire et visualiser facilement les résultats des tests, en comparant les résultats des différents cas de test.
  • Réutiliser ultérieurement les ressources de vos tests précédents, par exemple les commentaires des utilisateurs, la sélection des données, etc.
  • Faciliter une meilleure utilisation des ressources dans le futur.
  • Déboguer et optimiser facilement votre application. Pour bien démarrer avec le débogage de scénarios d’application LLM, reportez-vous à Traçage avec une application LLM.
  • Analysez les processus de récupération et de génération dans les applications RAG.
  • Observez les interactions multi-agents dans les scénarios multi-agents. Pour bien démarrer avec le traçage dans des scénarios multi-agents, reportez-vous à Traçage avec AutoGen.

Journaliser et visualiser les traces de vos applications

AI Studio offre la capacité de traçage pour la journalisation et la gestion de vos tests et évaluations d’applications LLM, tout en permettant le débogage et l’observation en explorant la vue des traces au niveau du détail.

La fonctionnalité de traçage de n’importe quelle application est actuellement implémentée dans le package open source du flux d’invite et permet à l’utilisateur de tracer les appels ou les fonctions LLM ainsi que les infrastructures LLM telles que LangChain et AutoGen, quel que soit l’infrastructure utilisée, conformément à la spécification OpenTelemetry.

Activer le traçage dans votre application

Code First : vérifiez que vous avez annoté votre code pour le traçage dans le flux d’invite.

Pour plus d’informations sur le traçage dans le flux d’invite, veuillez vous reporter à cette documentation du flux d’invite.

Journaliser la trace dans AI Studio

Définir la destination de la trace

Par défaut, la trace est consignée et visualisée dans votre environnement local. Pour la journaliser dans AI Studio dans le cloud, vous devez définir la trace destination sur un projet AI Studio spécifié.

Vous pouvez vous référer aux étapes suivantes pour définir la destination de la trace sur un projet AI Studio.

Tout d’abord, vérifiez qu’Azure CLI est installé et connecté :

az login

Ensuite, exécutez la commande suivante pour définir la destination de la trace. Remplacez <your_subscription_id>, <your_resourcegroup_name> et <your_studio_project_name> respectivement par votre ID d’abonnement spécifique, le nom du groupe de ressources et le nom du projet AI Studio :

pf config set trace.destination=azureml://subscriptions/<your_subscription_id>/resourcegroups/<your_resourcegroup_name>/providers/Microsoft.MachineLearningServices/workspaces/<your_studio_project_name>

Remarque

La région USA Ouest 3 (westus3) ne prend pas en charge le suivi.

Collections

Une collection est un groupe de traces associées. Dans AI Studio, ces collections ainsi que leurs traces internes sont gérées et stockées dans le module Traçage sous l’onglet Collections.

  1. Accédez à votre projet dans AI Studio.

  2. Dans le volet gauche, sélectionnez Traçage. Vous pouvez voir l’onglet Collections. Vous pouvez voir seulement vos propres collections dans la liste des collections. Dans cet exemple, il n’y a pas encore de collections.

    Capture d’écran du bouton pour ajouter une nouvelle connexion.

L’onglet Collection montre une liste complète de toutes les collections que vous avez créées. Il montre les métadonnées essentielles pour chaque collection, y compris son nom, son emplacement d’exécution, la date/heure de dernière mise à jour et la date/heure de création.

  • Emplacement d’exécution : indique si l’application s’exécute localement ou dans le cloud. La collection cloud est associée à un historique des tests de création cloud et à des traces générées spécifiques au flux d’invite. Dans le cas présent, le nom de la collection est identique au nom d’affichage du flux d’invite.
  • Mis à jour le : montre la date/heure la plus récente à laquelle une nouvelle trace a été consignée dans une collection. Par défaut, les collections sont triées par ordre décroissant en fonction de leurs dates/heures de mise à jour.
  • Créé le : date/heure de création initiale de la collection.

En sélectionnant le nom d’une collection, vous pouvez accéder à une liste de toutes les traces de cette collection. Seul un sous-ensemble de traces peut être partagé avec d’autres personnes. Pour plus d’informations, consultez Partager une trace.

Lors de la consignation d’une trace, vous avez la possibilité de spécifier un nom de collection pour la regrouper avec d’autres traces associées. Vous pouvez créer plusieurs collections pour une meilleure organisation de vos traces. Si vous ne spécifiez pas un nom de collection lors de la consignation d’une trace, il est défini par défaut sur le nom du dossier de projet ou sur la collection par défaut.

Personnaliser les collections

Pour une meilleure organisation de vos traces, vous pouvez spécifier un nom de collection personnalisé lors de la consignation d’une trace.

Si vous tracez votre propre application, vous pouvez définir le nom de la collection dans la fonction start_trace() de votre code :

from promptflow.tracing import start_trace, trace

@trace
def my_function(input: str) -> str:
    output = input + "Hello World!"
    return output

my_function("This is my function")
start_trace(collection="my_custom_collection")

Pour plus d’informations sur la personnalisation des collections, veuillez vous reporter à Tutoriel sur le traçage et Commandes de flux d’invite.

Visualiser les traces

Tout d’abord, vous devez effectuer les étapes précédentes pour visualiser les traces dans le cloud :

À présent, exécutez votre script Python directement. Une fois l’exécution réussie, un lien de trace cloud apparaît dans la sortie. Voici à quoi cela doit ressembler :

Starting prompt flow service...
...
You can view the traces in cloud from AI Studio: https://ai.azure.com/projecttrace/detail/....

Sélection de l’URL pour accéder à une page des détails d’une trace dans le portail cloud. Cette page est similaire à la vue de trace locale.

La vue des détails de la trace fournit une vue d’ensemble complète et structurée des opérations au sein de votre application.

Comprendre la vue des détails de la trace

Dans le coin supérieur droit de la vue de la trace, vous trouvez :

  • Nom de la trace : c’est le nom de l’étendue racine, représentant le nom de la fonction d’entrée de votre application.
  • État : la valeur peut être « Terminé » ou « Échec ».
  • Durée totale : c’est la durée totale de l’exécution du test. Placez le curseur ici pour voir les dates/heures de début et de fin.
  • Nombre total de jetons : c’est le coût total du test en jetons. Placez le curseur ici pour voir les jetons de prompt et les jetons terminés.
  • Date/heure de création : la date/heure à laquelle la ressource a été créée.

Sur le côté gauche, vous pouvez voir une structure d’arborescence hiérarchique. Cette structure montre la séquence des appels de fonction. Les métadonnées de chaque appel de fonction sont organisées en étendues. Ces étendues sont liées dans une structure de type arborescence, qui reflète la séquence d’exécution.

Dans le Kit de développement logiciel (SDK) de flux d’invite, nous avons défini plusieurs types d’étendues, notamment LLM, Fonction, Incorporation, Récupération et Flux. Le système crée automatiquement des étendues avec les informations d’exécution dans des attributs et des événements désignés.

Chaque étendue vous permet de voir :

  • Nom de la fonction : par défaut, c’est le nom de la fonction telle que définie dans votre code. Cependant, il peut également s’agir d’un nom d’étendue personnalisé défini via OpenTelemetry.
  • Durée : ceci représente la durée pendant laquelle la fonction s’est exécutée. Placez le curseur ici pour voir les dates/heures de début et de fin.
  • Jetons pour les appels du LLM : c’est le coût en jetons de l’appel du LLM. Placez le curseur ici pour voir les jetons de prompt et les jetons terminés.

En sélectionnant une étendue spécifique, vous pouvez passer à l’affichage des informations détaillées qui lui sont associées sur le côté droit. Ces informations incluent les éléments suivants : entrée, sortie, JSON brut, journaux et exceptions, qui sont essentiels pour observer et déboguer votre application.

Pour l’étendue LLM, une vue de conversation claire est fournie. Ceci inclut le prompt du système, le prompt de l’utilisateur et la réponse de l’Assistant. Ces informations sont particulièrement cruciales dans les cas multi-agents, car elles vous permettent de comprendre le flux de la conversation et l’interaction au sein de l’appel automatique intermédiaire du LLM.

Vous pouvez sélectionner l’onglet JSON brut pour voir les données JSON de l’étendue. Ce format peut être plus adapté aux développeurs pour le débogage et la résolution des problèmes.

Partager une trace

Si vous voulez partager la trace avec d’autres personnes disposant de l’autorisation sur le projet, vous pouvez sélectionner le bouton Partager dans le coin droit de la page des détails de la trace, puis copier le lien de la page pour le partager avec d’autres personnes.

Remarque

La trace partagée est en lecture seule, et seules les personnes disposant de l’autorisation sur le projet peuvent la visualiser via le lien.