a3bcac55fb32219e494a7bdf906c3e91b06bb3e2
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
my-brain-importer
Persönlicher Wissens-Agent für den AI_Brain. Importiert Markdown-Notizen und Bildbeschreibungen in eine Qdrant-Vektordatenbank und beantwortet Fragen darüber mit einem lokalen LLM.
Architektur
AI_Brain/
*.md Dateien
│
▼
bin/ingest Embeddings via LocalAI
│
▼
Qdrant (NAS) ◄──── bin/ask ──► LM Studio (Chat)
- Embeddings: LocalAI unter
embedding.url(Modell konfigurierbar) - Vektordatenbank: Qdrant auf dem NAS
- Chat-Completion: LocalAI unter
chat.url(Modell konfigurierbar)
Projektstruktur
AI-Agent/
cmd/
ingest/main.go Entry Point für ingest-Binary
ask/main.go Entry Point für ask-Binary
internal/
config/config.go Config-Struct, Clients, Verbindungen
brain/
ingest.go Markdown-Import, Chunking
ingest_json.go JSON-Import (Bildbeschreibungen)
ask.go Suche + LLM-Antwort
bin/ Kompilierte Binaries (von build.sh erzeugt)
config.yml Alle Einstellungen
build.sh Baut beide Binaries
Konfiguration
Alle Einstellungen in config.yml (muss im Arbeitsverzeichnis liegen):
qdrant:
host: "192.168.1.4"
port: "6334"
api_key: "..."
collection: "jacek-brain"
embedding:
url: "http://192.168.1.118:8080/v1"
model: "qwen3-embedding-4b"
dimensions: 2560 # muss zum Modell passen
chat:
url: "http://192.168.1.118:8080/v1"
model: "qwen3.5-4b-claude-4.6-opus-reasoning-distilled"
brain_root: "/mnt/c/Users/jacek/AI_Brain"
top_k: 3
Wichtig: Wenn du
embedding.modeloderdimensionsänderst, muss die Qdrant-Collection neu erstellt werden (im Dashboard löschen, danningesterneut ausführen).
Build
bash build.sh
Erzeugt bin/ingest, bin/ingest.exe, bin/ask, bin/ask.exe.
Nutzung
# Markdown-Dateien aus brain_root importieren
./bin/ingest
# Alternatives Verzeichnis angeben
./bin/ingest /pfad/zum/verzeichnis
# Bildbeschreibungen aus JSON importieren
./bin/ingest image_descriptions.json
# Frage stellen
./bin/ask "Was sind meine Reisepläne für Norwegen?"
./bin/ask "Erzähl mir über Veronica Bellmore"
Brain aktualisieren
Kein Löschen der Datenbank nötig — einfach ./bin/ingest erneut ausführen:
- Bestehende Chunks → gleiche SHA256-ID → Qdrant überschreibt
- Neue Dateien → neue IDs → werden hinzugefügt
Voraussetzungen
- Go 1.22+
- LocalAI läuft auf
embedding.urlmit dem konfigurierten Embedding-Modell geladen - LocalAI läuft auf
chat.urlmit dem konfigurierten Chat-Modell geladen - Qdrant läuft auf dem NAS (Port 6334 gRPC, Port 6333 Dashboard)
Description
Languages
Go
95.4%
Shell
4.5%