Zusammenfassung
- Dify in 5 Minuten mit Docker Compose selbst hosten (
docker-compose up -d) - Ersten Chatbot im visuellen Editor erstellen – ohne Code
- RAG durch Hochladen von Dokumenten in eine Wissensdatenbank einbinden (unterstützt PDF, TXT, Markdown)
- Mit Workflows, APIs oder benutzerdefinierten Modellanbietern (OpenAI, Ollama etc.) erweitern
- In Produktion mit Kubernetes oder Cloud-Anbietern bereitstellen
1. Selbsthosting mit Docker Compose
Voraussetzungen
- Docker Engine ≥ 24.0.0 und Docker Compose ≥ 2.23.0 Docker-Installationsanleitung
- 4 GB+ RAM, 2 vCPUs (8 GB+ RAM für Produktionsumgebungen empfohlen)
- Ports
3000(Frontend),5001(API) und6379(Redis) verfügbar
Schritt-für-Schritt-Einrichtung
-
Repository klonen und in das Verzeichnis wechseln:
git clone https://github.com/langgenius/dify.git cd dify -
Beispiel-Umgebungsdatei kopieren und bearbeiten:
cp .env.example .env nano .env # oder verwenden Sie Ihren bevorzugten EditorWichtige Variablen zur Konfiguration:
# Erforderlich für Selbsthosting CONSOLE_API_URL=http://localhost:5001 APP_API_URL=http://localhost:5001 SECRET_KEY=ihre-zufällige-geheime-schlüssel-hier # Generieren mit `openssl rand -hex 32` # Optional: E-Mail-Konfiguration (für Passwortzurücksetzung) MAIL_DEFAULT_SENDER=no[email protected] SMTP_SERVER=smtp.ihranbieter.de SMTP_PORT=587 SMTP_USERNAME[email protected] SMTP_PASSWORD=ihr-smtp-passwort -
Dienste starten:
docker-compose up -dErwartete Ausgabe:
Creating dify-redis ... done Creating dify-db ... done Creating dify-api ... done Creating dify-worker ... done Creating dify-web ... done -
Überprüfen, ob die Container laufen:
docker-compose psErwartete Ausgabe:
Name Command State Ports ----------------------------------------------------------------- dify-api /bin/sh -c gunicorn ... Up 0.0.0.0:5001->5001/tcp dify-db docker-entrypoint.sh ... Up 5432/tcp dify-redis docker-entrypoint.sh ... Up 6379/tcp dify-web /docker-entrypoint.sh Up 0.0.0.0:3000->3000/tcp dify-worker /bin/sh -c celery -A ... Up -
Auf das Dify-Dashboard zugreifen:
- Öffnen Sie
http://localhost:3000in Ihrem Browser. - Registrieren Sie ein Admin-Konto (dies ist der erste Benutzer).
- Öffnen Sie
Häufige Fehler und Lösungen
-
Fehler:
Port 3000 bereits in VerwendungLösung: Beenden Sie den Konflikt verursachenden Dienst oder ändern Sie den Port indocker-compose.yml(aktualisieren Sieportsfürdify-web). -
Fehler:
PostgreSQL-Verbindung verweigertLösung: Stellen Sie sicher, dassDB_HOST=dbin.envgesetzt ist (Docker-internes Netzwerk). Wenn Sie eine externe Datenbank verwenden, setzen SieDB_HOSTauf die korrekte IP/Hostname. -
Fehler:
Redis-Verbindung fehlgeschlagenLösung: Überprüfen SieREDIS_HOST=redisin.env. Wenn Redis extern läuft, aktualisieren SieREDIS_HOSTund stellen Sie sicher, dass der Port (6379) offen ist.
2. Erstellen Ihres ersten Chatbots
Schritt 1: Zum Studio navigieren
- Melden Sie sich bei Dify unter
http://localhost:3000an. - Klicken Sie auf "Studio" in der linken Seitenleiste.
- Klicken Sie auf "Anwendung erstellen" und wählen Sie "Chatbot".
Schritt 2: Chatbot konfigurieren
- Name:
Mein erster Chatbot - Beschreibung:
Ein einfacher Q&A-Bot zum Testen von Dify. - Modellanbieter: Wählen Sie
OpenAI(oder einen anderen konfigurierten Anbieter – siehe Abschnitt 6).- Für lokale Tests verwenden Sie
Ollamamit einem Modell wiellama3(erfordert lokal laufendes Ollama).
- Für lokale Tests verwenden Sie
- Prompt-Vorlage:
Sie sind ein hilfreicher Assistent. Beantworten Sie die Frage des Benutzers prägnant. Benutzerfrage: {{query}} - Klicken Sie auf "Speichern", um den Chatbot zu erstellen.
Schritt 3: Chatbot testen
- Klicken Sie auf die Registerkarte "Debug" im Chatbot-Editor.
- Geben Sie eine Testfrage ein (z. B.
Was ist Dify?). - Überprüfen Sie, ob die Antwort Ihrer Prompt-Vorlage entspricht.
Schritt 4: Chatbot veröffentlichen
- Klicken Sie auf die Schaltfläche "Veröffentlichen" in der oberen rechten Ecke.
- Wählen Sie "In Produktion veröffentlichen".
- Ihr Chatbot ist nun unter folgender Adresse verfügbar:
(Ersetzen Sie
http://localhost:3000/chatbot/{app-id}{app-id}durch die ID Ihres Chatbots aus der URL.)
3. Wissensdatenbank und RAG-Einrichtung
Schritt 1: Wissensdatenbank erstellen
- Klicken Sie im Dify-Dashboard auf "Wissen" in der linken Seitenleiste.
- Klicken Sie auf "Wissensdatenbank erstellen".
- Name:
Produktdokumentation - Beschreibung:
Interne Produktdokumente für RAG. - Embedding-Modell: Wählen Sie
text-embedding-ada-002(OpenAI) oderbge-small-en(lokal). - Klicken Sie auf "Speichern".
Schritt 2: Dokumente hochladen
- Klicken Sie auf die Registerkarte "Dokumente" in Ihrer Wissensdatenbank.
- Klicken Sie auf "Hochladen" und wählen Sie eine Datei aus (unterstützt PDF, TXT, Markdown, DOCX, CSV).
- Beispiel: Laden Sie ein PDF Ihrer Produktdokumentation hoch.
- Warten Sie, bis das Dokument verarbeitet ist (Status ändert sich von
In WarteschlangezuIndiziert).
Schritt 3: Wissensdatenbank mit Ihrem Chatbot verbinden
- Öffnen Sie Ihren Chatbot im Studio.
- Klicken Sie auf die Registerkarte "Kontext" in der linken Seitenleiste.
- Klicken Sie auf "Wissensdatenbank hinzufügen" und wählen Sie
Produktdokumentation. - Aktualisieren Sie die Prompt-Vorlage, um die Wissensdatenbank einzubeziehen:
Sie sind ein hilfreicher Assistent. Nutzen Sie den folgenden Kontext, um die Frage des Benutzers zu beantworten: Kontext: {{knowledge}} Benutzerfrage: {{query}} - Klicken Sie auf "Speichern" und testen Sie den Chatbot mit einer Frage zu Ihrer Dokumentation.
Schritt 4: Erweiterte RAG-Einstellungen konfigurieren
- Klicken Sie im Kontext-Tab auf das Zahnrad-Symbol (⚙️) neben Ihrer Wissensdatenbank.
- Passen Sie die folgenden Einstellungen an:
- Top K:
3(Anzahl der abzurufenden Chunks) - Score-Schwellenwert:
0.5(minimale Relevanzbewertung) - Abrufmodus:
Einzel(oderMehrfachfür Abfragen über mehrere Dokumente)
- Top K:
- Klicken Sie auf "Speichern".
4. Workflow-Builder
Schritt 1: Workflow erstellen
- Klicken Sie im Dify-Dashboard auf "Studio" > "Anwendung erstellen" > "Workflow".
- Name:
Kundensupport-Triage - Beschreibung:
Weiterleitung von Kundenanfragen an das richtige Team.
Schritt 2: Workflow aufbauen
- Ziehen Sie einen "Start"-Knoten auf die Arbeitsfläche.
- Ziehen Sie einen "LLM"-Knoten und verbinden Sie ihn mit dem Start-Knoten.
- Modell:
gpt-4o(oder Ihr bevorzugtes Modell) - Prompt:
Klassifizieren Sie die Anfrage des Benutzers in eine der folgenden Kategorien: - Rechnungsstellung - Technischer Support - Allgemeine Anfrage Anfrage: {{query}} Kategorie:
- Modell:
- Ziehen Sie einen "Bedingung"-Knoten und verbinden Sie ihn mit dem LLM-Knoten.
- Bedingung 1:
{{llm_output}} enthält "Rechnungsstellung"- Aktion: Verbinden Sie ihn mit einem "Antwort"-Knoten mit der Nachricht:
Ihre Anfrage zur Rechnungsstellung wurde an das Finanzteam weitergeleitet.
- Aktion: Verbinden Sie ihn mit einem "Antwort"-Knoten mit der Nachricht:
- Bedingung 2:
{{llm_output}} enthält "Technischer Support"- Aktion: Verbinden Sie ihn mit einem "Antwort"-Knoten mit der Nachricht:
Ein Mitarbeiter des technischen Supports wird Sie in Kürze kontaktieren.
- Aktion: Verbinden Sie ihn mit einem "Antwort"-Knoten mit der Nachricht:
- Standardbedingung: Verbinden Sie ihn mit einem "Antwort"-Knoten mit der Nachricht:
Vielen Dank für Ihre Nachricht! Wir werden uns in Kürze bei Ihnen melden.
- Bedingung 1:
- Klicken Sie auf "Speichern".
Schritt 3: Workflow testen
- Klicken Sie auf die Registerkarte "Debug".
- Geben Sie eine Testanfrage ein (z. B.
Ich habe eine Frage zu meiner Rechnung). - Überprüfen Sie, ob der Workflow die Anfrage korrekt weiterleitet.
Schritt 4: Workflow veröffentlichen
- Klicken Sie auf "Veröffentlichen" > "In Produktion veröffentlichen".
- Der Workflow ist nun als API verfügbar (siehe Abschnitt 5).
5. API-Zugang und Einbettung
Schritt 1: API-Schlüssel abrufen
- Klicken Sie im Dify-Dashboard auf Ihr Profil-Symbol > "API-Schlüssel".
- Klicken Sie auf "Neuen Schlüssel erstellen".
- Name:
Mein App-Schlüssel - Kopieren Sie den generierten API-Schlüssel (Sie sehen ihn nicht erneut).
Schritt 2: Chatbot-API aufrufen
Verwenden Sie curl, um mit Ihrem Chatbot zu interagieren:
curl --location 'http://localhost:5001/v1/chat-messages' \
--header 'Authorization: Bearer {IHR_API_SCHLÜSSEL}' \
--header 'Content-Type: application/json' \
--data '{
"inputs": {},
"query": "Was ist Dify?",
"response_mode": "blocking",
"conversation_id": "",
"user": "test-benutzer"
}'
Erwartete Ausgabe:
{
"event": "message",
"message_id": "abc123",
"conversation_id": "xyz456",
"answer": "Dify ist eine Open-Source-Plattform für die Entwicklung von LLM-Anwendungen..."
}
Schritt 3: Chatbot in eine Web-App einbetten
Verwenden Sie das Dify JavaScript SDK, um Ihren Chatbot einzubetten:
<!DOCTYPE html>
<html>
<head>
<title>Dify Chatbot-Einbettung</title>
<script src="https://cdn.jsdelivr.net/npm/@dify/[email protected]/dist/dify.umd.min.js"></script>
</head>
<body>
<div id="dify-chatbot" style="width: 400px; height: 600px;"></div>
<script>
const chatbot = new DifyChatbot({
el: '#dify-chatbot',
appId: '{IHRE_APP_ID}', // Diese ID finden Sie in der Chatbot-URL
apiHost: 'http://localhost:5001',
apiKey: '{IHR_API_SCHLÜSSEL}',
user: 'web-benutzer'
});
</script>
</body>
</html>
Hinweis: Ersetzen Sie {IHRE_APP_ID} und {IHR_API_SCHLÜSSEL} durch Ihre Werte.
6. Modellanbieter-Konfiguration
Schritt 1: OpenAI hinzufügen
- Klicken Sie im Dify-Dashboard auf "Einstellungen" > "Modellanbieter".
- Klicken Sie auf "Anbieter hinzufügen" und wählen Sie OpenAI.
- Geben Sie Ihren OpenAI-API-Schlüssel ein (erhalten Sie ihn von OpenAI Platform).
- Klicken Sie auf "Speichern".
Schritt 2: Lokales Modell hinzufügen (Ollama)
- Installieren Sie Ollama lokal:
curl -fsSL https://ollama.com/install.sh | sh ollama pull llama3 - Gehen Sie in Dify zu "Einstellungen" > "Modellanbieter".
- Klicken Sie auf "Anbieter hinzufügen" und wählen Sie Ollama.
- Basis-URL:
http://host.docker.internal:11434(verwenden Siehost.docker.internal, um vom Docker-Container auf den Host zuzugreifen). - Klicken Sie auf "Speichern".
Schritt 3: Anthropic (Claude) hinzufügen
- Holen Sie sich einen Anthropic-API-Schlüssel von Anthropic Console.
- Gehen Sie in Dify zu "Einstellungen" > "Modellanbieter".
- Klicken Sie auf "Anbieter hinzufügen" und wählen Sie Anthropic.
- Geben Sie Ihren API-Schlüssel ein und klicken Sie auf "Speichern".
Schritt 4: Benutzerdefiniertes Modell verwenden
- Klicken Sie in den Modellanbieter-Einstellungen auf "Anbieter hinzufügen" > "Benutzerdefiniert".
- Name:
Mein benutzerdefiniertes Modell - Basis-URL:
https://api.ihremodellanbieter.de/v1 - API-Schlüssel:
ihr-api-schlüssel - Modelle: Fügen Sie Ihr(e) Modell(e) mit deren
nameundcontext_lengthhinzu. - Klicken Sie auf "Speichern".
7. Produktionsbereitstellung
Option 1: Kubernetes (Helm)
- Fügen Sie das Dify-Helm-Repository hinzu:
helm repo add dify https://dify-ai.github.io/helm-charts helm repo update
