docs: Dokumentation aktualisieren – Multi-Provider-System, Gemini, Modell-Caching
This commit is contained in:
1 parent
ed6e78de56
commit
982aa60376
3 files changed
+93
-59
No files matched your search
+10
-24
@@ -6,7 +6,7 @@
|
||||
|
||||
## Tech-Stack
|
||||
|
||||
**.NET 10** Minimal API · **SQLite** + Dapper · **Anthropic Claude API** (SSE Streaming) · **Vanilla JS** SPA · **KaTeX** (Math) · **Kestrel** auf Port 19000
|
||||
**.NET 10** Minimal API · **SQLite** + Dapper · **Anthropic Claude API** (SSE Streaming) · **OpenAI-kompatible APIs** (Nvidia, Pollinations, Gemini) · **Vanilla JS** SPA · **KaTeX** (Math) · **Kestrel** auf Port 19000
|
||||
|
||||
---
|
||||
|
||||
@@ -17,7 +17,7 @@ gott/
|
||||
├── Program.cs # Startup, DI, Middleware, Routing
|
||||
├── appsettings.json # Tokens, API-Keys, Limits
|
||||
├── Models/ # Records (reine Daten)
|
||||
├── Services/ # Business-Logic (alle Singletons + WorkspaceHelper)
|
||||
├── Services/ # Business-Logic (alle Singletons + WorkspaceHelper + OpenAiService)
|
||||
├── Endpoints/ # HTTP API (Minimal API MapXxx-Pattern)
|
||||
├── Middleware/ # AuthMiddleware
|
||||
├── Templates/ # Vorlagen für neue Agents (IDENTITY, SOUL, USER)
|
||||
@@ -70,10 +70,10 @@ User 1──* TelegramBot 1──* Session (via telegram_bot_id)
|
||||
|---------|-------|
|
||||
| `users` | Login, DisplayName, IsAdmin, Persona, Settings (JSON), DefaultPath |
|
||||
| `tokens` | Auth-Tokens → User |
|
||||
| `agents` | AI-Agenten (Model, CustomCommands, AutoCommit, UseSoul/Identity/UserInfo/Memory, WebSearch, AllowUserChoice, TaskInstruction, AvatarScale/Offset, AvatarSmall, IsPublic) |
|
||||
| `agents` | AI-Agenten (Model – z.B. `claude-sonnet-4-6` oder `nvidia:model-id`, CustomCommands, AutoCommit, UseSoul/Identity/UserInfo/Memory, WebSearch, AllowUserChoice, TaskInstruction, AvatarScale/Offset, AvatarSmall, IsPublic) |
|
||||
| `sessions` | Chat-Sessions (Description, Image, ImageSmall, Workspace, Context, CustomCommands, TelegramBotId, TelegramChatId, AvatarScale/Offset, PreparerAgentId, ReviewAgentId, MaxReviewIterations, FinalizerAgentId) |
|
||||
| `chains` | Ein Request-Response-Zyklus (Tokens, Timing, Iterations, PlanMode, ToolChoice, ToolNames, StreamErrorInfo, ArchiveId) |
|
||||
| `messages` | Einzelne Nachrichten (text / tool_use / tool_result / error / web_search_result), Tag für Sub-Agent-Markierung oder Import-Herkunft (`openclaw-import`) |
|
||||
| `messages` | Einzelne Nachrichten (text / tool_use / tool_result / error / web_search_result), Tag für Sub-Agent-Markierung oder Import-Herkunft (`openclaw-import`), thought_signature (Gemini) |
|
||||
| `attachments` | Base64-Anhänge (Bilder, Dokumente) |
|
||||
| `archives` | Archivierte Chain-Gruppen |
|
||||
| `cronjobs` | Geplante Tasks (Cron-Expression + Prompt) |
|
||||
@@ -103,6 +103,7 @@ User 1──* TelegramBot 1──* Session (via telegram_bot_id)
|
||||
| Settings | `/api/settings` | GET, PUT (JSON blob) |
|
||||
| Backup | `/api/backup` | POST → tar.gz download (Admin) |
|
||||
| Shared | `/api/shared/`, `/api/messages/{id}/share` | Share erstellen, öffentlich abrufen, löschen |
|
||||
| Models | `/api/models/` | `GET nvidia`, `GET pollinations`, `GET gemini`, `POST refresh` |
|
||||
| Info | `/api/info` | GET → Build-Zeitstempel |
|
||||
| ServerSettings | `/api/admin/server-settings` | `GET`, `PUT` (Admin-only, liest/schreibt `appsettings.Production.json`) |
|
||||
|
||||
@@ -116,6 +117,7 @@ User 1──* TelegramBot 1──* Session (via telegram_bot_id)
|
||||
| **AuthService** | Token-Auth, Passwort-Hashing (SHA256) |
|
||||
| **ChatService** | Chat-Kontext aufbauen, History aus DB laden |
|
||||
| **AnthropicService** | Claude API: SSE Streaming + Non-Streaming |
|
||||
| **OpenAiService** | OpenAI-kompatible Provider (Nvidia, Pollinations, Gemini) mit Tool-Calling, Streaming, Modell-Caching |
|
||||
| **ToolService** | Tool-Definitionen + Ausführung (13 Tools) |
|
||||
| **WorkspaceHelper** | Workspace-Pfad-Auflösung (relativ → absolut), Path-Traversal-Schutz (static) |
|
||||
| **SystemPromptBuilder** | System-Prompt aus modularen Blöcken zusammenbauen + Reminder-Generierung (static) |
|
||||
@@ -262,27 +264,11 @@ Verwaltung über **Admin-UI** (`#/server-settings`): Liest `appsettings.Producti
|
||||
|
||||
## Deployment
|
||||
|
||||
**WICHTIG:** Das Deployment ist ein **manueller Vorgang**, der durch den Benutzer auf dem Server durchgeführt werden muss. Das System führt kein automatisches Deployment durch.
|
||||
```bash
|
||||
./deploy.sh # dotnet publish → systemctl restart gott
|
||||
```
|
||||
|
||||
### Goldene Regel für Änderungen
|
||||
* **Arbeiten Sie AUSSCHLIESSLICH im Verzeichnis `wwwroot/`** für Frontend-Änderungen.
|
||||
* **Editiere NIEMALS Dateien in `Build/*/publish/wwwroot/`!** Diese Verzeichnisse werden bei jedem Build überschrieben.
|
||||
* Das Verzeichnis `Build/*/publish/data/gott.db` darf niemals manuell gelöscht, geleert oder direkt modifiziert werden.
|
||||
|
||||
### Deployment-Vorgang (Beispiel für Linux)
|
||||
Das vorhandene Shell-Skript `deploy.sh` dient lediglich als Hilfestellung für den manuellen Prozess:
|
||||
|
||||
1. **Frontend-Anpassungen vornehmen** (in `wwwroot/`).
|
||||
2. **Manuelles Deployment** auf dem Server ausführen:
|
||||
```bash
|
||||
# Beispiel-Ablauf:
|
||||
systemctl stop gott
|
||||
dotnet publish -c Release -o Build/Linux/publish
|
||||
systemctl start gott
|
||||
```
|
||||
|
||||
### systemd
|
||||
Die Anwendung ist als systemd-Service konfiguriert und läuft standardmäßig auf Port 19000.
|
||||
Läuft als `systemd`-Service, Kestrel auf konfigurierbarem Port (Default 19000), typisch hinter Nginx/Caddy Reverse Proxy.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user