Restructure docs: move architecture to doc/, simplify README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
bin/
|
||||||
|
config.yml
|
||||||
71
README.md
71
README.md
@@ -2,66 +2,12 @@
|
|||||||
|
|
||||||
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.
|
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
|
## Voraussetzungen
|
||||||
|
|
||||||
```
|
- Go 1.22+
|
||||||
AI_Brain/
|
- LocalAI läuft auf `embedding.url` mit dem konfigurierten Embedding-Modell geladen
|
||||||
*.md Dateien
|
- LocalAI läuft auf `chat.url` mit dem konfigurierten Chat-Modell geladen
|
||||||
│
|
- Qdrant läuft auf dem NAS (Port 6334 gRPC, Port 6333 Dashboard)
|
||||||
▼
|
|
||||||
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
|
## Build
|
||||||
|
|
||||||
@@ -94,9 +40,4 @@ Kein Löschen der Datenbank nötig — einfach `./bin/ingest` erneut ausführen:
|
|||||||
- Bestehende Chunks → gleiche SHA256-ID → Qdrant überschreibt
|
- Bestehende Chunks → gleiche SHA256-ID → Qdrant überschreibt
|
||||||
- Neue Dateien → neue IDs → werden hinzugefügt
|
- Neue Dateien → neue IDs → werden hinzugefügt
|
||||||
|
|
||||||
## Voraussetzungen
|
Architektur und Konfiguration: [doc/architecture.md](doc/architecture.md)
|
||||||
|
|
||||||
- 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)
|
|
||||||
|
|||||||
60
doc/architecture.md
Normal file
60
doc/architecture.md
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
# 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).
|
||||||
Reference in New Issue
Block a user