Entwickeln eines Prompt Flow
Wichtig
Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche 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
- Wenn Sie noch kein Azure KI-Projekt haben, erstellen Sie zunächst ein Projekt.
- Prompt flow erfordert eine Computesitzung. Wenn Sie nicht über eine Runtime verfügen, können Sie eine in Azure KI Studio erstellen.
- Sie benötigen ein bereitgestelltes Modell.
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:
Melden Sie sich bei Azure KI Studio an, und wählen Sie Ihr Projekt aus.
Wählen Sie im reduzierbaren linken Menü die Option Prompt Flow aus.
Wählen Sie + Erstellen aus.
Wählen Sie in der Kachel Standardflow die Option Erstellen aus.
Geben Sie auf der Seite Neuen Flow erstellenaus einen Ordnernamen ein, und wählen Sie dann Erstellen aus.
Die Seite zur Erstellung des Prompt Flows wird geöffnet. Wählen Sie Computesitzung starten aus, damit eine Computesitzung für den Flow ausgeführt wird.
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.
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.
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.
Wählen Sie eine Verbindung und Bereitstellung im LLM-Tool-Editor aus.
Fügen Sie im Abschnitt Eingaben einen Wert für das Thema hinzu. Beispiel: „Atome“.
Wählen Sie Ausführen aus, um den Flow auszuführen.
Der Flowausführung wird als Ausführen angezeigt.
Nachdem die Flowausführung abgeschlossen ist, wählen Sie Ausgaben anzeigen aus, um die Flow-Ergebnisse anzuzeigen.
Sie können den Status der Flowausführung und die Ausgabe im Abschnitt Ausgaben anzeigen.
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 Standardansicht können Sie auch den Umschalter Rohdatendateimodus aktivieren und den Dateinamen auswählen, um die Datei auf der 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.
Verknüpfen von Knoten
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 Standardansicht aus. 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
Wählen Sie die Registerkarte Ablaufverfolgung auf dem Bildschirm „Ausgaben“ aus, um ein Diagramm anzuzeigen, das Informationen zur Dauer und zu den zugehörigen Tokenkosten des Flows enthält. Wählen Sie unter Knotenname die Option Flow aus, um detaillierte Flowübersichtsinformationen im rechten Bereich anzuzeigen.
Hinweis
Im Prompt Flow-SDK haben wir mehrere Span-Typen definiert, einschließlich 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.
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 vonchat_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:
- Wählen Sie die Schaltfläche „Chatten“ aus, um das Chatfeld zu öffnen.
- Geben Sie Ihre Testeingaben in das Chatfeld ein, und drücken Sie die EINGABETASTE, um sie an den Chatbot zu senden.
- Überprüfen Sie die Antworten des Chatbots, um sicherzustellen, dass sie kontextbezogen, angemessen und korrekt sind.
- Ablaufverfolgung anzeigen ermöglicht ein schnelles Beobachten und Debuggen.