Milvus
Zilliz
  • Home
  • Blog
  • Praktisches Tutorial: Mit Dify und Milvus in 10 Minuten einen RAG-gestützten Dokumenten-Assistenten erstellen

Praktisches Tutorial: Mit Dify und Milvus in 10 Minuten einen RAG-gestützten Dokumenten-Assistenten erstellen

  • Tutorials
April 28, 2025
Ruben Winastwan

Was wäre, wenn Sie Ihre gesamte Dokumentationsbibliothek - Tausende von Seiten technischer Spezifikationen, interner Wikis und Codedokumentation - in einen intelligenten KI-Assistenten verwandeln könnten, der spezifische Fragen sofort beantwortet?

Und noch besser: Was wäre, wenn Sie diesen Assistenten in weniger Zeit erstellen könnten, als es dauert, einen Merge-Konflikt zu beheben?

Das ist das Versprechen von Retrieval Augmented Generation (RAG), wenn es richtig umgesetzt wird.

ChatGPT und andere LLMs sind zwar beeindruckend, stoßen aber schnell an ihre Grenzen, wenn es um die spezifische Dokumentation, Codebasis oder Wissensbasis Ihres Unternehmens geht. RAG überbrückt diese Lücke, indem es Ihre firmeneigenen Daten in die Konversation einbezieht und Ihnen KI-Funktionen zur Verfügung stellt, die für Ihre Arbeit direkt relevant sind.

Das Problem dabei? Die traditionelle RAG-Implementierung sieht so aus:

  • Schreiben von benutzerdefinierten Pipelines zur Erzeugung von Einbettungen

  • Konfigurieren und Bereitstellen einer Vektordatenbank

  • Entwicklung komplexer Prompt-Vorlagen

  • Erstellung von Abfragelogik und Ähnlichkeitsschwellenwerten

  • Erstellen einer benutzbaren Schnittstelle

Aber was wäre, wenn Sie direkt zu den Ergebnissen springen könnten?

In diesem Tutorial werden wir eine einfache RAG-Anwendung mit zwei auf Entwickler fokussierten Tools erstellen:

  • Dify: Eine Open-Source-Plattform, die die RAG-Orchestrierung mit minimaler Konfiguration handhabt

  • Milvus: Eine blitzschnelle Open-Source-Vektordatenbank, die speziell für die Ähnlichkeitssuche und KI-Suchen entwickelt wurde

Am Ende dieses 10-minütigen Leitfadens werden Sie einen funktionierenden KI-Assistenten haben, der detaillierte Fragen zu jeder beliebigen Dokumentensammlung beantworten kann - ein Abschluss in Maschinellem Lernen ist nicht erforderlich.

Was Sie bauen werden

In nur wenigen Minuten aktiver Arbeit werden Sie Folgendes erstellen

  • eine Dokumentenverarbeitungspipeline, die jedes PDF-Dokument in abfragbares Wissen umwandelt

  • Ein Vektorsuchsystem, das genau die richtigen Informationen findet

  • Eine Chatbot-Schnittstelle, die technische Fragen punktgenau beantwortet

  • Eine einsatzfähige Lösung, die Sie in Ihre vorhandenen Tools integrieren können

Und das Beste daran? Das meiste davon wird über eine einfache Benutzeroberfläche (UI) konfiguriert und nicht über benutzerdefinierten Code.

Was Sie benötigen

  • Grundlegende Docker-Kenntnisse (einfaches Niveau docker-compose up -d )

  • Einen OpenAI-API-Schlüssel

  • Ein PDF-Dokument, mit dem Sie experimentieren können (wir werden ein Forschungspapier verwenden)

Sind Sie bereit, etwas wirklich Nützliches in Rekordzeit zu erstellen? Legen wir los!

Erstellen Ihrer RAG-Anwendung mit Milvus und Dify

In diesem Abschnitt werden wir eine einfache RAG-Anwendung mit Dify erstellen, in der wir Fragen zu den in einem Forschungspapier enthaltenen Informationen stellen können. Für das Forschungspapier können Sie jedes beliebige Papier verwenden; in diesem Fall werden wir jedoch das berühmte Papier "Attention is All You Need" verwenden, das uns in die Transformer-Architektur eingeführt hat.

Wir werden Milvus als unseren Vektorspeicher verwenden, in dem wir alle notwendigen Kontexte speichern werden. Für das Einbettungsmodell und das LLM werden wir Modelle von OpenAI verwenden. Daher müssen wir zunächst einen OpenAI-API-Schlüssel einrichten. Hier erfahren Sie mehr über die Einrichtung des Schlüssels.

Schritt 1: Starten von Dify und Milvus Containern

In diesem Beispiel werden wir Dify mit Docker Compose selbst hosten. Vergewissern Sie sich daher, bevor wir beginnen, dass Docker auf Ihrem lokalen Rechner installiert ist. Wenn dies nicht der Fall ist, installieren Sie Docker, indem Sie die Installationsseite konsultieren.

Sobald wir Docker installiert haben, müssen wir den Dify-Quellcode mit dem folgenden Befehl auf unseren lokalen Rechner klonen:

git clone <<https://github.com/langgenius/dify.git>>

Wechseln Sie anschließend in das Verzeichnis docker innerhalb des soeben geklonten Quellcodes. Kopieren Sie dort die Datei .env mit dem folgenden Befehl:

cd dify/docker
cp .env.example .env

Kurz gesagt enthält die Datei .env die Konfigurationen, die Sie benötigen, um Ihre Dify-App zum Laufen zu bringen, wie z. B. die Auswahl der Vektordatenbanken, die Anmeldedaten, die für den Zugriff auf Ihre Vektordatenbank erforderlich sind, die Adresse Ihrer Dify-App, usw.

Da wir Milvus als unsere Vektordatenbank verwenden werden, müssen wir den Wert der Variable VECTOR_STORE in der Datei .env in milvus ändern. Außerdem müssen wir die Variable MILVUS_URI in http://host.docker.internal:19530 ändern, um sicherzustellen, dass es später nach der Bereitstellung keine Kommunikationsprobleme zwischen Docker-Containern gibt.

VECTOR_STORE=milvus
MILVUS_URI=http://host.docker.internal:19530

Nun sind wir bereit, die Docker-Container zu starten. Dazu müssen wir nur noch den Befehl docker compose up -d ausführen. Nach Beendigung des Befehls sehen Sie in Ihrem Terminal eine ähnliche Ausgabe wie unten:

docker compose up -d

Mit dem Befehl docker compose ps können wir den Status aller Container überprüfen und sehen, ob sie in Ordnung sind. Wenn sie alle in Ordnung sind, sehen Sie eine Ausgabe wie unten:

docker compose ps

Und schließlich, wenn wir http://localhost/install aufrufen, sehen wir eine Dify-Landingpage, auf der wir uns anmelden und in kürzester Zeit mit der Erstellung unserer RAG-Anwendung beginnen können.

Sobald Sie sich angemeldet haben, können Sie sich einfach mit Ihren Anmeldedaten bei Dify einloggen.

Schritt 2: Einrichten des OpenAI API-Schlüssels

Das erste, was wir nach der Anmeldung bei Dify tun müssen, ist, unsere API-Schlüssel einzurichten, die wir zum Aufrufen des Einbettungsmodells und des LLMs verwenden werden. Da wir Modelle von OpenAI verwenden werden, müssen wir unseren OpenAI-API-Schlüssel in unser Profil einfügen. Gehen Sie dazu zu "Einstellungen", indem Sie mit dem Mauszeiger über Ihr Profil oben rechts auf der Benutzeroberfläche fahren, wie Sie auf dem Screenshot unten sehen können:

Gehen Sie dann zu "Model Provider", bewegen Sie den Mauszeiger auf OpenAI und klicken Sie dann auf "Setup". Daraufhin wird ein Popup-Fenster angezeigt, in dem Sie aufgefordert werden, Ihren OpenAI-API-Schlüssel einzugeben. Danach sind wir bereit, Modelle von OpenAI als Einbettungsmodell und LLM zu verwenden.

Schritt 3: Dokumente in die Wissensdatenbank einfügen

Lassen Sie uns nun die Wissensbasis für unsere RAG-App speichern. Die Wissensbasis besteht aus einer Sammlung von internen Dokumenten oder Texten, die als relevanter Kontext verwendet werden können, um dem LLM zu helfen, genauere Antworten zu generieren.

In unserem Anwendungsfall ist unsere Wissensbasis im Wesentlichen das Papier "Attention is All You Need". Wir können das Papier jedoch aus mehreren Gründen nicht so speichern, wie es ist. Erstens ist das Papier zu lang, und dem LLM einen zu langen Kontext zu geben, würde nicht helfen, da der Kontext zu breit ist. Zweitens können wir keine Ähnlichkeitssuche durchführen, um den relevantesten Kontext zu finden, wenn unsere Eingabe aus Rohtext besteht.

Daher müssen wir mindestens zwei Schritte unternehmen, bevor wir unsere Arbeit in der Wissensdatenbank speichern. Zunächst müssen wir die Arbeit in Textabschnitte unterteilen und dann jeden Abschnitt mit Hilfe eines Einbettungsmodells in eine Einbettung umwandeln. Schließlich können wir diese Einbettungen in Milvus als unsere Vektordatenbank speichern.

Dify macht es uns leicht, die Texte in der Zeitung in Chunks aufzuteilen und sie in Einbettungen zu verwandeln. Alles, was wir tun müssen, ist, die PDF-Datei des Papiers hochzuladen, die Länge der Chunks festzulegen und das Einbettungsmodell über einen Schieberegler auszuwählen. Um all diese Schritte auszuführen, gehen Sie zu "Wissen" und klicken Sie auf "Wissen erstellen". Anschließend werden Sie aufgefordert, die PDF-Datei von Ihrem lokalen Computer hochzuladen. Daher ist es besser, wenn Sie die Arbeit von ArXiv herunterladen und zunächst auf Ihrem Computer speichern.

Nachdem wir die Datei hochgeladen haben, können wir die Chunk-Länge, die Indizierungsmethode, das gewünschte Einbettungsmodell und die Abrufeinstellungen festlegen.

Im Bereich "Chunk-Einstellung" können Sie eine beliebige Zahl als maximale Chunk-Länge wählen (in unserem Anwendungsfall werden wir sie auf 100 setzen). Als Nächstes müssen wir für "Indexmethode" die Option "Hohe Qualität" wählen, da wir damit eine Ähnlichkeitssuche durchführen können, um relevante Kontexte zu finden. Für "Einbettungsmodell" können Sie ein beliebiges Einbettungsmodell von OpenAI wählen, aber in diesem Beispiel werden wir das Modell "text-embedding-3-small" verwenden. Schließlich müssen wir für "Retrieval Setting" "Vector Search" wählen, da wir eine Ähnlichkeitssuche durchführen wollen, um die relevantesten Kontexte zu finden.

Wenn Sie nun auf "Speichern & Verarbeiten" klicken und alles gut läuft, sehen Sie ein grünes Häkchen, wie im folgenden Screenshot zu sehen ist:

Schritt 4: Erstellen der RAG-App

Bis zu diesem Punkt haben wir erfolgreich eine Wissensbasis erstellt und sie in unserer Milvus-Datenbank gespeichert. Nun sind wir bereit, die RAG-App zu erstellen.

Die Erstellung der RAG-App mit Dify ist sehr einfach. Wir müssen zu "Studio" gehen, anstatt zu "Knowledge" wie zuvor, und dann auf "Create from Blank" klicken. Als Nächstes wählen Sie "Chatbot" als App-Typ und geben Ihrer App einen Namen in dem dafür vorgesehenen Feld. Wenn Sie fertig sind, klicken Sie auf "Erstellen". Nun wird die folgende Seite angezeigt:

In das Feld "Anweisung" können wir eine Systemaufforderung schreiben, z. B. "Beantworte die Frage des Benutzers kurz und bündig." Als Nächstes müssen wir unter "Kontext" auf das Symbol "Hinzufügen" klicken und dann die soeben erstellte Wissensbasis hinzufügen. Auf diese Weise wird unsere RAG-App mögliche Kontexte aus dieser Wissensdatenbank abrufen, um die Anfrage des Benutzers zu beantworten.

Nachdem wir nun die Wissensbasis zu unserer RAG-App hinzugefügt haben, müssen wir als Letztes die LLM von OpenAI auswählen. Dazu können Sie auf die Modellliste in der oberen rechten Ecke klicken, wie Sie auf dem Screenshot unten sehen können:

Und nun sind wir bereit, unsere RAG-Anwendung zu veröffentlichen! In der oberen rechten Ecke klicken Sie auf "Veröffentlichen". Dort finden Sie viele Möglichkeiten, unsere RAG-Anwendung zu veröffentlichen: Wir können sie einfach in einem Browser ausführen, sie auf unserer Website einbetten oder über eine API auf die Anwendung zugreifen. In diesem Beispiel werden wir unsere App einfach in einem Browser ausführen, also klicken wir auf "Run App".

Und das war's! Jetzt können Sie den LLM alles fragen, was mit dem Papier "Attention is All You Need" oder anderen Dokumenten in unserer Wissensdatenbank zu tun hat.

Schlussfolgerung

Sie haben nun eine funktionierende RAG-Anwendung mit Dify und Milvus erstellt, mit minimalem Code und minimaler Konfiguration. Dieser Ansatz macht die komplexe RAG-Architektur für Entwickler zugänglich, ohne dass tiefes Fachwissen über Vektordatenbanken oder LLM-Integration erforderlich ist. Die wichtigsten Erkenntnisse:

  1. Geringer Aufwand für die Einrichtung: Die Verwendung von Docker Compose vereinfacht die Bereitstellung
  2. No-code/low-code Orchestrierung: Dify übernimmt den größten Teil der RAG-Pipeline
  3. Produktionsreife Vektordatenbank: Milvus bietet effiziente Speicherung und Abfrage von Einbettungen
  4. Erweiterbare Architektur: Einfaches Hinzufügen von Dokumenten oder Anpassen von Parametern Für den produktiven Einsatz sollten Sie Folgendes beachten:
  • Einrichtung der Authentifizierung für Ihre Anwendung
  • Konfiguration einer geeigneten Skalierung für Milvus (insbesondere für größere Dokumentensammlungen)
  • Implementierung einer Überwachung für Ihre Dify- und Milvus-Instanzen
  • Die Kombination von Dify und Milvus ermöglicht die schnelle Entwicklung von RAG-Anwendungen, die das interne Wissen Ihrer Organisation mit modernen großen Sprachmodellen (LLMs) effektiv nutzen können. Viel Spaß beim Bauen!

Zusätzliche Ressourcen

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    Weiterlesen