Freigeben über


Entwickeln eines Prompt Flow

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.

Prompt flow ist ein Entwicklungstool zur Rationalisierung des gesamten Entwicklungszyklus von KI-Anwendungen auf der Grundlage von Großen Sprachmodellen (LLMs). Prompt Flow bietet eine umfassende Lösung, die den Prozess des Prototyping, Experimentierens, der Iteration und des Einsatzes Ihrer KI-Anwendungen vereinfacht.

Mit Prompt Flow können Sie:

  • Orchestrieren Sie ausführbare Abläufe mit LLMs, Prompts und Python-Tools über einen visualisierten Graphen.
  • Testen, debuggen und iterieren Sie Ihre Abläufe mit Leichtigkeit.
  • Erstellen Sie Prompt-Varianten und vergleichen Sie deren Leistung.

In diesem Artikel erfahren Sie, wie Sie Ihren ersten Prompt Flow in Azure KI Studio erstellen und entwickeln.

Voraussetzungen

Erstellen und Entwickeln Ihres Prompt-Flows

Sie können einen Flow erstellen, indem Sie entweder die in der Galerie verfügbaren Beispiele klonen oder einen Flow von Grund auf neu erstellen. Wenn Sie bereits Flow-Dateien lokal oder in einer Dateifreigabe gespeichert haben, können Sie die Dateien auch importieren, um einen Flow zu erstellen.

So erstellen Sie einen Prompt Flow aus dem Katalog in Azure KI Studio:

  1. Melden Sie sich bei Azure KI Studio an, und wählen Sie Ihr Projekt aus.

  2. Wählen Sie im reduzierbaren linken Menü die Option Prompt Flow aus.

  3. Wählen Sie + Erstellen aus.

  4. Wählen Sie in der Kachel Standardflow die Option Erstellen aus.

  5. Geben Sie auf der Seite Neuen Flow erstellenaus einen Ordnernamen ein, und wählen Sie dann Erstellen aus.

    Screenshot: Auswahl und Erstellung eines Standardflows

  6. Die Seite zur Erstellung des Prompt Flows wird geöffnet. Sie können jetzt mit der Erstellung Ihres Flows beginnen. Standardmäßig wird ein Beispiel-Flow angezeigt. Dieser Beispiel-Flow verfügt über Knoten für die LLM- und Python-Tools.

    Screenshot: Floweingabe und -ausgabe auf der Seite „Prompt flow bearbeiten“

    Hinweis

    Die Diagrammansicht nur für die Visualisierung. Sie zeigt die Flow-Struktur, die Sie entwickeln. Sie können die Diagrammansicht nicht direkt bearbeiten, aber Sie können die Diagrammansicht vergrößern, verkleineren und scrollen. Sie können einen Knoten in der Diagrammansicht auswählen, um den Knoten in der Toolbearbeitungsansicht hervorzuheben und zu diesem zu navigieren.

  7. Optional können Sie dem Flow weitere Tools hinzufügen. Die sichtbaren Tooloptionen sind LLM, Prompt und Python. Wenn Sie weitere Tools anzeigen möchten, wählen Sie +Weitere Tools aus.

    Screenshot: Zugriff auf weitere Tools auf der Seite „Prompt flow bearbeiten“

  8. Wählen Sie eine Verbindung und Bereitstellung im LLM-Tool-Editor aus.

    Screenshot: Ausgewählte Verbindung und Bereitstellung im LLM-Tool auf der Seite „Prompt flow bearbeiten“

  9. Wählen Sie Ausführen aus, um den Flow auszuführen.

    Screenshot: Option zum Auswählen der Ausführung auf der Seite „Prompt flow bearbeiten“

  10. Der Flowausführung wird als Ausführen angezeigt.

    Screenshot: Flow, der auf der Seite „Prompt flow bearbeiten“ ausgeführt wird

  11. Nachdem die Flowausführung abgeschlossen ist, wählen Sie Ausgaben anzeigen aus, um die Flow-Ergebnisse anzuzeigen.

    Screenshot: Option zum Anzeigen von Flowergebnissen auf der Seite „Prompt flow bearbeiten“

  12. Sie können den Status der Flowausführung und die Ausgabe im Abschnitt Ausgaben anzeigen.

    Screenshot: Ausgabedetails

Gestaltung des Flows

Jeder Flow wird durch einen Ordner dargestellt, der eine Datei "flow.dag.yaml", Quellcodedateien und Systemordner enthält. Sie können neue Dateien hinzufügen, vorhandene Dateien bearbeiten und Dateien löschen. Sie können die Dateien auch in ein lokales Verzeichnis exportieren oder aus einem lokalen Verzeichnis importieren.

Zusätzlich zur Inlinebearbeitung des Knotens in der vereinfachten Ansicht können Sie auch den Umschalter Rohdatendateimodus aktivieren und den Dateinamen auswählen, um die Datei auf angezeigten Dateiregisterkarte zu bearbeiten.

Flow-Eingang und -Ausgang

Flow-Input sind die Daten, die in den Flow als Ganzes eingehen. Definieren Sie das Eingabeschema, indem Sie den Namen und den Typ angeben. Stellen Sie den Eingangswert der einzelnen Eingänge ein, um den Flow zu testen. Sie können den Flow-Input später in den Flow-Knoten mit der Syntax ${input.[input name]} referenzieren.

Der Flow-Output ist die vom gesamten Flow erzeugten Daten, die die Ergebnisse der Flow-Ausführung zusammenfassen. Sie können die Ausgabetabelle nach Abschluss des Ablauf- oder Batchlaufs anzeigen und exportieren. Definieren Sie den Wert der Flow-Ausgabe, indem Sie mit der Syntax ${[node name].output} oder ${[node name].output.[field name]} auf die Ausgabe des einzelnen Flow-Knotens verweisen.

Indem Sie die Knotenausgabe referenzieren, können Sie Knoten miteinander verknüpfen. Sie können zum Beispiel die Ausgabe des LLM-Knotens in der Eingabe des Python-Knotens referenzieren, so dass der Python-Knoten die Ausgabe des LLM-Knotens konsumieren kann, und in der Diagrammansicht sehen Sie, dass die beiden Knoten miteinander verbunden sind.

Aktivieren Sie die bedingte Kontrolle über den Flow

Prompt Flow bietet nicht nur eine optimierte Methode zur Ausführung des Flows, sondern auch eine leistungsstarke Funktion für Entwickler – die bedingte Steuerung, mit der Benutzer Bedingungen für die Ausführung jedes Knotens in einem Ablauf festlegen können.

Im Kern bietet die bedingte Steuerung die Möglichkeit, jeden Knoten in einem Flow mit einer Aktivierungskonfiguration zu verknüpfen. Diese Konfiguration ist im Wesentlichen eine „wenn“-Anweisung, die bestimmt, wann ein Knoten ausgeführt werden soll. Die Leistungsfähigkeit dieser Funktion kommt zum Tragen, wenn Sie komplexe Abläufe haben, bei denen die Ausführung bestimmter Aufgaben vom Ergebnis vorheriger Aufgaben abhängt. Mit Hilfe der bedingten Steuerung können Sie Ihre spezifischen Knoten so konfigurieren, dass sie nur ausgeführt werden, wenn die angegebenen Bedingungen erfüllt sind.

Insbesondere können Sie die Aktivierungskonfiguration für einen Knoten festlegen, indem Sie die Schaltfläche Konfiguration aktivieren in der Knotenkarte auswählen. Sie können eine „wenn“-Anweisung hinzufügen und die Bedingung festlegen. Sie können die Bedingungen festlegen, indem Sie sich auf den Flow-Input oder den Knoten-Output beziehen. Sie können zum Beispiel die Bedingung ${input.[input name]} als bestimmten Wert oder ${[node name].output} als bestimmten Wert festlegen.

Wenn die Bedingung nicht erfüllt ist, wird der Knoten übersprungen. Der Status des Knotens wird als „Umgangen“ angezeigt.

Testen des Flows

Sie können den Flow auf zwei Arten testen:

  • Sie führen einen einzelnen Knoten aus.
    • Um einen einzelnen Knoten auszuführen, wählen Sie das Symbol Ausführen auf dem Knoten in der flachen Ansicht. Sobald die Ausführung abgeschlossen ist, können Sie das Ergebnis schnell im Abschnitt mit der Knotenausgabe überprüfen.
  • Sie führen den gesamten Flow aus.
    • Um den gesamten Ablauf auszuführen, wählen Sie die Schaltfläche Ausführen oben rechts.

Testergebnis und Ablaufverfolgung anzeigen (Preview)

Bei der Ausführung des gesamten Flows wird nach dessen Ausführung den Ausführungsstatus im Ausführungsbanner angezeigt. Anschließend können Sie Ablaufverfolgung anzeigen auswählen, um das Ergebnis in der Ablaufverfolgung zu überprüfen und die Ausführung des Flows zu beobachten. Sie können hier die Eingabe und Ausgabe des gesamten Flows und die eines jeden Knoten sowie detailliertere Informationen zum Debuggen einsehen. Diese Option während der Ausführung und nach Abschluss der Ausführung verfügbar.

Grundlegendes zur Ablaufverfolgungsansicht

Die Ablaufverfolgung eines Prompt Flow wird als Flow bezeichnet. In der Ablaufverfolgungsansicht kann die klare Abfolge der für die Floworchestrierung verwendeten Tools beobachtet werden.

Jede Spanne (engl. span) der Ebene 2 unter dem Flowstamm stellt einen Knoten im Flow dar, der in Form eines Funktionsaufrufs ausgeführt wird. Daher wird diese Art von Spanne als Function bezeichnet. Sie können die Dauer der Ausführung der einzelnen Knoten in der Struktur der Spannen sehen.

In der Spannenstruktur sind LLM-Aufrufe leicht als LLM-Spanne identifizierbar. Diese enthalten Informationen zur Dauer des LLM-Aufrufs und der zugehörigen Tokenkosten.

Wenn Sie eine Spanne auswählen, werden die detaillierten Informationen auf der rechten Seite angezeigt. Dazu gehören Eingabe und Ausgabe, „Raw Json“ und „Exception“, die alle für das Beobachten und Debugging nützlich sind.

 Screenshot der Ablaufverfolgungsdetails.

Hinweis

Im Prompt Flow-SDK wurden mehrere Typen von Spannen definiert, darunter LLM, Function, Embedding, Retrieval und Flow. Und das System erstellt automatisch Spannen mit Ausführungsinformationen in bestimmten Attributen und Ereignissen.

Weitere Informationen zu Spannentypen finden Sie unter Ablaufverfolgungsspanne.

Nachdem der Flusslauf abgeschlossen wurde, können Sie die Schaltfläche Testergebnisse anzeigen auswählen, um die Ergebnisse und alle historischen Ausführungsaufzeichnungen in einer Liste zu überprüfen. Standardmäßig werden die Ausführungsaufzeichnungen, die in den letzten 7 Tagen erstellt wurden, angezeigt. Sie können den Filter auswählen, um die Bedingung zu ändern.

Screenshot des Flowtestergebnisses.

Sie können auch den Namen der Ausführungsaufzeichnung auswählen, um die detaillierten Informationen in der Ablaufverfolgungsansicht anzuzeigen.

Entwickeln eines Chatflows

Der Chatflow wurde für die Entwicklung von Konversationsanwendungen entwickelt. Er basiert auf den Funktionen des Standardflows und bietet erweiterte Unterstützung für Chateingaben/-ausgaben und die Verwaltung des Chatverlaufs. Mit dem Chatflow können Sie ganz einfach einen Chatbot erstellen, der die Chateingabe und -ausgabe verarbeitet.

Auf der Erstellungsseite von Chatflows wird ein Chatflow mit der Bezeichnung „Chat“ gekennzeichnet, um ihn vom Standardflow und vom Auswertungsflow zu unterscheiden. Um den Chatflow zu testen, wählen Sie die Schaltfläche „Chatten“ aus, um ein Chatfeld für eine Unterhaltung anzuzeigen.

Chat-Eingabe/-Ausgabe und Chat-Verlauf

Die wichtigsten Elemente, die einen Chatablauf von einem Standardablauf unterscheiden, sind Chat-Eingabe, Chat-Verlauf und Chat-Ausgabe.

  • Chat-Eingabe: Die Chat-Eingabe bezieht sich auf die Nachrichten oder Anfragen, die von den Nutzern an den Chatbot übermittelt werden. Die effektive Verarbeitung von Chateingaben ist für eine erfolgreiche Unterhaltung von entscheidender Bedeutung, da sie das Verständnis der Benutzerabsichten, das Extrahieren relevanter Informationen und das Auslösen geeigneter Antworten umfasst.
  • Chat-Verlauf: Der Chatverlauf ist die Aufzeichnung aller Interaktionen zwischen dem Benutzer und dem Chatbot, einschließlich der Benutzereingaben und der von der KI erzeugten Ausgaben. Die Aufbewahrung des Chatverlaufs ist wichtig, um den Konversationskontext nachzuverfolgen und sicherzustellen, dass die KI kontextbezogene Antworten generieren kann.
  • Chat-Ausgabe: Die Chat-Ausgabe bezieht sich auf die von der KI generierten Nachrichten, die als Reaktion auf die Eingaben des Benutzers an diesen gesendet werden. Die Generierung kontextbezogener und ansprechender Chat-Ausgaben ist für ein positives Nutzererlebnis unerlässlich.

Ein Chatverlauf kann mehrere Eingaben haben, Chatverlauf und Chateingabe sind erforderlich im Chatverlauf.

  • Im Abschnitt Chat-Flow-Inputs kann ein Flow-Input als Chat-Input markiert werden. Dann können Sie den Chat-Eingabewert durch Eingabe in das Chat-Feld ausfüllen.

  • Prompt Flow kann dem Benutzer helfen, den Chatverlauf zu verwalten. Die chat_history im Abschnitt Eingaben ist für die Darstellung des Chatverlaufs reserviert. Alle Interaktionen in der Chatbox, einschließlich der Chat-Eingaben des Benutzers, der generierten Chat-Ausgaben und anderer Flow-Eingaben und -Ausgaben, werden automatisch im Chatverlauf gespeichert. Der Benutzer kann den Wert von chat_history im Bereich Eingänge nicht manuell einstellen. Die Struktur ist eine Liste von Ein- und Ausgaben:

    [
    {
        "inputs": {
        "<flow input 1>": "xxxxxxxxxxxxxxx",
        "<flow input 2>": "xxxxxxxxxxxxxxx",
        "<flow input N>""xxxxxxxxxxxxxxx"
        },
        "outputs": {
        "<flow output 1>": "xxxxxxxxxxxx",
        "<flow output 2>": "xxxxxxxxxxxxx",
        "<flow output M>": "xxxxxxxxxxxxx"
        }
    },
    {
        "inputs": {
        "<flow input 1>": "xxxxxxxxxxxxxxx",
        "<flow input 2>": "xxxxxxxxxxxxxxx",
        "<flow input N>""xxxxxxxxxxxxxxx"
        },
        "outputs": {
        "<flow output 1>": "xxxxxxxxxxxx",
        "<flow output 2>": "xxxxxxxxxxxxx",
        "<flow output M>": "xxxxxxxxxxxxx"
        }
    }
    ]
    

Hinweis

Die Möglichkeit, den Chatverlauf automatisch zu speichern oder zu verwalten, ist eine Funktion auf der Erstellungsseite, wenn Tests in der Chatbox durchgeführt werden. Bei Batchläufen müssen die Benutzer den Chatverlauf in den Datensatz des Batchlaufs aufnehmen. Wenn kein Chatverlauf zum Testen zur Verfügung steht, setzen Sie chat_history einfach auf eine leere Liste [] im Datensatz des Batchlaufs.

Autorenabfrage mit Chatverlauf

Die Einbeziehung des Chatverlaufs in Ihre Eingabeaufforderungen ist für die Erstellung kontextbezogener und ansprechender Chatbot-Antworten unerlässlich. In Ihren Eingabeaufforderungen können Sie auf chat_history verweisen, um vergangene Interaktionen abzurufen. Auf diese Weise können Sie auf vorherige Ein- und Ausgaben verweisen, um relevante kontextbezogene Antworten zu erstellen.

Verwenden Sie die For-Schleifen-Grammatik der Sprache Jinja, um eine Liste der Ein- und Ausgaben von chat_history anzuzeigen.

{% for item in chat_history %}
user:
{{item.inputs.question}}
assistant:
{{item.outputs.answer}}
{% endfor %}

Testen mit dem Chatfeld

Das Chatfeld bietet eine interaktive Möglichkeit, Ihren Chatflow zu testen, indem Sie eine Unterhaltung mit Ihrem Chatbot simulieren. Führen Sie die folgenden Schritte aus, um Ihren Chatflow mithilfe des Chatfelds zu testen:

  1. Wählen Sie die Schaltfläche „Chatten“ aus, um das Chatfeld zu öffnen.
  2. Geben Sie Ihre Testeingaben in das Chatfeld ein, und drücken Sie die EINGABETASTE, um sie an den Chatbot zu senden.
  3. Überprüfen Sie die Antworten des Chatbots, um sicherzustellen, dass sie kontextbezogen, angemessen und korrekt sind.
  4. Ablaufverfolgung anzeigen ermöglicht ein schnelles Beobachten und Debuggen.

Nächste Schritte