RAG-Wissensbasis verstehen¶
Der KI-Assistent in Kamerplanter antwortet nicht aus dem Gedächtnis eines allgemeinen Sprachmodells — er gründet jede Antwort auf deine eigenen Daten und eine kuratierte Wissensbasis. Diese Technik heißt Retrieval-Augmented Generation (RAG) (KI-Antwortgenerierung auf Basis abgerufener Kontextdaten). Diese Seite erklärt, wie das System aufgebaut ist und warum es so funktioniert.
Warum RAG?¶
Ein Sprachmodell, das allein aus seinem Training antwortet, hat zwei Schwächen:
- Halluzinationen — Es erfindet plausibel klingende, aber falsche Fakten
- Kein Kontext — Es kennt nicht deine spezifische Pflanze, deine aktuellen Messwerte oder deine Pflegehistorie
RAG löst beide Probleme: Das System sucht vor jeder Antwort relevante Informationen aus einer geprüften Datenbank und stellt sie dem Modell als Grundlage bereit. Das Modell kombiniert diese Fakten mit deiner konkreten Situation — statt aus dem Gedächtnis zu spekulieren.
Einfach erklärt
Stell dir RAG wie einen sehr gut vorbereiteten Assistenten vor: Er hat vor deiner Frage blitzschnell in der Bibliothek nachgeschlagen und kommt mit den passenden Fachbüchern zum Gespräch. Er erfindet nichts — er erklärt, was er gefunden hat.
Das 4-Ebenen-Modell¶
Die Wissensbasis von Kamerplanter besteht aus vier Ebenen, die bei jeder Anfrage kombiniert werden.
flowchart TB
subgraph "Level 1: Global Master Data"
E1[Plant species, cultivars, growth phases,<br/>nutrient profiles, pests, diseases]
end
subgraph "Level 2: Thematic Guides"
E2[31 curated expert knowledge files:<br/>Diagnostics, fertilization, irrigation,<br/>environment, phases, outdoor, general]
end
subgraph "Level 3: Tenant Context"
E3[Active planting run, phase,<br/>measurements EC/pH/VPD,<br/>active IPM events, recent feeding events]
end
subgraph "Level 4: Your Plant Data"
E4[Care history, harvest results,<br/>plant diary entries, confirmations]
end
E1 --> RAG[RAG Retriever<br/>pgvector]
E2 --> RAG
E3 --> CB[Context Builder<br/>ArangoDB]
E4 --> CB
RAG --> PA[Prompt Assembler]
CB --> PA
PA --> LLM[Language Model]
LLM --> Response Ebenen 1 und 2 werden als Vektoren gespeichert und per Ähnlichkeitssuche abgerufen. Ebenen 3 und 4 werden zur Laufzeit als strukturierter Text in jede Anfrage eingefügt.
Ebene 1: Globale Stammdaten¶
Die Kamerplanter-Stammdaten sind die Grundlage aller Empfehlungen:
- Pflanzenarten mit Taxonomie, Pflegeanforderungen und Eigenschaften
- Sorten mit spezifischen Besonderheiten
- Wachstumsphasendefinitionen mit VPD-Zielen, Licht- und Temperaturanforderungen
- Nährstoffprofile pro Art und Phase
- Schädlings- und Krankheitsdaten mit Symptomen und Behandlungsmethoden
Diese Daten werden wöchentlich neu indexiert.
Ebene 2: Thematische Guides¶
Thematische Guides enthalten Querschnittswissen, das sich nicht aus den Stammdaten ableiten lässt — also Expertenwissen, das für viele Pflanzenarten und Situationen gilt. Aktuell umfasst die Wissensbasis 31 kuratierte Guides in sieben Kategorien:
| Kategorie | Beispiel-Guides |
|---|---|
| Diagnostik | Nährstoffmangel-Symptome, pH/EC-Abweichungen, Schädlingsfrüherkennung, Wurzelgesundheit |
| Umwelt | VPD-Optimierung, Lichtgrundlagen, Temperatursteuerung, CO₂-Anreicherung |
| Düngung | EC-Management (Hydroponik/Erde), organische Freilanddüngung, CalMag-Korrektur, Mischreihenfolge |
| Bewässerung | Gießstrategien nach Substrat, Überwässerung erkennen, Wasserqualität |
| Phasen | Keimung, vegetative Optimierung, Blütemanagement, Ernte-Timing, Überwintern |
| Outdoor | Saisonplanung, Mischkultur, Fruchtfolge, Wetterreaktionen |
| Allgemein | Anfänger-Einstieg, häufige Fehler vermeiden, Ertragsoptimierung |
Agrarbiologisch geprüft
Alle Guides werden vor der Aufnahme in die Wissensbasis auf fachliche Korrektheit geprüft. Das System enthält außerdem 100 Benchmark-Fragen, gegen die jede neue Version der Wissensbasis getestet wird.
Ebene 3: Tenant-Kontext (Echtzeit)¶
Bei jeder Anfrage holt der Context-Builder den aktuellen Zustand deiner Anlage aus der Datenbank:
- Aktive Pflanzdurchläufe mit aktueller Wachstumsphase und Phasendauer
- Letzte Messwerte: EC, pH, VPD, Temperatur, Luftfeuchtigkeit
- Aktive IPM-Ereignisse (Integrierter Pflanzenschutz — Schädlingsbefall, Krankheiten, laufende Behandlungen)
- Letzte Dünge-Ereignisse mit Mengen und Produkten
Ebene 4: Deine Pflanzdaten (Echtzeit)¶
Mit deiner Einwilligung fließen auch persönliche Pflegedaten in den Kontext:
- Pflegebestätigungen (wann wurde gegossen, gedüngt, geschnitten)
- Einträge im Pflanztagebuch
- Ergebnisse vergangener Ernten
Ein Ablauf-Beispiel¶
So läuft eine typische Anfrage durch das System:
Beispiel: Gelbe Blätter
Deine Frage: "Meine unteren Blätter werden gelb — was kann das sein?"
Schritt 1 — Context-Builder liest deine Daten:
Art: Cannabis sativa 'Northern Lights'
Phase: Flowering, Tag 21
EC: 1,2 mS/cm, pH: 5,8, VPD: 1,1 kPa
Letzte Düngung: vor 2 Tagen (Standard-Nährlösung)
Schritt 2 — RAG-Retriever sucht passende Chunks: - Stammdaten-Chunk: "Cannabis sativa, Flowering-Phase, NPK-Ziel 5-15-14" - Guide-Chunk: "Stickstoff-Mangel: untere Blätter gelb, EC erhöhen..." - Guide-Chunk: "Blütemanagement: N-Bedarf sinkt ab Woche 3, natürlicher N-Abbau..."
Schritt 3 — Modell kombiniert alles:
"Deine Northern Lights ist in Woche 3 der Blüte. Gelbe untere Blätter können auf N-Mangel hindeuten, ABER: In der späten Blüte ist ein natürlicher N-Abbau in den unteren Blättern normal. Dein EC liegt bei 1,2 — das ist für Woche 3 Flowering etwas niedrig. Empfehlung: EC auf 1,4–1,6 anheben, NICHT den N-Anteil erhöhen (PK-Phase). Wenn mehr als 30 % der Blätter betroffen sind, leichten N-Boost erwägen."
Ohne die Thematischen Guides würde das Modell nur den Stammdaten-Kontext kennen und allgemeine Tipps geben. Ohne deinen Echtzeit-Kontext (EC 1,2, Woche 3 Blüte) würde das Modell nicht wissen, dass die Situation grenzwertig ist.
Qualitätssicherung der Wissensbasis¶
Agrarbiologische Prüfung¶
Alle Guides und Stammdaten werden vor der Aufnahme von erfahrenen Pflanzenanwendern auf fachliche Korrektheit geprüft. Besonderes Augenmerk gilt:
- Korrekte VPD- und EC-Zielwerte pro Phase und Substrat
- Übereinstimmung von Symptombeschreibungen mit aktueller Fachliteratur
- Sicherheitshinweise (Mischungsreihenfolgen, Karenzzeiten)
Benchmark-Evaluation¶
Das System enthält 100 Benchmark-Fragen, deren Antworten bei jeder Wissensbasis-Aktualisierung automatisch evaluiert werden:
- Topic-Match — Sind die gefundenen RAG-Chunks relevant für die Frage?
- LLM-as-Judge — Bewertet ein zweites Modell die Antwortqualität
- A/B-Vergleich — Bei Modelländerungen: Verbesserung gegenüber der Vorversion?
Eigene Guides hinzufügen (Admin)¶
Noch nicht implementiert
Eine Verwaltungsoberfläche zum Hochladen eigener, tenant-spezifischer Guides gibt es aktuell nicht — weder im Frontend noch als eigenständiger Speicherbereich im Backend. Alle thematischen Guides stammen aus den kuratierten YAML-Dateien unter spec/knowledge/rag/, die zentral gepflegt und bei jedem Deployment in den Knowledge-Service-Container gemountet werden. Das folgende YAML-Format beschreibt, wie ein Guide-Chunk aufgebaut ist — es dient bereits heute als Vorlage für die zentral gepflegten Guides, eine tenant-eigene Upload-Funktion wird es erst in einer künftigen Version geben.
Sobald diese Funktion verfügbar ist, werden Tenant-Admins eigene thematische Guides zur lokalen Wissensbasis hinzufügen können — sinnvoll für sortenspezifisches Spezialwissen, betriebsinterne Protokolle oder Guides in anderen Sprachen.
YAML-Format (Referenz)¶
---
title: Mein eigener Guide-Titel
category: duengung # diagnostik | umwelt | duengung | bewaesserung | phasen | outdoor | allgemein
tags: [ec, naehrstoff, hydroponik]
expertise_level: [intermediate, expert]
applicable_phases: [vegetative, flowering]
chunks:
- id: mein-erster-chunk
title: Abschnittstitel
content: |
Hier steht das Wissen in Freitext. Der Inhalt wird als Vektor
indexiert und bei passenden Anfragen abgerufen.
Empfehlung: Konkrete, handlungsorientierte Texte sind
besser als allgemeine Beschreibungen.
metadata:
nutrient: nitrogen
substrate: coco
Qualitätsverantwortung
Auch nach Einführung der Upload-Funktion werden eigene Guides nicht automatisch fachlich geprüft. Fehlerhafte Guides können die Qualität der KI-Antworten verschlechtern.
Wissensbasis reindexieren (Operator/Entwickler)¶
Nach Änderungen an den Knowledge-YAML-Dateien unter spec/knowledge/rag/ müssen die Vektoren in der VectorDB (pgvector) neu berechnet werden. Es gibt keinen automatischen Zeitplan dafür — der Reindex muss nach jeder inhaltlichen Änderung manuell über den Knowledge-Service angestoßen werden.
Voraussetzungen¶
- Die Knowledge-YAML-Dateien sind im Knowledge-Service-Container unter
/app/knowledgegemountet (passiert automatisch bei Skaffold-Deployment) - Der Knowledge-Service und sein Embedding-Service müssen laufen
INTERNAL_SERVICE_TOKENist gesetzt (der Endpunkt ist service-token-geschützt, siehe Fehlerbehandlung)
Workflow: Chunk ändern → deployen → reindexieren → testen¶
# 1. Knowledge-YAML-Dateien bearbeiten
# z.B. spec/knowledge/rag/diagnostik/naehrstoffmangel-symptome.yaml
# 2. Neu deployen (damit die Dateien im Knowledge-Service-Container ankommen)
skaffold dev # oder: skaffold run
# 3. Reindex über den Knowledge-Service-Endpunkt auslösen
kubectl exec -it deploy/knowledge-service -- \
curl -sX POST http://localhost:8000/ingest \
-H "Authorization: Bearer $INTERNAL_SERVICE_TOKEN"
# 4. Benchmark laufen lassen (optional, empfohlen)
cd tools/rag-eval
source ~/.venvs/rag-eval/bin/activate
python eval_rag.py
Was passiert beim Reindex?¶
- Alle YAML-Dateien unter
/app/knowledgewerden gelesen - Jeder Chunk wird mit dem Embedding-Modell vektorisiert (
multilingual-e5-large, 1024 Dimensionen, siehe ADR-006) - Vektoren werden per Upsert in
ai_vector_chunksgeschrieben (bestehende Chunks werden anhand ihressource_keyaktualisiert, neue hinzugefügt) - Der Endpunkt gibt eine Zusammenfassung zurück: Anzahl Dateien, Anzahl Chunks
Schneller Feedback-Loop
Für die iterative Verbesserung der Wissensbasis empfiehlt sich dieser Zyklus:
- Benchmark laufen lassen → Failures identifizieren
- Fehlende oder ungenaue Chunks in den YAML-Dateien ergänzen/verbessern
- Deployen und reindexieren
- Benchmark erneut laufen lassen → Score-Verbesserung prüfen
Details zum Benchmark-Tool: siehe tools/rag-eval/README.md
Häufige Fragen¶
Kann die KI außerhalb der Wissensbasis recherchieren (Internet-Suche)?
Nein. Das System führt keine Internet-Suche durch. Alle Antworten basieren ausschließlich auf der lokalen Wissensbasis (Stammdaten, Guides) und deinen eigenen Pflanzdaten. Das ist eine bewusste Designentscheidung, um Halluzinationen zu vermeiden und Datenschutz zu gewährleisten.
Wie aktuell sind die Thematischen Guides?
Die Guides werden mit jedem Kamerplanter-Update gepflegt. Der genaue Stand ist in der Versionsdokumentation (Changelog) vermerkt.
Was passiert, wenn kein passender Guide-Chunk gefunden wird?
Das System fällt auf die Stammdaten zurück (Ebene 1) und nutzt den strukturierten Kontext (Ebene 3+4). Die Antwortqualität ist dann geringer, aber das System antwortet trotzdem — ohne zu halluzinieren.
Kann ich eigene Guides für meinen Tenant hinzufügen?
Noch nicht — das ist als künftige Funktion geplant (siehe oben). Aktuell stammen alle thematischen Guides aus der zentral gepflegten Wissensbasis unter spec/knowledge/rag/ und gelten für alle Tenants gleichermaßen.