feat: stream provider responses
This commit is contained in:
+17
-16
@@ -106,6 +106,9 @@ Rootserver:
|
||||
Behandlungs- und medizinische Notfallfragen sind zwingend lokal `never`.
|
||||
- `/privacy` trennt Inhaltsklassifikation, tatsächlichen Provider, Unterdrückung
|
||||
durch Modus `local` und technischen Provider-Fallback.
|
||||
- Ollama, Gemini, Hybridrouter, Chatservice und CLI streamen sichtbare Antwortteile.
|
||||
Verdeckte Gedanken werden nicht angefordert oder ausgegeben; Terminal-Markdown
|
||||
wird lesbar bereinigt. Strg+C verwirft Teilantworten atomar und kehrt zum Chat zurück.
|
||||
|
||||
## Aktuelle Architektur
|
||||
|
||||
@@ -114,6 +117,8 @@ Rootserver:
|
||||
- Modell-Provider als kleine austauschbare Schnittstelle
|
||||
- Ollama-Provider akzeptiert nur lokale HTTP-Loopback-Adressen
|
||||
- SQLite-Sitzungsspeicher mit atomaren Benutzer-/Assistentenpaaren
|
||||
- Streaming wird erst nach vollständigem Abschluss atomar gespeichert; bei Abbruch
|
||||
bleibt weder die Benutzerfrage noch eine unvollständige Antwort im Verlauf.
|
||||
- Laufzeitdaten außerhalb von Git über `JAVIS_DATA_DIR` oder sicheren Plattformstandard
|
||||
- Hybridprovider bevorzugt Gemini für cloudgeeignete Inhalte und verwendet
|
||||
Ollama bei Datenschutz, Ablehnung, Offline-, Quota- und Providerfehlern
|
||||
@@ -164,6 +169,10 @@ Rootserver:
|
||||
- Lesender Ollama-Status prüft nur Loopback-Erreichbarkeit und Modellliste.
|
||||
- Sicheres PowerShell-Startskript und kompakte Startdokumentation ergänzt; keine
|
||||
PATH-, Registry-, Autostart-, Dienst- oder Richtlinienänderung.
|
||||
- Medizinische Inhalte vor Cloudclient-Erstellung strikt auf `never` gesetzt.
|
||||
- Echtes Ollama-/Gemini-Streaming, providerübergreifendes Fallback vor der ersten
|
||||
Ausgabe und sicheren Streaming-Abbruch nach Teilausgabe implementiert.
|
||||
- CLI-Streaming mit lesbarer Markdown-Bereinigung und sicherem Strg+C ergänzt.
|
||||
|
||||
## Aktuelle Tests
|
||||
|
||||
@@ -178,7 +187,8 @@ Letzter bestätigter Projektstand:
|
||||
- uv-Lock und `uv sync --dev`: bestanden
|
||||
- Python in `.venv`: 3.12.13
|
||||
- Ruff in `.venv`: 0.16.0
|
||||
- Unit-Tests: 69 bestanden; medizinisches `never` und Cloudclient-Sperre abgedeckt
|
||||
- Unit-Tests: 82 bestanden; medizinisches `never`, Streaming, Gedankenfilter,
|
||||
Cloudclient-Sperre, Fallback und atomarer Strg+C-Abbruch abgedeckt
|
||||
- PowerShell-Syntax des Startskripts: erfolgreich geparst
|
||||
- Ruff Lint: bestanden
|
||||
- Ruff Formatprüfung: bestanden
|
||||
@@ -220,7 +230,9 @@ Abnahmestatus:
|
||||
|
||||
## Git-Stand
|
||||
|
||||
- aktueller und stabiler Branch: `main`
|
||||
- aktueller Arbeitsbranch: `feat/chat-comfort`
|
||||
- stabiler Ausgangsstand: `main` bei `77b510b`
|
||||
- medizinischer Datenschutz-Fix: `9148193`
|
||||
- Feature-Branch ist als `7a14fe8` zu
|
||||
`origin/feat/gemini-privacy-router` gepusht
|
||||
- konfliktfreier Merge nach `main`: `564a3fd`
|
||||
@@ -249,23 +261,11 @@ Abnahmestatus:
|
||||
- `origin` verwendet HTTPS
|
||||
- kein Force-Push und keine umgeschriebene Historie
|
||||
|
||||
## Kompakter Changelog
|
||||
|
||||
- `49a1dd3`: erster Gitea-Verbindungstest
|
||||
- `6d04171`: sicheres Javis-Grundgerüst
|
||||
- `0e82748`: Werkzeug-, Token- und Handoff-Regeln
|
||||
- `e6eb995`: einmalige Archivierung und Verdichtung des Handoffs
|
||||
- aktuell: isolierte Python-Toolchain und reproduzierbare Entwicklungsumgebung
|
||||
- aktuell: portable Ollama-Laufzeit und `qwen3:8b` außerhalb von Git verifiziert
|
||||
- aktuell: lokaler CLI-Chat und persistente SQLite-Sitzungen vollständig abgenommen
|
||||
- aktuell: Gemini-Free-Hybridrouting, Datenschutz und Nullkostenmodus
|
||||
automatisiert und durch Pascal manuell vollständig abgenommen
|
||||
|
||||
## Offene Entscheidungen und Fehler
|
||||
|
||||
- endgültiger Produkt-/Repositoryname bleibt offen
|
||||
- Startskript startet Ollama bei Bedarf pro Prozess; kein Autostart oder Dienst
|
||||
- Antworten werden noch nicht gestreamt; Sitzungen besitzen noch keine Titel oder Suche
|
||||
- Antworten werden gestreamt; Sitzungen besitzen noch keine Titel oder Suche
|
||||
- genauer späterer Obsidian-Schreibbereich ist nicht freigegeben
|
||||
- normaler Secret-Provider ist festgelegt: Betriebssystem-Keyring; eine
|
||||
Klartext-XML wird nicht für API-Schlüssel verwendet
|
||||
@@ -289,7 +289,8 @@ Abnahmestatus:
|
||||
|
||||
## Nächster sinnvoller Auftrag
|
||||
|
||||
Auf `feat/chat-comfort` als nächstes Streaming mit sicherem Abbruch umsetzen.
|
||||
Auf `feat/chat-comfort` als Nächstes SQLite-Titelmigration, lokale automatische
|
||||
Titel sowie `/rename`, `/sessions`, `/load` und `/search` umsetzen.
|
||||
Medizinische Antwortqualität bleibt ein späteres Sicherheits-/Systemprompt-Thema.
|
||||
Noch keine Obsidian-Integration oder Tools beginnen.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user