139 lines
5.3 KiB
Markdown
139 lines
5.3 KiB
Markdown
# Branch Merge Commit Message: WP25
|
|
|
|
```
|
|
feat: Agentic Multi-Stream RAG Orchestration (v3.0)
|
|
|
|
## Architektur-Transformation (WP-25)
|
|
|
|
### Agentic Multi-Stream RAG Orchestration
|
|
- Übergang von linearer RAG-Architektur zu paralleler Multi-Stream Engine
|
|
- Parallele Abfragen in spezialisierten Wissens-Streams (Values, Facts, Biography, Risk, Tech)
|
|
- Stream-Tracing: Jeder Treffer wird mit `stream_origin` markiert
|
|
- Fehler-Resilienz: Einzelne Stream-Fehler blockieren nicht die gesamte Anfrage
|
|
|
|
**Geänderte Dateien:**
|
|
- `app/core/retrieval/decision_engine.py`: Multi-Stream Orchestrator (v1.0.3)
|
|
- `app/routers/chat.py`: Hybrid Router Integration (v3.0.2)
|
|
- `app/models/dto.py`: Stream-Tracing Support (v0.7.1)
|
|
|
|
### Intent-basiertes Routing ("The Brain")
|
|
- Hybrid-Modus: Keyword Fast-Path + LLM Slow-Path
|
|
- Strategien: FACT_WHAT, FACT_WHEN, DECISION, EMPATHY, CODING, INTERVIEW
|
|
- Sofortige Erkennung von Triggern wie "Soll ich" oder "Wann" ohne LLM-Call
|
|
- Komplexe semantische Analyse für unklare Anfragen
|
|
|
|
**Geänderte Dateien:**
|
|
- `app/routers/chat.py`: Hybrid Router mit Keyword-Fast-Path (v3.0.2)
|
|
- `app/core/retrieval/decision_engine.py`: LLM-basiertes Routing (v1.0.3)
|
|
|
|
### Wissens-Synthese
|
|
- Spezialisierte Templates in `prompts.yaml` mit expliziten Stream-Variablen
|
|
- Pre-Initialization aller Stream-Variablen (verhindert KeyErrors)
|
|
- Provider-spezifische Templates für Ollama, Gemini und OpenRouter
|
|
- Differenzierte Abwägung zwischen Fakten und persönlichen Werten
|
|
|
|
**Geänderte Dateien:**
|
|
- `config/prompts.yaml`: Stream-Templates (v3.1.2)
|
|
- `app/core/retrieval/decision_engine.py`: Synthese-Logik (v1.0.3)
|
|
|
|
## Stream-Konfiguration & Typ-Synchronisation
|
|
|
|
### Stream-Library (decision_engine.yaml v3.1.6)
|
|
- **Values Stream:** Identität, Ethik und Prinzipien (filter_types: value, principle, belief, etc.)
|
|
- **Facts Stream:** Operative Daten (filter_types: project, decision, task, etc.)
|
|
- **Biography Stream:** Persönliche Erfahrungen (filter_types: experience, journal, profile)
|
|
- **Risk Stream:** Hindernisse und Gefahren (filter_types: risk, obstacle, bias)
|
|
- **Tech Stream:** Technisches Wissen (filter_types: concept, source, glossary, etc.)
|
|
|
|
**Edge-Boosts pro Stream:**
|
|
- Values: `guides: 3.0`, `enforced_by: 2.5`, `based_on: 2.0`
|
|
- Facts: `part_of: 2.0`, `depends_on: 1.5`, `implemented_in: 1.5`
|
|
- Risk: `blocks: 2.5`, `impacts: 2.0`, `risk_of: 2.5`
|
|
|
|
**Geänderte Dateien:**
|
|
- `config/decision_engine.yaml`: Multi-Stream Konfiguration (v3.1.6)
|
|
|
|
## Bugfixes & Optimierungen
|
|
|
|
### Vault-Import Performance
|
|
- "Empty Response Guard" korrigiert: Kurze Ingest-Antworten (YES/NO) lösen nicht mehr fälschlicherweise langsame Fallbacks aus
|
|
- Entfernung des <5-Zeichen Guards ermöglicht YES/NO Validierungen
|
|
|
|
**Geänderte Dateien:**
|
|
- `app/services/llm_service.py`: Ingest-Stability Patch (v3.4.2)
|
|
|
|
### Cloud-Resilienz
|
|
- Sicherheitscheck für das `choices`-Array in `_execute_openrouter` implementiert
|
|
- Verhindert JSON-Errors bei überlasteten APIs
|
|
|
|
**Geänderte Dateien:**
|
|
- `app/services/llm_service.py`: Empty Response Guard (v3.4.2)
|
|
|
|
### Template-Robustheit
|
|
- Automatische Vor-Initialisierung aller Stream-Variablen in der `DecisionEngine`
|
|
- Verhindert `KeyError`-Abstürze bei unvollständigen Konfigurationen
|
|
- Fallback-Mechanismus bei Template-Fehlern
|
|
|
|
**Geänderte Dateien:**
|
|
- `app/core/retrieval/decision_engine.py`: Pre-Initialization (v1.0.3)
|
|
|
|
### Intent-Kollision
|
|
- Generische Begriffe (wie "Projekt") wurden aus den Keyword-Triggern entfernt
|
|
- Sicherstellt, dass strategische Fragen (z.B. "Soll ich...?") korrekt als `DECISION` geroutet werden
|
|
|
|
**Geänderte Dateien:**
|
|
- `config/decision_engine.yaml`: Keyword-Fix (v3.1.6)
|
|
|
|
## Ollama Context-Throttling
|
|
|
|
- Vor der Übergabe an Ollama prüft der Chat-Router, ob der Kontext die Grenze von `MAX_OLLAMA_CHARS` überschreitet (Standard: 10.000)
|
|
- Automatische Kürzung bei großen Kontexten
|
|
|
|
**Geänderte Dateien:**
|
|
- `app/routers/chat.py`: Context-Throttling (v3.0.2)
|
|
|
|
## Lifespan Management
|
|
|
|
- FastAPI-Anwendung implementiert Lifespan-Management für sauberen Startup und Shutdown
|
|
- Integritäts-Check der WP-25 Konfiguration beim Startup
|
|
- Ressourcen-Cleanup beim Shutdown
|
|
- Globale Fehlerbehandlung für asynchrone Prozesse
|
|
|
|
**Geänderte Dateien:**
|
|
- `app/main.py`: Lifespan Management (v1.0.0)
|
|
|
|
## Impact & Breaking Changes
|
|
|
|
### Keine Migration erforderlich
|
|
**WICHTIG:** Diese Version ist **rückwärtskompatibel**. Bestehende Vaults funktionieren ohne Re-Import.
|
|
|
|
**Konfigurations-Updates:**
|
|
- `decision_engine.yaml` wurde auf v3.1.6 aktualisiert (Multi-Stream Struktur)
|
|
- `prompts.yaml` wurde auf v3.1.2 aktualisiert (Stream-Templates)
|
|
- **Empfehlung:** Backup der alten Konfigurationsdateien vor dem Update
|
|
|
|
### API-Erweiterungen
|
|
- `QueryHit.stream_origin`: Name des Ursprungs-Streams (optional)
|
|
- `ChatResponse.intent`: Die gewählte WP-25 Strategie (optional)
|
|
- `ChatResponse.intent_source`: Quelle der Intent-Erkennung (optional)
|
|
|
|
## Dokumentation
|
|
|
|
Alle relevanten Dokumente aktualisiert:
|
|
- `03_tech_chat_backend.md`: Agentic Multi-Stream RAG, Intent-basiertes Routing, Wissens-Synthese
|
|
- `03_tech_configuration.md`: decision_engine.yaml, prompts.yaml (Stream-Struktur)
|
|
- `03_tech_api_reference.md`: Erweiterte DTOs (stream_origin, intent)
|
|
|
|
## Versionen
|
|
|
|
- Decision Engine: v1.0.3
|
|
- Chat Router: v3.0.2
|
|
- LLM Service: v3.4.2
|
|
- DTOs: v0.7.1
|
|
- Main: v1.0.0
|
|
- decision_engine.yaml: v3.1.6
|
|
- prompts.yaml: v3.1.2
|
|
|
|
Closes #[issue-number]
|
|
```
|