Teilen über


Nachverfolgen Ihrer Anwendung mit dem Prompt Flow-SDK | Azure KI Studio

Wichtig

Einige der in diesem Artikel beschriebenen Features sind möglicherweise nur in der Vorschau verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Die Ablaufverfolgung ist ein leistungsstarkes Tool, das Entwicklern ein fundiertes Verständnis des Ausführungsprozesses ihrer auf generativer KI basierenden Anwendungen bietet, z. B. Agents, AutoGenund RAG-Anwendungsfälle (Retrieval Augmented Generation). Sie bietet eine detaillierte Ansicht des Ausführungsflows, einschließlich der Eingaben und Ausgaben jedes Knotens innerhalb der Anwendung. Diese wichtigen Informationen sind kritisch beim Debuggen komplexer Anwendungen oder Optimieren der Leistung.

Gleichzeitig verwenden mehr Entwickler verschiedene Frameworks wie Langchain, Semantic Kernel, OpenAI und verschiedene Arten von Agents, um LLM-basierte Anwendungen zu erstellen. Die Ablaufverfolgung mit dem prompt flow-SDK bietet eine verbesserte Sichtbarkeit und vereinfachte Problembehandlung für LLM-basierte Anwendungen und unterstützt so effektiv Entwicklung, Iteration und Produktionsüberwachung. Die Ablaufverfolgung in KI Studio folgt der OpenTelemetry-Spezifikation und erfasst und visualisiert die internen Ausführungsdetails beliebiger KI-Anwendungen. So wird die Entwicklungserfahrung allgemein verbessert.

Vorteile der Azure KI Studio-Ablaufverfolgung auf der Cloudplattform auf Unternehmensniveau

Darüber hinaus bieten wir jetzt persistente lokale Tests in KI Studio an, der Cloudplattform auf Unternehmensniveau, die die Zusammenarbeit, Persistenz und die Verwaltung des Testverlaufs erheblich verbessern.

Mit der Ablaufverfolgung haben Sie folgende Möglichkeiten:

  • Sie verfügen über einen cloudbasierten Speicherort, um Ihre historischen Tests beizubehalten und nachzuverfolgen.
  • Extrahieren und visualisieren Sie die Testergebnisse ganz einfach, und vergleichen Sie die Ergebnisse verschiedener Testfälle.
  • Verwenden Sie Ihre vorherigen Testressourcen später wieder, z. B. menschliches Feedback, Datenkuratierung usw.
  • Erleichtern Sie eine bessere Ressourcenauslastung in Zukunft.
  • Debuggen und optimieren Sie Ihre Anwendung ganz unkompliziert. Informationen zu den ersten Schritten mit dem Debuggen von LLM-Anwendungsszenarien finden Sie im Artikel zur Ablaufverfolgung mit LLM-Anwendungen.
  • Analysieren Sie Abruf- und Generierungsprozesse in RAG-Anwendungen.
  • Beobachten Sie die Interaktionen mit mehreren Agents in den Multi-Agent-Szenarien. Informationen zu den ersten Schritten mit der Ablaufverfolgung in Multi-Agent-Szenarien finden Sie im Artikel zur Ablaufverfolgung mit AutoGen.

Protokollieren und Anzeigen von Ablaufverfolgungen Ihrer Anwendungen

KI Studio bietet die Ablaufverfolgungsfunktion zum Protokollieren und Verwalten Ihrer LLM-Anwendungstests und -auswertungen, während sie debuggen und die Ablaufverfolgungsansicht durch Drilldown betrachten.

Die Ablaufverfolgung von Anwendungsfeatures ist heute im prompt flow-Open-Source-Paketimplementiert, um Benutzern die Ablaufverfolgung von LLM-Aufrufen oder -Funktionen zu ermöglichen, sowie in LLM-Frameworks wie LangChain und AutoGen, unabhängig davon, welches Framework Sie verwenden, nach OpenTelemetry-Spezifikation.

Aktivieren der Ablaufverfolgung in Ihrer Anwendung

Code First – Stellen Sie sicher, dass Sie Ihren Code für die Ablaufverfolgung in Prompt Flow kommentiert haben.

Weitere Details zur Ablaufverfolgung in prompt flow erhalten Sie in dieser Dokumentation zu prompt flow.

Protokollieren der Ablaufverfolgung bei KI Studio

Festlegen des Ablaufverfolgungsziels

Standardmäßig wird die Ablaufverfolgung in Ihrer lokalen Umgebung protokolliert und angezeigt. Legen Sie für trace destination ein bestimmtes KI Studio-Projekt fest, um die Protokollierung in KI Studio in der Cloud vorzunehmen.

Sie können sich auf die folgenden Schritte beziehen, um das Ablaufverfolgungsziel auf das KI Studio-Projekt festzulegen.

Stellen Sie zunächst sicher, dass Azure CLI installiert und angemeldet ist:

az login

Führen Sie als Nächstes den folgenden Befehl aus, um das Ablaufverfolgungsziel festzulegen. Ersetzen Sie <your_subscription_id>, <your_resourcegroup_name> und <your_studio_project_name> durch Ihre spezifische Abonnement-ID, den Namen der Ressourcengruppe und den Namen des KI Studio-Projekts:

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

Hinweis

Die Region „USA, Westen 3“ (westus3) unterstützt die Ablaufverfolgung nicht.

Sammlungen

Eine Sammlung ist eine Gruppe zugeordneter Ablaufverfolgungen. In KI Studio werden diese Sammlungen zusammen mit ihren internen Ablaufverfolgungen im Modul Ablaufverfolgung unter der Registerkarte Sammlungen verwaltet und gespeichert.

  1. Navigieren Sie zu Ihrem Projekt in KI Studio.

  2. Klicken Sie im linken Bereich auf Ablaufverfolgung. Sie können die Registerkarte Sammlungen sehen. Sie können nur Ihre eigenen Sammlungen in der Sammlungsliste sehen. In diesem Beispiel gibt es noch keine Sammlungen.

    Screenshot der Schaltfläche zum Hinzufügen einer neuen Verbindung.

Auf der Registerkarte „Sammlung“ wird eine umfassende Liste aller Sammlungen angezeigt, die Sie erstellt haben. Sie enthält wesentliche Metadaten für jede Sammlung, einschließlich Name, Ausführungsort, Zeitpunkt der letzten Aktualisierung und Erstellungszeit.

  • Ausführungsort: Gibt an, ob die Anwendung lokal oder in der Cloud ausgeführt wird. Die Cloudsammlung ist mit einem bestimmten Cloud-Erstellungstestverlauf für Prompt Flow und generierten Ablaufverfolgungen verknüpft. In diesem Fall entspricht der Sammlungsname dem Prompt Flow-Anzeigenamen.
  • Aktualisiert am: Zeigt an, wann zuletzt eine neue Ablaufverfolgung in einer Sammlung protokolliert wurde. Standardmäßig werden Sammlungen basierend auf ihren Aktualisierungszeiten in absteigender Reihenfolge sortiert.
  • Erstellt am: Der Zeitpunkt, zu dem die Sammlung ursprünglich erstellt wurde.

Wenn Sie den Namen einer Sammlung auswählen, können Sie auf eine Liste aller Ablaufverfolgungen innerhalb dieser Sammlung zugreifen. Nur eine Teilmenge von Ablaufverfolgungen kann für andere freigegeben werden. Weitere Informationen hierzu finden Sie in diesem Artikel zum Freigeben von Ablaufverfolgungen.

Beim Protokollieren einer Ablaufverfolgung haben Sie die Möglichkeit, einen Sammlungsnamen anzugeben, um sie mit anderen verwandten Ablaufverfolgungen zu gruppieren. Sie können mehrere Sammlungen erstellen, um Ihre Ablaufverfolgungen besser zu organisieren. Wenn beim Protokollieren einer Ablaufverfolgung kein Sammlungsname angegeben wird, wird standardmäßig der Projektordnername oder die Standardsammlung verwendet.

Anpassen der Sammlungen

Um Ihre Ablaufverfolgungen besser zu organisieren, können Sie beim Protokollieren einer Ablaufverfolgung einen benutzerdefinierten Sammlungsnamen angeben.

Wenn Sie Ihre eigene Anwendung nachverfolgen, können Sie den Sammlungsnamen in der start_trace()-Funktion in Ihrem Code festlegen:

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

Weitere Details zum Anpassen von Sammlungen erhalten Sie im Ablaufverfolgungs-Tutorial und prompt flow-Befehl.

Anzeigen der Ablaufverfolgungen

Zuerst müssen Sie die vorherigen Schritte ausführen, um die Ablaufverfolgungen in der Cloud anzuzeigen:

Führen Sie nun Ihr Python-Skript direkt aus. Nach erfolgreicher Ausführung wird in der Ausgabe ein Link zur Cloudablaufverfolgung angezeigt. Diese Ausgabe sieht ungefähr so aus:

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

Wählen Sie die URL aus, um zur Detailseite der Ablaufverfolgung im Cloudportal zu navigieren. Diese Seite ähnelt der lokalen Ablaufverfolgungsansicht.

Die Detailansicht der Ablaufverfolgung bietet einen umfassenden und strukturierten Überblick über die Vorgänge in Ihrer Anwendung.

Grundlegendes zur Detailansicht der Ablaufverfolgung

In der oberen rechten Ecke der Ablaufverfolgungsansicht finden Sie:

  • Ablaufverfolgungsname: Dies entspricht dem Stamm-Span-Namen, der den Entry-Funktionsnamen Ihrer Anwendung darstellt.
  • Status: Dies kann entweder „abgeschlossen“ oder „fehlgeschlagen“ sein.
  • Gesamtdauer: Dies ist die Gesamtdauer der Testausführung. Zeigen Sie mit der Maus darauf, um die Anfangs- und Endzeit anzuzeigen.
  • Token insgesamt: Dies sind die Gesamttokenkosten des Tests. Zeigen Sie mit der Maus darauf, um die Prompttoken und abgeschlossenen Token anzuzeigen.
  • Erstellungszeit: Der Zeitpunkt, zu dem die Ablaufverfolgung erstellt wurde.

Auf der linken Seite sehen Sie eine hierarchische Struktur. Diese Struktur zeigt die Abfolge von Funktionsaufrufen. Die Metadaten jedes Funktionsaufrufs sind in Spans unterteilt. Diese Spans sind in einer baumähnlichen Struktur miteinander verknüpft, die die Abfolge der Ausführung veranschaulicht.

Im Prompt Flow-SDK haben wir mehrere Span-Typen definiert, einschließlich LLM, Function, Embedding, Retrieval und Flow. Und das System erstellt automatisch Spans mit Ausführungsinformationen in bestimmten Attributen und Ereignissen.

Jedes Span-Element ermöglicht es Ihnen, Folgendes anzuzeigen:

  • Funktionsname: Standardmäßig ist dies der Name der Funktion, wie in Ihrem Code definiert. Es kann jedoch auch ein angepasster Span-Name sein, der über Open Telemetry definiert wird.
  • Dauer: Dies stellt die Dauer dar, für die die Funktion ausgeführt wurde. Zeigen Sie mit der Maus darauf, um die Anfangs- und Endzeit anzuzeigen.
  • Token für LLM-Aufrufe: Dies sind die Tokenkosten des LLM-Aufrufs. Zeigen Sie mit der Maus darauf, um die Prompttoken und abgeschlossenen Token anzuzeigen.

Wenn Sie ein bestimmtes Span-Element auswählen, können Sie die zugehörigen detaillierten Informationen auf der rechten Seite anzeigen. Diese Informationen umfassen Eingabe, Ausgabe, unformatiertes JSON, Protokolle und Ausnahmen, die für das Beobachten und Debuggen Ihrer Anwendung unerlässlich sind.

Für das LLM-Span-Element wird eine übersichtliche Unterhaltungsansicht bereitgestellt. Dazu gehören Systemprompt, Benutzerprompt und Assistentenantwort. Diese Informationen sind insbesondere in Multi-Agent-Fällen von entscheidender Bedeutung, da Sie so den Flow der Unterhaltung und die Interaktion innerhalb des automatischen LLM-Intermediate-Aufrufs verstehen können.

Sie können die Registerkarte JSON-Rohdaten auswählen, um die JSON-Daten des Span-Elements anzuzeigen. Dieses Format eignet sich möglicherweise besser für Entwickler, wenn es um das Debuggen und die Problembehandlung geht.

Freigeben der Ablaufverfolgung

Wenn Sie die Ablaufverfolgung für andere Personen freigeben möchten, die über Berechtigungen für das Projekt verfügen, können Sie die Schaltfläche Freigeben in der rechten Ecke der Detailseite der Ablaufverfolgung auswählen. Der Seitenlink wird so kopiert, damit Sie ihn für andere freigeben können.

Hinweis

Die freigegebene Ablaufverfolgung ist schreibgeschützt, und nur Personen, die über die Berechtigung für das Projekt verfügen, können sie über den Link anzeigen.