Initial commit: my-brain-importer RAG knowledge management agent
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
102
README.md
Executable file
102
README.md
Executable file
@@ -0,0 +1,102 @@
|
||||
# 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):
|
||||
|
||||
```yaml
|
||||
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.model` oder `dimensions` änderst, muss die Qdrant-Collection neu erstellt werden (im Dashboard löschen, dann `ingest` erneut ausführen).
|
||||
|
||||
## Build
|
||||
|
||||
```bash
|
||||
bash build.sh
|
||||
```
|
||||
|
||||
Erzeugt `bin/ingest`, `bin/ingest.exe`, `bin/ask`, `bin/ask.exe`.
|
||||
|
||||
## Nutzung
|
||||
|
||||
```bash
|
||||
# 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.url` mit dem konfigurierten Embedding-Modell geladen
|
||||
- LocalAI läuft auf `chat.url` mit dem konfigurierten Chat-Modell geladen
|
||||
- Qdrant läuft auf dem NAS (Port 6334 gRPC, Port 6333 Dashboard)
|
||||
Reference in New Issue
Block a user