Überblick
Diese Vorlesung erklärt, wie man einen multimodalen RAG (Retrieval-Augmented Generation) Agenten baut, der Text, Bilder und Tabellen aus komplexen PDFs in großem Maßstab extrahieren, analysieren und indexieren kann, um fortgeschrittene Chat-Interaktionen über die Daten zu ermöglichen.
Workflow des multimodalen RAG-Agenten
- Verwenden Sie OCR (Optical Character Recognition), um sowohl Text als auch Medienanmerkungen aus PDFs zu extrahieren, einschließlich gescannter und maschinenlesbarer Dokumente.
- Die OCR-API von Mistral liefert Markdown, Arrays extrahierter Bilder/Diagramme und verwendet ein KI-Vision-Modell zur Bildanalyse und -anmerkung.
- Speichern Sie die OCR-Ausgabe (Text, Bilder, Anmerkungen) auf einem Backend-Server, wobei Supabase für die Speicherung verwendet wird.
- Zerlegen Sie den Text und annotieren Sie Bilder, dann betten Sie jeden Abschnitt mit einem Einbettungsmodell in Vektorform ein.
- Speichern Sie Vektoren in einer Vektordatenbank für eine effiziente Abfrage während der Suche.
Datenaufnahme & Verarbeitung
- Rufen Sie PDFs per HTTP-Anfrage ab und speichern Sie deren Binärdaten.
- Richten Sie ein Konto bei Mistral für den Zugriff auf OCR- und Annotations-APIs ein.
- Laden Sie PDFs mit API-Schlüssel-Authentifizierung hoch und erhalten Sie eine signierte URL für sicheren Zugriff.
- Holen Sie OCR-Ergebnisse im JSON-Format ab und stellen Sie sicher, dass Bildanmerkungen im Anfrageschema enthalten sind.
- Verwenden Sie JavaScript-Code, um Bildanmerkungen direkt in Markdown einzufügen und so den Kontext zu verbessern.
Speicherung & Einbettung der Daten
- Teilen Sie die OCR-Ausgabe in Seiten auf und verarbeiten Sie Bilder einzeln.
- Laden Sie extrahierte Bilder in den Supabase-Speicher hoch, sodass die Bilder über öffentliche URLs zugänglich sind.
- Ersetzen Sie Inline-Bildverweise im Markdown durch Supabase-URLs und deren entsprechende KI-generierte Anmerkungen.
- Verwenden Sie einen Text-Splitter, um Markdown zu zerlegen, und betten Sie es mit einem Einbettungsmodell (z. B. OpenAIs text-embedding-3-small) ein.
- Laden Sie Text-/Bild-Einbettungen als Vektoren in die Supabase-Vektordatenbank hoch.
Abfrage der Daten
- Integrieren Sie einen KI-Agenten (z. B. OpenAI GPT-4.1), der den Vektorspeicher mit eingebetteten Benutzeranfragen abfragt.
- Rufen Sie die relevantesten Vektorübereinstimmungen ab, einschließlich Bild-URLs und Anmerkungen, um Antworten zu erstellen.
- Konfigurieren Sie das LLM mit einem System-Prompt: Antworten Sie nur mit abgerufenen Daten; antworten Sie mit "Ich weiß es nicht", wenn nicht genügend Informationen gefunden werden.
- Aktivieren Sie die Chat-Oberfläche für die Benutzerinteraktion, rufen Sie Daten ab und zeigen Sie relevante Bilder inline an.
Erweiterte Funktionen & Optimierung
- Erweitern Sie den Workflow mit fortschrittlicheren Datenaufnahme-Pipelines und hybriden RAG-Strategien.
- Verwenden Sie Aggregations- und Zusammenführungslogik, um Bilddateien, Anmerkungen und Markdown für einen robusten Kontext zu kombinieren.
- Ermöglichen Sie öffentlichen oder privaten Zugriff auf Supabase-Speicher-Buckets je nach Projektanforderungen.
Schlüsselbegriffe & Definitionen
- RAG (Retrieval-Augmented Generation) — Eine Methode, bei der ein LLM Kontext aus einer Datenbank abruft, um die Relevanz der Antworten zu verbessern.
- OCR (Optical Character Recognition) — Technologie zur Extraktion von Text- und Bilddaten aus gescannten Dokumenten.
- Embedding — Umwandlung von Daten (Text/Bilder) in Vektor-Darstellungen für Ähnlichkeitssuchen in Datenbanken.
- Vektordatenbank — Eine Datenbank, die für das Speichern und Abfragen hochdimensionaler Vektoren optimiert ist.
- Supabase — Eine Open-Source-Backend-Plattform, die Speicher- und Vektordatenbankfunktionen bereitstellt.
To-Do / Nächste Schritte
- Richten Sie Mistral- und Supabase-Konten ein und erhalten Sie die erforderlichen API-Schlüssel.
- Konfigurieren Sie den Datenaufnahme- und Annotations-Workflow wie demonstriert.
- Erkunden Sie weitere fortgeschrittene RAG-Pipelines und prüfen Sie verwandte Blueprints in den Community-Ressourcen.