WikiGuide: Datenquellen

Datenquellen

Datenquellen sind die Verbindung zwischen KIara und den Unternehmensdaten. Jede Datenquelle verbindet einen Konnektor (Dateisystem, SMB, WebDAV, E-Mail, SQL) mit konfigurierbaren Ingestion-Einstellungen (Chunking, DDU, VLM) und optionalen Zugriffsrechten (Gruppen/Benutzer).

Uebersicht & Tabelle

Der Datenquellen-Tab zeigt alle konfigurierten Quellen in einer zentralen Tabelle. Es gibt keine Sub-Tabs — alle Aktionen (Erstellen, Bearbeiten, Indexieren, Loeschen) sind direkt ueber die Tabelle erreichbar.

Tabellen-Spalten

SpalteBeschreibungHinweis
Name Anzeigename der Datenquelle. Klick oeffnet das Bearbeiten-Modal. Frei waehlbar, muss nicht eindeutig sein (die ID ist intern eindeutig).
Typ Konnektor-Typ als farbiges Badge (z.B. »SMB-Freigabe«, »E-Mail (IMAP)«). Wird beim Erstellen festgelegt und kann nachtraeglich nicht geaendert werden.
Quelle Formatierte Zusammenfassung der Verbindungsdaten (z.B. server:/Share). Aus der Konnektor-Konfiguration generiert.
Chunk-Strategie Aktive Chunk-Strategie (auto, prose, code, email, ...). Siehe Chunk-Strategie.
Chunks Anzahl der Chunks pro Embedding-Modell, inkl. letztem Indexierungszeitpunkt. Wird nach jeder Indexierung aktualisiert. Mehrere Modelle moeglich.
Ingestion-Status Aktueller Status: idle, running (gruen), paused (orange), error (rot). Bei laufender Indexierung wird ein Fortschrittsbalken angezeigt.
Zugriff Zugewiesene Gruppen und Benutzer als Tag-Liste. Ohne Zuweisung: Alle Benutzer haben Zugriff.

Aktionen pro Datenquelle

Das Drei-Punkte-Menue jeder Zeile bietet:

AktionBeschreibung
BearbeitenOeffnet das Edit-Modal mit allen Einstellungen.
BerechtigungenGruppen- und Benutzer-Zuweisung (siehe Zugriffsrechte).
Verbindung testenPrueft Erreichbarkeit der Quelle (Server, Credentials, Pfad).
StatusZeigt Ingestion-Details: Phase, Fortschritt, Fehler.
IndexierenInkrementelle Indexierung — nur neue/geaenderte Dateien.
Voll-IndexierenAlle Dateien neu indexieren (File-Hashes werden zurueckgesetzt).
Pause / AbbrechenNur bei laufender Indexierung sichtbar.
LoeschenEntfernt die Datenquelle und alle zugehoerigen Daten (irreversibel).
Achtung: »Loeschen« entfernt die Datenquelle vollstaendig aus allen 4 Datenschichten: Qdrant-Vektoren, Elasticsearch-Index, File-Hashes und Datenbank (inkl. Chunk-Zuordnungen und Embedding-Statistiken). Dieser Vorgang ist nicht umkehrbar.

Konnektor-Typen

Jeder Konnektor definiert sein eigenes Config-Schema. Die Felder werden im Create/Edit-Modal dynamisch anhand des gewaehlten Typs gerendert. Passwort-Felder (secret: true) werden AES-verschluesselt gespeichert und im UI maskiert angezeigt (••••••••).

Lokal

Liest Dateien aus einem lokalen Verzeichnis auf dem KIara-Server.

FeldTypPflichtBeschreibungEmpfehlung
path Text Nein Absoluter Pfad zum Verzeichnis. Leer = globaler Pfad aus kiara.yaml. Immer einen expliziten Pfad angeben — so ist die Datenquelle unabhaengig von der globalen Config. Beispiel: /data/dokumente/technik
Tipp: Der KIara-Prozess (User kiara) braucht Leserechte auf das Verzeichnis. Pruefen mit: sudo -u kiara ls /data/dokumente/technik

SMB-Freigabe

Verbindet sich mit Windows-Dateifreigaben (SMB/CIFS). Unterstuetzt Domain-Authentifizierung.

FeldTypPflichtStandardBeschreibungEmpfehlung
server Text Ja Hostname oder IP des Fileservers. Hostname bevorzugen (fileserver.firma.local).
share Text Ja Name der Freigabe (ohne fuehrenden Backslash). Beispiel: Documents, Abteilungen$
username Text Nein Windows-Benutzername fuer die Authentifizierung. Dedizierten Service-Account verwenden (z.B. svc-kiara-read).
password Passwort Nein Passwort. Wird AES-verschluesselt gespeichert. Leer lassen bei Edit = bestehendes Passwort beibehalten.
domain Text Nein Windows-Domaene fuer die Authentifizierung. Beispiel: FIRMA (NetBIOS-Name) oder firma.local (FQDN).
sub_path Text + Browse Nein Unterverzeichnis innerhalb der Freigabe. Browse-Button verfuegbar. Nuetzlich um nur einen Teilbereich einer grossen Freigabe zu indexieren.
Tipp: Der Browse-Button neben sub_path zeigt den Verzeichnisinhalt der Freigabe live an. Dafuer muessen Server, Freigabe und Credentials bereits eingetragen sein.

WebDAV

Verbindet sich mit WebDAV-Servern (z.B. Nextcloud, ownCloud, SharePoint).

FeldTypPflichtStandardBeschreibungEmpfehlung
url Text Ja Vollstaendige WebDAV-URL. Nextcloud: https://cloud.firma.de/remote.php/dav/files/USERNAME/
Trailingslash beachten!
username Text Nein WebDAV-Benutzername. Bei Nextcloud: App-Passwort verwenden (Einstellungen → Sicherheit → App-Passwoerter).
password Passwort Nein Passwort. Wird verschluesselt gespeichert.
base_path Text + Browse Nein / Basispfad innerhalb der WebDAV-Struktur. Browse-Button verfuegbar. Beispiel: /Dokumente/Projekte

E-Mail (IMAP)

Indexiert E-Mails inkl. Anhaenge ueber IMAP. Unterstuetzt SSL und Ordner-Auswahl.

FeldTypPflichtStandardBeschreibungEmpfehlung
server Text Ja IMAP-Server (Hostname oder IP). Beispiel: mail.firma.de
port Zahl Nein 993 IMAP-Port. 993 = SSL (Standard), 143 = unverschluesselt. 993 mit SSL empfohlen.
ssl Checkbox Nein An SSL/TLS-Verschluesselung aktivieren. Immer aktiviert lassen.
username Text Nein IMAP-Benutzername (oft die E-Mail-Adresse). Beispiel: benutzer@firma.de
password Passwort Nein IMAP-Passwort. Wird verschluesselt gespeichert. Bei Microsoft 365: App-Passwort verwenden (MFA-kompatibel).
folders Text / Ordner-Picker Nein INBOX Kommaseparierte Liste oder Auswahl ueber den Ordner-Picker-Button. Der Picker laedt die Ordner-Hierarchie vom Server. Beispiel: INBOX, Sent, Archive/2025
Ordner-Picker empfohlen — zeigt die exakten Server-seitigen Namen.
since_days Zahl Nein 90 Nur E-Mails der letzten N Tage indexieren. 90-180 Tage fuer die meisten Faelle. Zu grosse Zeitraeume erhoehen Indexierungszeit und Speicherbedarf.
download_attachments Checkbox Nein An E-Mail-Anhaenge herunterladen und indexieren. Aktiviert lassen — Anhaenge enthalten oft die relevantesten Informationen.
max_attachment_mb Zahl Nein 25 Maximale Groesse einzelner Anhaenge in MB. 25 MB reicht fuer die meisten Dokumente. Sehr grosse Anhaenge (CAD, Videos) sind selten nuetzlich fuer RAG.
Tipp — IMAP-Ordnernamen: IMAP-Server verwenden verschiedene Namenskonventionen. Der Ordner-Picker-Button laedt die exakten Namen vom Server — das vermeidet Tippfehler. Haeufige Unterschiede:
  • Outlook/Exchange: Sent Items, Deleted Items
  • Dovecot: Sent, Trash
  • Gmail: [Gmail]/Sent Mail, [Gmail]/Trash

Exchange Online (OAuth2)

Verbindet sich mit Microsoft 365 / Exchange Online ueber OAuth2 (App-Registrierung in Entra ID). Kein Benutzer-Passwort noetig — Authentifizierung laeuft ueber Client-ID und Client-Secret.

FeldTypPflichtStandardBeschreibungEmpfehlung
tenant_id Text Ja Azure AD / Entra ID Tenant-ID (UUID). Zu finden in Entra Admin Center → Uebersicht → Tenant-ID.
client_id Text Ja Anwendungs-ID der App-Registrierung (UUID). Eigene App-Registrierung fuer KIara anlegen mit Mail.Read-Berechtigung (Application).
client_secret Passwort Ja Client-Secret der App-Registrierung. Wird verschluesselt gespeichert. Ablaufdatum beachten! Azure-Secrets haben ein maximales Alter von 2 Jahren.
username Text Ja E-Mail-Adresse des Postfachs, das gelesen werden soll. Beispiel: team-support@firma.de (Shared Mailbox moeglich).
folders Text / Ordner-Picker Nein INBOX Kommasepariert oder per Ordner-Picker. Beispiel: INBOX, Sent Items
since_days Zahl Nein 90 Zeitraum in Tagen. Siehe IMAP.
download_attachments Checkbox Nein An Anhaenge herunterladen und indexieren.
max_attachment_mb Zahl Nein 25 Maximale Anhang-Groesse in MB.
Tipp — Azure App-Registrierung fuer KIara:
  1. Entra Admin Center → App-Registrierungen → Neue Registrierung
  2. Name: KIara Mail Reader
  3. API-Berechtigungen → Microsoft Graph → Anwendungsberechtigung → Mail.Read
  4. Admin-Zustimmung erteilen
  5. Zertifikate & Geheimnisse → Neues Client-Secret erstellen
  6. Tenant-ID, Client-ID und Secret in KIara eintragen

SQL-Datenbank

Indexiert Daten aus relationalen Datenbanken. Unterstuetzt PostgreSQL, MSSQL, MySQL und SQLite. Jede Zeile wird anhand eines konfigurierbaren Templates zu einem Text-Chunk.

FeldTypPflichtStandardBeschreibungEmpfehlung
dsn Passwort Ja Verbindungsstring (DSN). Wird verschluesselt gespeichert. Formate:
postgresql://user:pass@host:5432/dbname
mssql+pyodbc://user:pass@host/db?driver=ODBC+Driver+18
mysql://user:pass@host:3306/dbname
sqlite:///pfad/zur/datei.db
driver Dropdown Nein auto Datenbank-Treiber. Optionen: auto (aus DSN erkennen), postgresql, mssql, mysql, sqlite.
auto reicht in den meisten Faellen.
query Textarea Nein SQL-Abfrage, die die zu indexierenden Daten liefert. Beispiel: SELECT id, titel, beschreibung, kategorie FROM protokolle
Die Query sollte die ID-Spalte und alle Text-relevanten Spalten enthalten.
text_columns Text Nein Kommaseparierte Liste der Spalten, die als Text indexiert werden. Beispiel: beschreibung, massnahme, kommentar
id_column Text Nein id Primaerschluessel-Spalte fuer inkrementelle Updates. Muss eindeutig sein. Standard id passt fuer die meisten Tabellen.
timestamp_column Text Nein Zeitstempel-Spalte fuer inkrementelle Updates. Beispiel: updated_at. Wenn gesetzt, werden nur Zeilen indexiert, die neuer sind als der letzte Lauf.
text_template Text Nein Template fuer die Textgenerierung aus Spalten. Beispiel: {titel}: {beschreibung} (Kategorie: {kategorie})
Platzhalter sind Spaltennamen in geschweiften Klammern. Ohne Template werden alle Text-Spalten konkateniert.
Tipp: Der SQL-Konnektor ist ideal fuer ERP-Daten, Ticket-Systeme oder Protokoll-Datenbanken. Mit timestamp_column und id_column werden nur geaenderte Zeilen neu indexiert — das spart bei grossen Tabellen erheblich Zeit.

Ingestion-Einstellungen

Die erweiterten Einstellungen im Create/Edit-Modal steuern, wie Dokumente verarbeitet und in Chunks zerlegt werden. Sie sind hinter einem »Erweiterte Einstellungen«-Aufklapper gruppiert.

Chunk-Strategie

Die Chunk-Strategie bestimmt, wie Dokumente in indexierbare Text-Abschnitte (Chunks) zerlegt werden. Jede Strategie hat eigene Defaults fuer Chunk-Groesse und Ueberlappung.

StrategieChunk-GroesseUeberlappungEinsatzgebiet
auto (empfohlen) variabel variabel Erkennt automatisch: Prosa, tabellarisch, Code, Markdown, E-Mail. Beste Wahl fuer gemischte Datenquellen.
prose 768 150 Fliesstext, Berichte, Dokumentationen.
tabular 256 0 Tabellen, CSV, strukturierte Daten. Keine Ueberlappung, da Zeilen unabhaengig.
structured 384 50 XML, JSON, strukturierte Konfigurationsdateien.
code 512 100 Quellcode — chunked nach Funktionen/Klassen, nicht nach Zeichenzahl.
email 640 100 E-Mails — beruecksichtigt Header, Body und Signatur-Trennung.
custom frei (100–10.000) frei (0–5.000) Manuelle Konfiguration. Blendet Felder fuer Chunk Size und Overlap ein.
Tipp: auto ist die beste Wahl fuer die meisten Datenquellen. custom nur verwenden, wenn die automatische Erkennung nachweislich schlechte Ergebnisse liefert (z.B. bei sehr speziellen Dokumentformaten).

Document Understanding (DDU)

FeldStandardBeschreibung
DDU aktivieren Aus Aktiviert Docling Document Understanding — konvertiert PDF, Office-Dokumente und Bilder ueber ein Deep-Learning-Modell zu Markdown. Deutlich bessere Ergebnisse bei komplexen Layouts (Tabellen, Spalten, Grafiken).
DDU OCR fuer Bilder An Nur wenn DDU aktiviert. Fuehrt OCR auf eingebetteten Bildern durch. Nuetzlich fuer gescannte PDFs.
Achtung: DDU benoetigt den Docling-Proxy-Service auf dem Ollama-Server (Port 5001) und ca. 7 GiB VRAM. Die Verarbeitungszeit pro Datei ist deutlich hoeher als ohne DDU. Fuer grosse Datenquellen (>1000 Dateien) kann die Erstindexierung mehrere Stunden dauern.

Vision Language Model (VLM)

FeldStandardBeschreibung
VLM aktivieren Aus Aktiviert die Bildbeschreibung ueber ein Vision Language Model. Bilder (PNG, JPG, etc.) werden durch das VLM beschrieben und der resultierende Text wird indexiert. Unterstuetzt 20+ Bildformate.
Tipp: VLM ist besonders nuetzlich fuer Datenquellen mit vielen Bildern (z.B. technische Zeichnungen, Fotos, Screenshots). Ohne VLM werden Bilddateien uebersprungen.

Dateityp-Filter & Ausschlussmuster

FeldTypBeschreibungBeispiel
Dateitypen Text (kommasepariert) Nur diese Dateitypen indexieren. Leer = alle unterstuetzten Typen. .pdf, .docx, .xlsx, .txt
Ausschlussmuster Text (Glob-Syntax) Dateien/Verzeichnisse ausschliessen. */tmp/*, *.bak, */archiv/*
Alle Textdateien akzeptieren Checkbox Wenn aktiviert, werden auch Dateien ohne bekannte Endung indexiert, sofern sie als Text erkannt werden (Charset-Erkennung). Nuetzlich fuer Logdateien, Config-Dateien ohne Endung.
E-Mail-Anhaenge indexieren Checkbox (nur Mail) Nur fuer IMAP/Exchange: Steuert ob Anhaenge indexiert werden. Standard: An.

Sync-Intervall

WertBeschreibung
globalVerwendet den Systemstandard aus kiara.yaml.
manualKeine automatische Synchronisierung — nur manuell ueber die UI oder API.
dailyTaeglich (einmal pro 24h).
weeklyWoechentlich.
monthlyMonatlich.
customBenutzerdefinierter Cron-Ausdruck.
Tipp: Fuer Datenquellen die sich selten aendern (z.B. Archiv-Freigaben) ist weekly oder monthly sinnvoll. Fuer E-Mail-Quellen empfiehlt sich daily, damit neue Mails zeitnah verfuegbar sind.

Zugriffsrechte

Ueber das Berechtigungs-Modal koennen einer Datenquelle Gruppen und/oder einzelne Benutzer zugewiesen werden. Nur zugewiesene Benutzer (direkt oder ueber eine Gruppe) sehen Ergebnisse aus dieser Datenquelle in ihren Chat-Antworten.

RegelBeschreibung
Keine Zuweisung Alle Benutzer haben Zugriff (Standard fuer neue Datenquellen).
Gruppen zugewiesen Nur Mitglieder der zugewiesenen Gruppen haben Zugriff.
Benutzer zugewiesen Nur die zugewiesenen Benutzer haben Zugriff.
Gruppen + Benutzer Vereinigung: Gruppenmitglieder UND direkt zugewiesene Benutzer haben Zugriff.
Tipp: Die Zuweisung erfolgt im Replace-All-Modus — beim Speichern werden alle bestehenden Zuweisungen durch die aktuelle Auswahl ersetzt. Das bedeutet: Wenn alle Checkboxen abgewaehlt werden, wird der Zugriff fuer alle geoeffnet (keine Einschraenkung).

Indexierung steuern

Inkrementelle vs. Voll-Indexierung

ModusBeschreibungWann verwenden
Indexieren Vergleicht File-Hashes (Pfad + Groesse + mtime). Nur neue oder geaenderte Dateien werden verarbeitet. Bestehende Chunks bleiben erhalten. Standardfall — fuer regelmaessige Updates.
Voll-Indexieren Setzt alle File-Hashes zurueck und verarbeitet jede Datei neu. Bestehende Chunks werden vorher geloescht. Nach Aenderung der Chunk-Strategie, nach DDU-Aktivierung, bei Verdacht auf inkonsistente Daten.

Pipeline-Phasen

Die Indexierung durchlaeuft folgende Phasen (sichtbar im Status-Dialog):

  1. Scanning — Dateien auflisten und Hashes berechnen
  2. Loading — Dateien laden und in Text konvertieren (ggf. via DDU/VLM)
  3. Chunking — Text in Chunks zerlegen
  4. Embedding — Chunks vektorisieren und in Qdrant speichern

Pause und Abbruch

  • Pause — Unterbricht die Pipeline nach dem aktuellen Batch. Kann fortgesetzt werden.
  • Abbrechen — Bricht die Pipeline ab. Bereits verarbeitete Dateien behalten ihren Hash — ein erneuter »Indexieren«-Lauf setzt an der Stelle fort.
Tipp — Circuit-Breaker: Nach 10 aufeinanderfolgenden Fehlern bricht die Pipeline automatisch ab (Circuit-Breaker). Das verhindert Endlosschleifen bei systematischen Problemen (z.B. DDU-Service nicht erreichbar).

API-Endpunkte

Die vollstaendige API-Referenz fuer Datenquellen wird dynamisch aus der Admin-Registry generiert und ist im API-Katalog verfuegbar:

  • Datenquellen-API — CRUD, Verbindungstest, Gruppen-/Benutzer-Zuweisung, Ingestion-Status

Troubleshooting

ProblemMoegliche UrsacheLoesung
Verbindungstest SMB schlaegt fehl Firewall, falscher Share-Name, fehlende Credentials Vom KIara-Server testen: smbclient //server/share -U user%pass. Domain-Format pruefen: DOMAIN\user oder user@domain.
WebDAV »401 Unauthorized« Falsches Passwort oder App-Passwort noetig Bei Nextcloud mit 2FA: App-Passwort generieren unter Einstellungen → Sicherheit → Geraete & Sitzungen.
IMAP-Ordner werden nicht gefunden Falsche Ordnernamen, Server-spezifische Konvention Ordner-Picker verwenden statt manueller Eingabe.
Exchange: »Token-Fehler« Client-Secret abgelaufen, fehlende Admin-Zustimmung Entra Admin Center: App → Zertifikate & Geheimnisse pruefen. API-Berechtigungen: Admin-Zustimmung erteilt?
SQL: »Treiber nicht gefunden« Fehlende System-Bibliothek MSSQL: apt install unixodbc-dev + ODBC-Treiber installieren.
MySQL: pip install pymysql im KIara-venv.
Indexierung bricht nach 10 Dateien ab Circuit-Breaker ausgeloest (10 aufeinanderfolgende Fehler) Ursache im Ingestion-Status pruefen (Fehlermeldung pro Datei). Haeufig: DDU-Timeout, Dateiberechtigungen, korrupte Dateien.
Chunks sind 0 nach Indexierung Keine unterstuetzten Dateitypen, Dateityp-Filter zu restriktiv Dateityp-Filter pruefen. Alle Textdateien akzeptieren aktivieren fuer Dateien ohne Endung.
DDU-Fehler: »Timeout« Docling-Proxy nicht erreichbar oder ueberlastet Status pruefen: systemctl status docling-proxy auf dem Ollama-Server (10.0.12.16). VRAM-Auslastung pruefen: nvidia-smi.