docs/mindnet_functional_architecture.md aktualisiert
All checks were successful
Deploy mindnet to llm-node / deploy (push) Successful in 3s
All checks were successful
Deploy mindnet to llm-node / deploy (push) Successful in 3s
This commit is contained in:
parent
5d8e96372f
commit
fcb90db2d0
|
|
@ -164,29 +164,80 @@ Die API gibt diese Analysen als menschenlesbare Sätze (`reasons`) und als Daten
|
|||
|
||||
---
|
||||
|
||||
## 6) Der RAG-Chat & Persönlichkeit (WP05/WP06)
|
||||
## 6) Der RAG-Chat & Persönlichkeit (WP05)
|
||||
|
||||
Seit WP-05 kann Mindnet nicht nur suchen, sondern als **KI-Zwilling** antworten. Die Persönlichkeit entsteht dabei auf zwei Ebenen:
|
||||
|
||||
### 6.1 Stil & Tonfall (WP05 - "Wie ich spreche")
|
||||
### 6.1 Stil & Tonfall (System Prompt)
|
||||
In `config/prompts.yaml` wird die Persona definiert.
|
||||
* **System Prompt:** Definiert die Rolle ("Ich bin dein digitales Gedächtnis...").
|
||||
* **Werte im Prompt:** Pragmatismus, Transparenz (kein Halluzinieren), Vernetztes Denken.
|
||||
* **Context Intelligence:** Dem LLM werden Metadaten (Typ, Score) injiziert, damit es komplexe Zusammenhänge erkennt (z.B. dass eine `[DECISION]` wichtiger ist als ein `[CONCEPT]`).
|
||||
|
||||
### 6.2 Strategische Persönlichkeit (WP06 - "Wie ich entscheide")
|
||||
Ein echter KI-Zwilling spiegelt nicht nur den Stil, sondern die **Werte** des Users wider. Dies wird durch **Strategic Retrieval** erreicht:
|
||||
* **Logik:** Bei komplexen Fragen oder Entscheidungen ("Soll ich X tun?") lädt das System gezielt Notizen vom Typ `[VALUE]` und `[PRINCIPLE]` in den Kontext – auch wenn diese textlich nicht direkt zur Frage passen (Re-Ranking).
|
||||
### 6.2 Strategische Persönlichkeit (Ausblick WP06)
|
||||
Ein echter KI-Zwilling spiegelt nicht nur den Stil, sondern die **Werte** des Users wider.
|
||||
* **Logik:** Bei komplexen Fragen oder Entscheidungen ("Soll ich X tun?") lädt das System gezielt Notizen vom Typ `[VALUE]` und `[PRINCIPLE]` in den Kontext.
|
||||
* **Effekt:** Das System wägt die Fakten (aus der Suche) gegen die Werte (aus dem Profil) ab.
|
||||
* **Beispiel:** Eine technisch perfekte Lösung wird abgelehnt, wenn sie gegen den Wert "Datensparsamkeit" verstößt.
|
||||
|
||||
---
|
||||
|
||||
## 7) Feedback & Lernen – WP04c
|
||||
## 7) Erweiterbarkeit & Teaching (Context Intelligence)
|
||||
|
||||
Mindnet lernt nicht durch klassisches Training (Fine-Tuning), sondern durch **Konfiguration**, **Vernetzung** und **Prompting**. Dies ist das **"Teach-the-AI" Paradigma**: Wenn du dem System ein neues Konzept beibringen willst, musst du an drei Stellen eingreifen.
|
||||
|
||||
### A. Workflow: Einen neuen Typ implementieren (z. B. `type: risk`)
|
||||
|
||||
1. **Physik definieren (`config/types.yaml`)**
|
||||
Steuere, wie schwer der Inhalt wiegt und wie er vernetzt wird.
|
||||
```yaml
|
||||
risk:
|
||||
chunk_profile: short # Risiken sind prägnant
|
||||
retriever_weight: 0.90 # Hohe Priorität im Ranking
|
||||
edge_defaults: ["blocks"] # Automatische Kante zu verlinkten Projekten
|
||||
```
|
||||
*Effekt:* Der Retriever spült diese Notizen bei relevanten Anfragen nach oben.
|
||||
|
||||
2. **Semantik erklären (`config/prompts.yaml`)**
|
||||
Bringe dem LLM bei, wie es mit diesem Typ umgehen soll.
|
||||
```yaml
|
||||
system_prompt: |
|
||||
...
|
||||
REGELN FÜR TYPEN:
|
||||
- [RISK]: Warnung! Wenn ein Chunk vom Typ 'risk' im Kontext ist, weise den User explizit darauf hin.
|
||||
```
|
||||
*Effekt:* Der Chatbot ignoriert das Risiko nicht nur, sondern "versteht" die Warnfunktion.
|
||||
|
||||
### B. Workflow: Neue Beziehungen nutzen (z. B. `beeinflusst_von`)
|
||||
|
||||
Beziehungen sind der Klebstoff für logische Schlussfolgerungen.
|
||||
|
||||
1. **Erfassung im Vault (Markdown)**
|
||||
Nutze die Inline-Syntax. Du musst nichts vorab definieren.
|
||||
> "Die Entscheidung für Qdrant wurde [[rel:beeinflusst_von Budgetkürzung 2024]]."
|
||||
|
||||
2. **Gewichtung justieren (`config/retriever.yaml`)**
|
||||
Standardmäßig sind alle Kanten gleich `1.0`. Wenn Kausalität wichtiger ist als Ähnlichkeit, definiere dies hier:
|
||||
```yaml
|
||||
retriever:
|
||||
edge_weights:
|
||||
beeinflusst_von: 1.5 # Starker Boost: Zieht Ursachen in den Kontext
|
||||
related_to: 0.5 # Schwacher Boost: Nur "nice to know"
|
||||
```
|
||||
*Effekt:* Bei der Frage nach "Qdrant" landet die "Budgetkürzung" (Ursache) im Kontext, weil die Kante stark ist.
|
||||
|
||||
3. **Interpretation (Prompting)**
|
||||
Das LLM erkennt im RAG-Kontext: `Qdrant --[beeinflusst_von]--> Budgetkürzung`.
|
||||
Es kann daraus den Satz formulieren: *"Die Wahl fiel vermutlich aufgrund der Budgetkürzung auf Qdrant."*
|
||||
|
||||
**Fazit:** Nur wenn **Daten** (Vault), **Physik** (Config) und **Semantik** (Prompt) zusammenspielen, entsteht ein intelligenter Zwilling.
|
||||
|
||||
---
|
||||
|
||||
## 8) Feedback & Lernen – WP04c
|
||||
|
||||
Das System verfügt nun über ein **Kurzzeitgedächtnis für Interaktionen**, das die Basis für zukünftiges Lernen bildet.
|
||||
|
||||
### 7.1 Der Feedback-Loop
|
||||
### 8.1 Der Feedback-Loop
|
||||
1. **Suche (Situation):**
|
||||
Wenn ein Nutzer eine Anfrage stellt, loggt Mindnet die "Situation":
|
||||
* Den Query-Text.
|
||||
|
|
@ -203,7 +254,7 @@ Das System verfügt nun über ein **Kurzzeitgedächtnis für Interaktionen**, da
|
|||
|
||||
---
|
||||
|
||||
## 8) Confidence & Provenance – wozu?
|
||||
## 9) Confidence & Provenance – wozu?
|
||||
|
||||
Der Retriever kann Edges gewichten:
|
||||
- **provenance**: *explicit* > *rule*
|
||||
|
|
@ -215,7 +266,7 @@ Eine typische Gewichtung (konfigurierbar in `retriever.yaml`) ist:
|
|||
|
||||
---
|
||||
|
||||
## 9) Semantik ausgewählter `kind`-Werte
|
||||
## 10) Semantik ausgewählter `kind`-Werte
|
||||
|
||||
- `references` – „Nutzt/erwähnt“; neutral, aber stützend für Kontext.
|
||||
- `related_to` – Ähnlichkeit/Verwandtschaft (symmetrisch interpretierbar).
|
||||
|
|
@ -227,7 +278,7 @@ Eine typische Gewichtung (konfigurierbar in `retriever.yaml`) ist:
|
|||
|
||||
---
|
||||
|
||||
## 10) Frontmatter-Eigenschaften – Rolle & Empfehlung
|
||||
## 11) Frontmatter-Eigenschaften – Rolle & Empfehlung
|
||||
|
||||
Frontmatter-Eigenschaften (Properties) bleiben **minimiert**:
|
||||
- **type** – steuert Typ-Defaults via Registry (Pflicht für differenziertes Verhalten).
|
||||
|
|
@ -237,7 +288,7 @@ Frontmatter-Eigenschaften (Properties) bleiben **minimiert**:
|
|||
|
||||
---
|
||||
|
||||
## 11) Lösch-/Update-Garantien (Idempotenz)
|
||||
## 12) Lösch-/Update-Garantien (Idempotenz)
|
||||
|
||||
- Jede Note hat einen stabilen **note_id** (Frontmatter/Hash).
|
||||
- Vor einem Upsert können *alte Chunks/Edges einer Note* gefiltert gelöscht werden (`note_id`-Filter) – das hält Collections sauber bei Re-Imports.
|
||||
|
|
@ -245,7 +296,7 @@ Frontmatter-Eigenschaften (Properties) bleiben **minimiert**:
|
|||
|
||||
---
|
||||
|
||||
## 12) Beispiel – Von Markdown zu Kanten (v2.2)
|
||||
## 13) Beispiel – Von Markdown zu Kanten (v2.2)
|
||||
|
||||
**Markdown (Auszug)**
|
||||
# Relations Showcase
|
||||
|
|
@ -264,7 +315,7 @@ Frontmatter-Eigenschaften (Properties) bleiben **minimiert**:
|
|||
|
||||
---
|
||||
|
||||
## 13) Referenzen (Projektdateien & Leitlinien)
|
||||
## 14) Referenzen (Projektdateien & Leitlinien)
|
||||
|
||||
- Import-Pipeline & Registry-Auflösung: `scripts/import_markdown.py`.
|
||||
- Kantenbildung (V2-Logic): `app/core/derive_edges.py`.
|
||||
|
|
@ -275,7 +326,7 @@ Frontmatter-Eigenschaften (Properties) bleiben **minimiert**:
|
|||
|
||||
---
|
||||
|
||||
## 14) Workpackage Status (v2.3.0)
|
||||
## 15) Workpackage Status (v2.3.0)
|
||||
|
||||
Aktueller Implementierungsstand der Module.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user