Direkt zum Inhalt

Dify AI: Ein Leitfaden mit Demo-Projekt

Hier erfährst du, was Dify ist und wie du ein KI-Reisebüro mit einer einfachen Drag-and-Drop-Oberfläche erstellen kannst.
Aktualisierte 29. Mai 2025  · 12 Min. Lesezeit

Dify ist eine benutzerfreundliche Plattform, mit der du KI-Anwendungen mit wenig oder gar keinem Code erstellen kannst. Es funktioniert durch Ziehen und Ablegen von Blöcken mit verschiedenen Funktionen. Die Informationen fließen durch die Blöcke und werden verarbeitet und kombiniert, um Antworten zu erhalten.

In diesem Artikel erkläre ich dir die Grundlagen von Dify, indem ich dich durch die Schritte zur Erstellung eines KI-Reisebüros führe.

Wir halten unsere Leserinnen und Leser mit The Median auf dem Laufenden, unserem kostenlosen Freitags-Newsletter, der die wichtigsten Meldungen der Woche aufschlüsselt. Melde dich an und bleibe in nur ein paar Minuten pro Woche auf dem Laufenden:

Was ist Dify?

Dify ist eine Plattform, die die Entwicklung von KI-Anwendungen vereinfacht, ohne dass umfangreiche Programmierkenntnisse erforderlich sind. Es bietet eine benutzerfreundliche Low-Code-Umgebung, in der du durch Ziehen und Ablegen verschiedener Komponenten Apps erstellen kannst.

Stell dir Dify als einen digitalen Werkzeugkasten vor, der mit vorgefertigten Bausteinen gefüllt ist, die zu einer funktionalen Software zusammengesetzt werden können. Dieser Ansatz macht Technologie zugänglicher und ermöglicht es auch Menschen mit begrenzten Programmierkenntnissen, ihre Ideen zu verwirklichen.

Jeder Blocktyp hat Eingänge und wandelt diese in verschiedene Ausgänge um, je nach Blocktyp. Die Informationen werden von Block zu Block weitergegeben und umgewandelt, sodass das Endergebnis entsteht.

Erste Schritte mit Dify

Wir haben zwei Möglichkeiten, Dify zu nutzen:

  • Lokale Einrichtung.
  • Verwendung der Cloud-Version.

In diesem Lernprogramm verwenden wir die Cloud-Version. Die Cloud-Version von Dify bietet einen kostenlosen Plan an, sodass du diese Anleitung auch ohne ein kostenpflichtiges Abonnement durchführen kannst.

Wenn du dich für die lokale Einrichtung interessierst, ist der einfachste Weg:

  1. Lade oder klone Dify aus dem offiziellen Repository.
  2. Führe Dify mit Docker aus, wie im Abschnitt Abschnitt Schnellstart in der README des Repositorys beschrieben wird.

Einen Chatflow mit Dify erstellen

Dify bietet mehrere Arten von Apps an. Wir werden uns darauf konzentrieren, eine Chatflow-App zu bauen, also einen KI-Flow, bei dem die Nutzer über eine Chat-Schnittstelle mit dem Agenten interagieren.

Um eine neue Chatflow-App zu erstellen, klickst du zunächst auf "Aus dem Nichts erstellen" und wählst die Option "Chatflow".

Einen schwarzen Fluss in Dify erstellen

Um den Fluss zu erstellen, gibst du einen Namen ein und klickst dann auf "Erstellen":

Einen Chatflow in Dify erstellen

Dadurch wird der folgende Standardfluss erstellt:

Der Standard-Chatflow in Dify

Dieser Fluss hat drei Blöcke:

  • Der Startblock ist für das Starten des Flusses verantwortlich. Bei einem Chatflow wird der Fluss mit dem Senden einer Nachricht durch den Nutzer gestartet.
  • Der LLM-Knoten nimmt die Benutzernachricht entgegen und sendet sie an einen LLM, in diesem Fall gpt-4.
  • Der letzte Knoten wird verwendet, um eine Nachricht im Chat anzuzeigen. In diesem Beispiel ist er mit dem LLM-Knoten verbunden, also wird die Ausgabe des LLM-Knotens an den Chat gesendet.

Diese drei Knotenpunkte bilden zusammen einen KI-Chat, der ChatGPT ähnelt. Bevor wir diese App starten, müssen wir das OpenAI-Plugin installieren und einrichten.

Installieren und Einrichten des OpenAI-Plugins

Um das OpenAI-Plugin zu installieren, musst du Folgendes tun:

  1. Klicke auf die Schaltfläche "Plugins" in der oberen rechten Ecke.

Hinzufügen des openai-Plugins auf dify

  1. Klicke auf "Vom Marketplace installieren".

Zugriff auf den Marktplatz auf dify

  1. Gib "openai" in das Suchfeld ein und klicke auf das OpenAI-Plugin.

Installation des OpenAI-Plugins auf dify

  1. Wähle das OpenAI-Plugin aus und klicke auf "Installieren".

Als nächstes müssen wir den OpenAI API-Schlüssel einrichten. Wenn du noch keine hast, kannst du sie hier. Beachte, dass die Nutzung der OpenAI API nicht kostenlos ist. Du musst also eine Zahlungsmethode mit dem API-Schlüssel verknüpfen.

Sobald wir einen Schlüssel haben, können wir ihn konfigurieren, indem wir:

  1. Wähle den LLM-Knoten aus.

Auswählen eines Dify-Blocks

  1. Klicke auf das Konfigurationssymbol neben dem Modellnamen.

Konfigurieren einer LLM-Sperre auf dify

  1. Klicke oben auf das Modell-Dropdown.

Das Modell-Dropdown

  1. Klicke unten in der Liste auf "Modellanbietereinstellungen".

Konfigurieren des Modellanbieters auf dify

  1. Klicke im Abschnitt "API-Schlüssel" auf "Einrichten".

Modellaufbau auf Dify

  1. Füge den API-Schlüssel ein und klicke auf "Speichern".

Den OpenAI API-Schlüssel auf dify konfigurieren

Ausführen der App

Jetzt können wir die App starten, indem wir auf die Schaltfläche Vorschau klicken:

Vorschau auf die Bewerbung.

Im Moment ist er noch nicht sehr interessant, da er nur ein KI-Chatbot ist. Denke daran, dass es nichts tut, bis der Nutzer eine Nachricht sendet.

Beispiel-Chat auf dify

Variablen erstellen

Dify ermöglicht es, den Zustand der Anwendung zu speichern, indem es Variablen Werte zuweist, die für alle Blöcke zugänglich sind.

Um eine Variable zu erstellen, klicke auf die Schaltfläche Variable:

Hinzufügen einer Variable auf dify

Lass uns eine Variable erstellen, um den Namen des Nutzers zu speichern:

Variable Konfiguration auf Dify

Diese Konfiguration erstellt eine Variable namens name, die einen String (Text) speichert. Wir haben den Standardwert leer gelassen, sodass die Variable anfangs eine leere Zeichenkette sein wird.

Es gibt verschiedene Möglichkeiten, wie wir sie auffüllen können, aber die gängigste ist, einen KI-Block zu verwenden, der sie automatisch aus der Konversation herausfindet. Wie man das macht, erfahren wir später. Zuerst lernen wir, wie man den Wert einer Variablen überprüft, um den Ablauf der Anwendung zu steuern.

IF/ELSE-Blöcke

Um den Wert einer Variablen zu überprüfen, können wir einen IF/ELSE-Block verwenden. Dieser Block wird verwendet, um verschiedene Aktionen abhängig vom Wert einer Variablen auszuführen.

Um einen neuen Block hinzuzufügen, klickst du auf die Schaltfläche "+" am unteren Rand:

Hinzufügen eines Blocks auf dify

Wähle dann den Block aus, den du hinzufügen möchtest. In diesem Fall wählen wir "IF/ELSE":

Der IF/ELSE-Block auf dify

Dann klicken wir auf den Block, um ihn zu konfigurieren, indem wir die Variable name auswählen, die wir zuvor erstellt haben.

Um es zu testen, fügen wir zwei Antwortblöcke hinzu. Diese Blöcke werden verwendet, um eine Nachricht im Chat anzuzeigen. Wir verbinden einen davon mit dem Ausgang IF (der läuft, wenn die Bedingung wahr ist) und den anderen mit dem Ausgang ELSE (der läuft, wenn die Bedingung falsch ist).

Steuerung des Flusses mit einem IF/ELSE-Block auf dify

Für die Ausgabe IF stelle ich die Zeichenfolge "Sorry, I don't know your name." ein, während ich für die Ausgabe ELSE"Hello, {name}!" einstelle. Wir können die geschweiften Klammern verwenden, um eine Variable in eine Zeichenkette einzufügen. Das wird später beim Erstellen von Prompts nützlich sein.

Wir können diesen Chatflow ausprobieren, indem wir auf die Schaltfläche "Vorschau" klicken. Beachte, dass ein Chatflow durch eine Nutzernachricht ausgelöst wird, also müssen wir zuerst eine Nachricht senden, z.B. "Hallo". Hier sind die Ergebnisse, je nachdem, ob der Name gesetzt ist oder nicht (für das zweite Beispiel habe ich ihn manuell in der Schnittstellenvariable gesetzt):

Ergebnisse der Flusskontrolle

Variablenzuweiser und Parameterextraktorblöcke

Wir können KI verwenden, um die Werte von Variablen zu identifizieren und zu extrahieren, indem wir einen Parameter Extractor-Block verwenden. Dieser Block verwendet einen LLM, um Informationen aus dem Gespräch zu extrahieren.

Parameter-Extraktor-Block

Zuerst fügen wir einen Parameter-Extraktor-Block hinzu, der mit dem Zweig IF verbunden ist. Hier ist die Konfiguration des Blocks:

Konfiguration des Parameterextraktors auf dify

  • Die INPUT VARIABLE wird auf sys.query gesetzt, was der Benutzernachricht entspricht. Das bedeutet, dass der Parameter Extractor-Block versuchen wird, den Wert aus der Benutzernachricht zu extrahieren.
  • Auf EXTRACTION PARAMETERS definieren wir die Informationen, die wir extrahieren wollen. Leider können wir hier nicht direkt eine Variable angeben, also müssen wir diese Information neu definieren, indem wir auf den "+"-Button klicken.

Parameterkonfiguration auf dify

  • Das Feld INSTRUCTION ist die Eingabeaufforderung, die dem LLM sagt, was zu tun ist.
  • Als Nächstes fügen wir einen Variablen-Zuweisungsblock hinzu, um den vom Parameter-Extraktor extrahierten Wert (falls vorhanden) der Variablen name zuzuweisen.

Variabler Zuweiserblock

Stelle sicher, dass du die extrahierte name der Variablen name zuweist.

Variable Zuweiser-Konfiguration

Nach diesem Schritt könnte die Variable name immer noch undefiniert sein, weil es sein könnte, dass der Nutzer seinen Namen nicht angegeben hat. Also fügen wir einen weiteren IF/ELSE-Block zur Überprüfung hinzu. Wenn der Name gesetzt ist, begrüßen wir den Benutzer. Ansonsten fragen wir nach ihrem Namen.

Der Fluss des Namensextraktors

Hier ist ein Beispiel für eine Interaktion:

Beispiel-Chat mit dem Namen-Extraktor-Flow in dify

Dieser Ablauf veranschaulicht die Grundlagen der Dify-Workflows. Egal, wie die Nachricht des Nutzers lautet, wenn der Name nicht definiert ist, versucht er, den Namen aus der Nachricht zu extrahieren. Wenn es scheitert, fragt es danach. Andernfalls wird der Benutzer nur mit seinem Namen begrüßt.

Zu diesem Zeitpunkt gibt es keine LLM-Sperre, also wird der Agent nichts weiter tun.

Code-Block

Codeblöcke können verwendet werden, um eigenen Python-Code auszuführen. Ändern wir den vorherigen Ablauf, um den Standort des Nutzers anstelle des Nutzernamens zu extrahieren. Dann werden wir einen Code-Block verwenden, um eine Anfrage an eine Wetter-API zu stellen und die Wettervorhersage an den Nutzer zu senden.

  • Erstelle eine neue Variable namens location.
  • Ändere die IF/ELSE-Blöcke so, dass sie auf location statt auf name prüfen.
  • Ändere den Parameter-Extraktor-Block so, dass er den Ort anstelle des Namens extrahiert.
  • Ändere den Variablenzuweisungsblock, um den extrahierten Wert der Variable location zuzuweisen.
  • Ändere die Antwortblöcke so, dass sie nach dem Ort fragen bzw. den Ort anzeigen.

Nach diesen Schritten sollte der Ablauf wie folgt aussehen:

Standortabsaugung im Dify

Hier ist ein Beispiel für eine Interaktion:

Beispiel-Chat mit dem Standort-Extraktor

Der nächste Schritt ist das Hinzufügen eines Code-Blocks, nachdem wir den Standort festgelegt haben. Dieser Block stellt eine Anfrage an die OpenWeather API um die Wettervorhersage für diesen Ort zu erfragen.

Die Nutzung dieser API ist kostenlos, solange wir nicht zu viele Anfragen stellen. 

Ersetze den zweiten Antwortblock durch einen Codeblock. 

Der Code-Block

Konfiguriere ihn so, dass er einen einzelnen Parameter mit dem Wert location empfängt.

Konfigurieren des Codeblocks

Für den Python-Code können wir das Paket requests verwenden, um das Wetter von der OpenWeather-API abzurufen:

import requests

API_KEY = "PASTE_YOUR_API_KEY_HERE"

def main(location: str) -> str:
    base_url = "http://api.openweathermap.org/data/2.5/weather"
    params = {
        "q": location,
        "appid": API_KEY,
        "units": "metric",
    }
    response = requests.get(base_url, params=params)
    data = response.json()
    if response.status_code == 200:
        weather_desc = data["weather"][0]["description"]
        temp = data["main"]["temp"]
        return {
            "result": f"Current weather in {location}: {weather_desc}, Temperature: {temp}°C"
        }
    else:
        return {
            "result": "Could not retrieve weather data",
        }

Schließlich verbinden wir die Ausgabe des Code-Knotens mit einem Antwort-Knoten, um sie dem Benutzer anzuzeigen.

Das Ergebnis des Codeblocks anzeigen

Wir haben jetzt einen Chatflow, der uns die Wettervorhersage sagen kann:

Probe was mit dem Wetter-Agent

Projekt: Einen KI-Agenten für den Reiseplaner erstellen

Wir haben jetzt alle Werkzeuge, die wir brauchen, um ein KI-Reisebüro aufzubauen. Die Möglichkeiten sind endlos, aber um dieses Tutorial nicht zu kompliziert zu machen, halten wir es einfach.

Der Agent wird sich auf die Planung eines einzelnen Tages der Reise konzentrieren. Zunächst werden der Standort des Nutzers und die Art der Aktivitäten, die er gerne macht, erfasst. Hierfür verwenden wir zwei Variablen:

  • location: Speichere den Ort, an dem der Nutzer unterwegs ist.
  • activities: Ein Array mit Strings, in dem die Aktivitäten gespeichert sind, die der Benutzer durchführen möchte.

Aktivitäten Variable Konfiguration in dify

So können wir einen Fluss erstellen, um beide Variablen zu extrahieren:

Der Zweiparameter-Extraktionsfluss in dify

In diesem Beispiel beginnen wir mit einem Variablenextraktionsblock, um sowohl die location als auch die Liste der activities zu extrahieren.

Die Konfiguration des dualen Parameterextraktors

Dann verwenden wir IF/ELSE-Blöcke, um zu prüfen, ob jeder dieser Parameter extrahiert wurde und aktualisieren die Variablen, wenn dies der Fall ist. Im Gegensatz zu unseren vorherigen Beispielen kann der Nutzer hier die Werte aktualisieren.

Am Ende der Wertextraktion und der Variablenzuweisung fügen wir einen weiteren IF/ELSE-Block hinzu, um zu prüfen, ob es fehlende Werte gibt. Wenn etwas fehlt, bitten wir den Nutzer explizit darum, es bereitzustellen.

Abfrage der Werte, wenn der Nutzer sie nicht angegeben hat.

Wenn sowohl location als auch activities definiert sind, verwenden wir den Code-Block, den wir zuvor erstellt haben, um das Wetter an dem angegebenen Ort zu ermitteln. Schließlich geben wir das Wetter, den Ort und die Aktivitäten an einen LLM-Block weiter, um den Tag des Nutzers zu planen.

Die LLM-Konfiguration des Reisebüros.

Der LLM-Block ist mit einem Systemprompt konfiguriert, der dem Modell sagt, was es tun soll. Der Ort, die Aktivitäten und das Wetter werden miteinbezogen. Hier ist der letzte Teil des Flusses:

Der endgültige Fluss

Hier ist ein Beispiel für eine Interaktion mit dem Agenten:

Beispielhafte Interaktion mit dem Reisebüro in Dify

Wir sehen in der Antwort, dass der Agent dank des Code-Knotens dem Nutzer das Wetter mitteilen und es bei der Planung der Aktivitäten berücksichtigen kann.

Aufgrund der Art und Weise, wie der Ablauf eingerichtet wurde, wird der Agent, wenn der Nutzer die Informationen direkt in der ersten Nachricht angibt, direkt einen Plan für den Tag erstellen.

Ein weiteres Beispiel für eine Interaktion, bei der der Nutzer die Informationen direkt bereitstellt.

Eine eigene Begrüßung definieren

Du hast vielleicht bemerkt, dass der Agent den Benutzer mit einer Nachricht begrüßt hat:

Grußbotschaft

Um dies zu ermöglichen, müssen wir die Funktion "Gesprächseröffner" (Conversation Opener) aktivieren.

Zugriff auf die Dify Funktionen

Aktivieren der Begrüßungsnachricht auf dify

Dify Tools

In diesem Tutorium haben wir die grundlegenden Bausteine von Dify kennengelernt. Ein Aspekt, den wir nicht behandelt haben, waren Werkzeuge.

In Dify sind Tools leistungsstarke Erweiterungen, die es deinen KI-Agenten ermöglichen, über die Grenzen eines Sprachmodells hinaus mit der Außenwelt zu interagieren. Ein LLM kann zwar Schlussfolgerungen ziehen und Antworten auf der Grundlage seiner Trainingsdaten und des Kontextes der Aufforderung generieren, hat aber keinen Echtzeit-Zugang zu Live-Daten oder externen Diensten.

Tools lösen dieses Problem, indem sie deinen Agenten in die Lage versetzen, API-Aufrufe zu tätigen, Datenbanken abzufragen, Berechnungen durchzuführen, Dokumente abzurufen und vieles mehr, um so als Brücke zwischen deiner KI und externen Informationsquellen zu fungieren.

Zugriff auf die Dify Tools

Du kannst die Tools in Dify über die visuelle Schnittstelle der Plattform konfigurieren, indem du den Tooltyp (z. B. HTTP-Anfragen, Code-Interpreter oder Plugins von Drittanbietern), das Eingabe-/Ausgabeschema und alle Authentifizierungsanforderungen festlegst. Sobald sie eingerichtet sind, können diese Werkzeuge in deinem Agentenfluss über Werkzeugblöcke verwendet werden, die es dir ermöglichen, Daten an und von dem Werkzeug zu übergeben und die Ergebnisse in LLM-Knoten oder andere Logikblöcke einzuspeisen.

Hinzufügen eines Werkzeugblocks

Dadurch werden deine Agenten nicht nur intelligenter, sondern auch handlungsorientierter und können durch die Interaktion mit realen Diensten aktuelle, kontextbezogene Antworten geben.

In unserem Beispiel haben wir einen Codeblock verwendet, um eine Anfrage an die Wetter-API zu stellen. Eine Alternative wäre gewesen, ein Tool zu entwickeln und es dem LLM zur Verfügung zu stellen.

Fazit

In diesem Tutorial haben wir uns einige der grundlegenden Bausteine angeschaut, die du brauchst, um mit Dify zu arbeiten. Dify bietet jedoch noch viele weitere Funktionen und Möglichkeiten, die es zu entdecken gilt.

Um dein Verständnis zu festigen, wäre es eine gute Übung, das von uns erstellte Reisebüro zu verbessern. Ziehe in Erwägung, Funktionen wie die Internetsuche hinzuzufügen, um lokale Aktivitäten online zu finden, was die Funktionalität des Agenten bereichern und dynamischere Vorschläge liefern kann.

Wenn du dich für KI-Agentenentwickler wie Dify interessierst, empfehle ich dir, unsere anderen Tutorials zu lesen:


François Aubry's photo
Author
François Aubry
LinkedIn
Full-Stack-Ingenieur und Gründer von CheapGPT. Das Unterrichten war schon immer meine Leidenschaft. Schon als Schülerin habe ich eifrig nach Möglichkeiten gesucht, anderen Schülern Nachhilfe zu geben und sie zu unterstützen. Diese Leidenschaft führte dazu, dass ich einen Doktortitel anstrebte, wobei ich auch als Lehrassistentin tätig war, um meine akademischen Bemühungen zu unterstützen. In diesen Jahren fand ich im traditionellen Klassenzimmer große Erfüllung, indem ich Verbindungen förderte und das Lernen erleichterte. Doch mit dem Aufkommen von Online-Lernplattformen erkannte ich das transformative Potenzial der digitalen Bildung. Ich war sogar aktiv an der Entwicklung einer solchen Plattform an unserer Hochschule beteiligt. Es ist mir ein großes Anliegen, traditionelle Unterrichtsprinzipien mit innovativen digitalen Methoden zu verbinden. Meine Leidenschaft ist es, Kurse zu erstellen, die nicht nur ansprechend und informativ, sondern auch für Lernende im digitalen Zeitalter zugänglich sind.
Themen

Lerne KI mit diesen Kursen!

Lernpfad

AI Fundamentals

0 Min.
Discover the fundamentals of AI, dive into models like ChatGPT, and decode generative AI secrets to navigate the dynamic AI landscape.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Der Blog

Die 50 besten AWS-Interview-Fragen und Antworten für 2025

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interviewfragen, zusammen mit Fragen, die auf realen Situationen basieren.
Zoumana Keita 's photo

Zoumana Keita

15 Min.

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 Min.

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Mehr anzeigenMehr anzeigen