add complete readme beta
This commit is contained in:
251
README.md
251
README.md
@@ -1,3 +1,250 @@
|
|||||||
# MtoRagSystem
|
# mitho AI Agent
|
||||||
|
**Hybrid RAG System auf Symfony-Basis mit Vektor- & Keyword-Retrieval**
|
||||||
|
|
||||||
KI-Rag System portiert von der mitho python rag Anwendung
|
---
|
||||||
|
|
||||||
|
## Überblick
|
||||||
|
|
||||||
|
Der **mitho AI Agent** ist ein produktionsreifes, Symfony-basiertes RAG-System (Retrieval Augmented Generation), das KI nicht frei „raten“ lässt, sondern Antworten strikt auf Basis eines kontrollierten Wissenspools erzeugt.
|
||||||
|
|
||||||
|
> **Leitsatz:**
|
||||||
|
> *„Wir nutzen KI nicht, um kreativ zu raten, sondern um verlässlich auf Basis Ihres Wissens zu antworten.“*
|
||||||
|
|
||||||
|
Das System kombiniert:
|
||||||
|
|
||||||
|
- Large Language Model (LLM, z. B. Qwen via Ollama)
|
||||||
|
- Keyword-basiertes Retrieval
|
||||||
|
- FAISS-Vektor-Suche
|
||||||
|
- Versionierte Wissensstruktur (Chunks + Index)
|
||||||
|
- Streaming-Ausgabe via Server-Sent Events (SSE)
|
||||||
|
- Persistente Chat-Historie pro Client
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Architektur
|
||||||
|
|
||||||
|
## 1. Backend
|
||||||
|
|
||||||
|
**Technologie**
|
||||||
|
|
||||||
|
- PHP 8.2+
|
||||||
|
- Symfony 7.4
|
||||||
|
- Monolog Logging
|
||||||
|
- Symfony Cache
|
||||||
|
- Session Support
|
||||||
|
|
||||||
|
### Zentrale Komponenten
|
||||||
|
|
||||||
|
| Komponente | Aufgabe |
|
||||||
|
|------------|----------|
|
||||||
|
| `AgentRunner` | Orchestriert Prompt, Kontext & LLM |
|
||||||
|
| `PromptBuilder` | Baut System- & User-Prompt |
|
||||||
|
| `ContextService` | Historienverwaltung |
|
||||||
|
| `ChunkKeywordRetriever` | Keyword-Scoring |
|
||||||
|
| `VectorSearchClient` | Python-FAISS-Anbindung |
|
||||||
|
| `KnowledgeIngestService` | Dokument → Chunks |
|
||||||
|
| `ChunkIndexWriter` | index.json Verwaltung |
|
||||||
|
| `CachedRetriever` | Performance-Optimierung |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Hybrid Retrieval (Produktionsarchitektur)
|
||||||
|
|
||||||
|
Das System nutzt eine **hybride Sucharchitektur**:
|
||||||
|
|
||||||
|
### A) Keyword-Retrieval (führend)
|
||||||
|
|
||||||
|
- Stopword-Filter
|
||||||
|
- Lemma-Logik
|
||||||
|
- Score-Berechnung
|
||||||
|
- deterministische Gewichtung
|
||||||
|
|
||||||
|
### B) Vektor-Retrieval (ergänzend)
|
||||||
|
|
||||||
|
- SentenceTransformer: `all-MiniLM-L6-v2`
|
||||||
|
- FAISS Index (Inner Product)
|
||||||
|
- Normalisierte Embeddings
|
||||||
|
- Top-K Suche
|
||||||
|
|
||||||
|
### Retrieval-Flow
|
||||||
|
|
||||||
|
1. User Prompt
|
||||||
|
2. Keyword-Scoring
|
||||||
|
3. FAISS-Suche
|
||||||
|
4. Score-Fusion
|
||||||
|
5. Top-N Chunks
|
||||||
|
6. Kontextaufbau
|
||||||
|
7. LLM-Antwort
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Wissensarchitektur
|
||||||
|
|
||||||
|
```
|
||||||
|
var/knowledge/
|
||||||
|
├── uploads/
|
||||||
|
├── chunks/
|
||||||
|
├── manifest.json
|
||||||
|
└── index.json
|
||||||
|
```
|
||||||
|
|
||||||
|
### Prinzipien
|
||||||
|
|
||||||
|
- Dokumente sind Primärquelle
|
||||||
|
- Chunks sind abgeleitete Artefakte
|
||||||
|
- `index.json` ist Single Source of Truth
|
||||||
|
- Re-Ingest ist deterministisch
|
||||||
|
- Keine manuelle Chunk-Manipulation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Vektor-Ingest
|
||||||
|
|
||||||
|
CLI Command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
php bin/console mto:agent:vector:ingest
|
||||||
|
```
|
||||||
|
|
||||||
|
Ablauf:
|
||||||
|
|
||||||
|
1. index.json lesen
|
||||||
|
2. Chunk-Texte laden
|
||||||
|
3. Embeddings erzeugen
|
||||||
|
4. FAISS Index erstellen
|
||||||
|
5. vector.index speichern
|
||||||
|
6. vector_meta.json schreiben
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. LLM-Anbindung
|
||||||
|
|
||||||
|
Standardmäßig via Ollama.
|
||||||
|
|
||||||
|
Konfiguration über ENV:
|
||||||
|
|
||||||
|
```
|
||||||
|
AI_LLM_API_URL=
|
||||||
|
AI_LLM_MODEL=
|
||||||
|
AI_LLM_TIMEOUT=
|
||||||
|
AI_DEBUG=
|
||||||
|
AI_LOG_PROMPT=
|
||||||
|
AI_LOG_CONTEXT=
|
||||||
|
AI_HISTORY_DIR=
|
||||||
|
```
|
||||||
|
|
||||||
|
Features:
|
||||||
|
|
||||||
|
- Streaming-fähig
|
||||||
|
- Konfigurierbarer Timeout
|
||||||
|
- Denkmodus unterdrückbar
|
||||||
|
- Historienintegration
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Frontend
|
||||||
|
|
||||||
|
Technologie:
|
||||||
|
|
||||||
|
- Bootstrap
|
||||||
|
- Marked (Markdown)
|
||||||
|
- DOMPurify
|
||||||
|
- SSE Streaming
|
||||||
|
|
||||||
|
Features:
|
||||||
|
|
||||||
|
- Live-Streaming
|
||||||
|
- Markdown-Rendering
|
||||||
|
- Abbruch-Funktion
|
||||||
|
- Chat-Verlauf
|
||||||
|
- Client-ID per Cookie
|
||||||
|
- Verlaufslöschung
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Logging & Debug
|
||||||
|
|
||||||
|
Log-Datei:
|
||||||
|
|
||||||
|
```
|
||||||
|
var/log/agent.log
|
||||||
|
```
|
||||||
|
|
||||||
|
Optional aktivierbar:
|
||||||
|
|
||||||
|
- Prompt Logging
|
||||||
|
- Kontext Logging
|
||||||
|
- Debug-Modus
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Sicherheit & Governance
|
||||||
|
|
||||||
|
- Rollenmodell (Super Admin / Knowledge Admin / Redaktion)
|
||||||
|
- Versionierte Dokumente
|
||||||
|
- Versionierte Ingest-Profile
|
||||||
|
- Versionierte System-Prompts
|
||||||
|
- KI-Endpunkt abstrahiert
|
||||||
|
- Audit-Logs
|
||||||
|
- Lock-Mechanismen bei Reindex
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Produktstatus
|
||||||
|
|
||||||
|
Das System ist:
|
||||||
|
|
||||||
|
- Produktionsreif
|
||||||
|
- Framework-neutral
|
||||||
|
- Kundenfähig
|
||||||
|
- Skalierbar
|
||||||
|
- Erweiterbar (Adminbereich geplant)
|
||||||
|
|
||||||
|
Nicht enthalten:
|
||||||
|
|
||||||
|
- Autonomes Fine-Tuning
|
||||||
|
- Live-Lernsystem
|
||||||
|
- Self-Modifying Knowledge
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Unterschied zu generischen KI-Tools
|
||||||
|
|
||||||
|
| Generische KI | mitho AI Agent |
|
||||||
|
|---------------|----------------|
|
||||||
|
| trainiert auf Internet | basiert auf Ihrem Wissen |
|
||||||
|
| keine Governance | volle Kontrolle |
|
||||||
|
| keine Versionierung | Dokument-Versionierung |
|
||||||
|
| nicht nachvollziehbar | transparente Wissensbasis |
|
||||||
|
| generisch | unternehmensspezifisch |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Mindestanforderungen
|
||||||
|
|
||||||
|
- PHP 8.2+
|
||||||
|
- Python 3.9+
|
||||||
|
- faiss
|
||||||
|
- sentence-transformers
|
||||||
|
- Ollama (oder kompatibles LLM)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Vision
|
||||||
|
|
||||||
|
Dieses System bildet die Grundlage für:
|
||||||
|
|
||||||
|
- Agentic Commerce
|
||||||
|
- Interne Wissenssysteme
|
||||||
|
- Support-Automatisierung
|
||||||
|
- Vertriebsassistenz
|
||||||
|
- Technische Dokumentations-KI
|
||||||
|
- DSGVO-konforme Unternehmens-KI
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Fazit
|
||||||
|
|
||||||
|
Der mitho AI Agent ist kein Spielzeug-Chatbot.
|
||||||
|
|
||||||
|
Er ist ein strukturiertes, kontrolliertes KI-System mit klarer Wissensbasis, deterministischem Retrieval und professioneller Architektur – gebaut für produktiven Unternehmenseinsatz.
|
||||||
|
|||||||
Reference in New Issue
Block a user