Schritt-für-Schritt-Anleitung zur Nutzung von Dify Workflows

Schritt-für-Schritt-Anleitung zur Erstellung einer Nachrichten-Push-Anwendung mit Dify Workflows
Einleitung
In diesem Blogbeitrag zeigen wir, wie man mit Dify Workflows eine Nachrichten-Push-Anwendung erstellt.
Unser Ziel ist es, die neuesten Artikel von Hacker News abzurufen und die aufbereiteten Informationen in eine Feishu-Gruppe zu pushen. Durch diesen Prozess werden wir die leistungsstarken Funktionen von Workflows und die Bequemlichkeit der automatisierten Verarbeitung erleben.
Was ist ein Workflow?
Bevor wir beginnen, lassen Sie uns kurz den Begriff Workflow verstehen.
Ein Workflow ist eine Reihe von geordneten Aufgaben, Aktivitäten oder Schritten, die entworfen wurden, um einen bestimmten Geschäftsprozess oder Arbeitsablauf abzuschließen. Workflows beschreiben die Reihenfolge der Aufgaben, Bedingungen, Verantwortlichkeiten und andere relevante Informationen, um sicherzustellen, dass die Arbeit gemäß den festgelegten Prozessen und Regeln durchgeführt wird. Workflows beinhalten oft die Koordination und Interaktion zwischen mehreren Beteiligten und Systemen.
Workflows reduzieren die Komplexität des Systems, indem sie komplexe Aufgaben in kleinere Unteraufgaben (Knoten) aufteilen, verringern die Abhängigkeit von Prompt-Techniken und Modellinferenzfähigkeiten und verbessern die Leistung von LLM-Anwendungen für komplexe Aufgaben. Sie erhöhen die Erklärbarkeit, Stabilität und Fehlertoleranz des Systems.
Verwendete Knotentypen
Im Implementierungsprozess verwenden wir die folgenden Knotentypen:
- Startknoten: Konfiguration der Anfangsparameter für den Programmstart.
- HTTP-Anforderungs-Knoten: Senden von HTTP-Anfragen zum Abrufen von Daten.
- Iteratorknoten: Durchlaufen eines Arrays und Ausführen mehrerer Schritte.
- Parameterextraktionsknoten: Verarbeiten und Extrahieren von Parametern.
- Vorlagenknoten: Ermöglicht die flexible Datenumwandlung und Textverarbeitung mithilfe der Python-Template-Sprache Jinja2.
- LLM-Knoten: Aufruf eines großen Sprachmodells zur Verarbeitung natürlicher Sprache.
- Nachrichtensendeknoten für Feishu: Pushen der aufbereiteten Informationen in Feishu.
Schritte zur Durchführung
Erster Schritt: Start
Durch den Startknoten können wir die Anfangsparameter für den Programmstart konfigurieren, wie z.B. API-Schlüssel, Kategorien usw. Damit haben wir den ersten Schritt gemacht. Als Nächstes beginnen wir mit dem Abrufen der gewünschten Daten.
Zweiter Schritt: HTTP-Anfrage
Nehmen wir Hacker News als Beispiel und suchen wir die API zum Abrufen der Listeninformationen https://hacker-news.firebaseio.com/v0/beststories.json?print=pretty
.
Erstellen Sie einen HTTP-Anforderungs-Knoten, indem Sie die HTTP-Anfrage mit URL, Header, Abfrageparametern, Inhalt des Anfragekörpers und Authentifizierungsinformationen konfigurieren.
Die Rückgabewerte der HTTP-Anfrage umfassen den Antwortkörper, den Statuscode, die Antwortheader und Dateien. Diese Variablen können in den nachfolgenden Knoten direkt verwendet werden, was sehr praktisch ist.
Nachdem wir den Knoten konfiguriert haben, können wir ihn zunächst ausführen.
Die Anfrage war erfolgreich und wir haben die IDs der Artikel erhalten. Alles läuft gut, als Nächstes müssen wir die IDs durchlaufen, um die Details der Artikel abzurufen.
Dritter Schritt: Iteration
Die Funktion der Iteration besteht darin, mehrere Schritte auf ein Array auszuführen, bis alle Ergebnisse ausgegeben sind. Sie ist ein nützliches Werkzeug für wiederholbare Aufgaben. Anwendungsfälle sind z.B. Generatoren für lange Artikel, Durchlaufanfragen usw.
Geben Sie die IDs der Artikel in den Iterator ein.
Nachdem wir den Iterationsknoten verbunden haben, stellen wir fest, dass keine verfügbaren Variablen vorhanden sind. Nach dem Durchsehen der Dokumentation erfahren wir:
Die Bedingung für die Verwendung der Iteration ist, dass der Eingabewert als Listenobjekt formatiert ist.
Im Rückgabeformat der obigen Listenanforderung ist der Körper ein String. Daher müssen wir das Ergebnis vor der Iteration verarbeiten und einen Parameterextraktionsknoten
einfügen.
Verwenden Sie den Körper der Listenrückgabe als Eingabeparameter und setzen Sie die Parameterextraktion auf ein Array von Zahlen (Ids). Einfach die Anweisung erklären:
Beispiel:
Körper: [1,2,3,4,5...500]
Gibt Array[Number] zurück und behält nur 10.
So können wir nicht nur die Parameter extrahieren, sondern auch eine Vorverarbeitung der Parameter durchführen, z.B. die Anzahl der Ergebnisse begrenzen. Auf diese Weise können wir sicherstellen, dass wir beim Verknüpfen mit dem Iterationsknoten ein formatiertes und den Anforderungen entsprechendes Array von Eingabeparametern ids
erhalten.
Im Iterationsknoten können wir jedes Element während jeder Iteration abrufen, d.h. die id
jedes Artikels. Auf diese Weise können wir jede id
weiterverarbeiten, z.B. eine neue HTTP-Anfrage senden, um die Details des Artikels abzurufen. So können wir jeden Artikel einzeln verarbeiten und sicherstellen, dass jeder Artikel korrekt abgerufen und verarbeitet wird.
Dann fügen wir den HTTP-Knoten für die Anforderungsdetails hinzu und führen ihn aus, um die Ergebnisse zu erhalten.
Aus den vorherigen Erfahrungen beachten wir, dass die Ausgabevariablen des Iterators ein Array[String] sind.
Was wir als Nächstes tun müssen, ist, den LLM-Knoten zu verwenden, um die Rückgabeergebnisse zu organisieren. Lassen Sie uns den LLM-Knoten betrachten.
Vierter Schritt: LLM-Knoten
Die Funktion des LLM-Knotens besteht darin, ein großes Sprachmodell aufzurufen, um Fragen zu beantworten oder natürliche Sprache zu verarbeiten.
Wenn Sie Dify zum ersten Mal verwenden, müssen Sie vor der Auswahl des Modells im LLM-Knoten die Modellkonfiguration in Systemeinstellungen - Modellanbieter abschließen.
Wir erstellen einen neuen LLM-Knoten, der mit der Iteration verbunden ist, und konfigurieren unser Prompt. Als wir den Benutzerinhalt eingeben, stellen wir fest, dass wir die Artikeldetails nicht abrufen können, da der LLM-Knoten keine Eingaben im Arrayformat unterstützt. Daher müssen wir das Array in Text umwandeln, um fortzufahren.
Durch das Durchsehen der Dokumentation Wie man ein Array in Text umwandelt erfahren wir, dass wir einen Code-Knoten
oder einen Vorlagenknoten
zur Umwandlung verwenden müssen.
Hier verwenden wir den Vorlagenknoten zur Umwandlung:
So kann unser LLM-Knoten normal ausgeführt werden. Klicken Sie auf Ausführen, um zu debuggen.
Erfolgreich ausgeführt.
Fünfter Schritt: Nachricht an Feishu senden
Als Nächstes werden wir die aufbereiteten Informationen an Feishu senden. Fügen Sie den Knoten - Werkzeug - Nachricht an Feishu senden hinzu.
Nachdem Sie einen Bot in der Feishu-Gruppe erstellt haben, erhalten Sie den WEBHOOK-Schlüssel, den Sie eingeben müssen:
Ergebnis
Führen Sie es erneut aus, um das Ergebnis anzuzeigen:
Damit haben wir eine Dify-Anwendung zur Informationsbeschaffung - Datenverarbeitung - Push in IM abgeschlossen. Durch diesen Prozess haben wir gezeigt, wie man Dify Workflows zur automatisierten Nachrichtenübermittlung nutzt und die leistungsstarken Funktionen und die Bequemlichkeit von Workflows erlebt.
Zusammenfassung
Heute haben wir gelernt, wie man mit Dify Workflows eine Nachrichten-Push-Anwendung erstellt. Von der Konfiguration der Anfangsparameter bis hin zum schrittweisen Abrufen von Daten über HTTP-Anfragen, der Verarbeitung von Daten mit Iterationsknoten, der Datenorganisation mit LLM-Knoten und schließlich dem Pushen der aufbereiteten Informationen an Feishu. Der gesamte Prozess zeigt nicht nur die leistungsstarken Funktionen von Workflows, sondern lässt uns auch die Bequemlichkeit der automatisierten Verarbeitung erleben.
Natürlich sind die leistungsstarken Funktionen von Dify Workflows damit noch lange nicht erschöpft. Es bietet noch viele weitere Knoten und Funktionen, die darauf warten, von uns erkundet und angewendet zu werden. In Zukunft werden wir weiterhin verwandte Artikel veröffentlichen, um gemeinsam mit Ihnen die vielen Möglichkeiten von Dify Workflows zu vertiefen und zu erkunden.