docs: Dokumentation aktualisiert – API-Key-Scanner, passive Usage, Chat-Badge, Key-Check
ARCHITECTURE.md: - Neue Services: KeyScannerService, AnthropicKeyChecker - scanned_keys Tabelle, api_keys erweitert (status, plan, usage, source_url) - API-Key-Verwaltung komplett überarbeitet: Key-Check mit korrekten Headers, passive Usage-Aktualisierung, GitHub-Scanner, Chat Usage-Badge - Scanner-Endpunkte dokumentiert (scan, scanned, adopt, recheck) - Tool-Anzahl 16 → 17 ARCHITECTURE_QUICK.md: - Gleiche Struktur-Updates (Services, Tabellen, Endpunkte, Tool-Anzahl) - Chat-Page: Usage-Badge-Overlay + Key-Switch-Modal - Passive Usage-Aktualisierung nach jedem API-Request README.md: - Tool-Anzahl 16 → 17 - API-Key-Verwaltung mit Scanner, passive Usage, Chat-Badge
This commit is contained in:
1 parent
8b1794d11e
commit
730c14aa23
3 files changed
+62
-27
No files matched your search
+15
-8
@@ -22,7 +22,9 @@ gott/
|
||||
│ ├── SseHelper.cs # Shared SSE-Utilities
|
||||
│ ├── EmbeddingService.cs # Lokales Sentence-Embedding (ONNX)
|
||||
│ ├── VectorSearchService.cs # Semantische Suche
|
||||
│ └── RemoteConnectionManager.cs # WebSocket Remote-Verbindungen
|
||||
│ ├── RemoteConnectionManager.cs # WebSocket Remote-Verbindungen
|
||||
│ ├── KeyScannerService.cs # GitHub API-Key-Scanner
|
||||
│ └── AnthropicKeyChecker.cs # Anthropic Key-Validierung + Usage-Auswertung
|
||||
├── Endpoints/ # HTTP API (Minimal API MapXxx-Pattern)
|
||||
├── Middleware/ # AuthMiddleware
|
||||
├── Templates/ # Vorlagen für neue Agents (IDENTITY, SOUL, USER)
|
||||
@@ -85,7 +87,8 @@ User 1──* TelegramBot 1──* Session (via telegram_bot_id)
|
||||
| `agent_skills` | N:M Agent ↔ Skill |
|
||||
| `shared_messages` | Geteilte Nachrichten (öffentliche Links via Share-Token) |
|
||||
| `telegram_bots` | Telegram Bots (BotToken, WebhookSecret, Name, IsPublic) – eigenständige Entität, 1 Bot → N Sessions |
|
||||
| `api_keys` | API-Keys pro Provider (key_id, provider, name, api_key, is_active) – nur ein Key pro Provider aktiv |
|
||||
| `api_keys` | API-Keys pro Provider (key_id, provider, name, api_key, is_active, status, plan, usage_7d, usage_5h, source_url) – nur ein Key pro Provider aktiv |
|
||||
| `scanned_keys` | Gescannte GitHub-Keys (api_key, source_url, status, plan, usage_7d, usage_5h, adopted_api_key_id) |
|
||||
| `message_embeddings` | Sentence-Embeddings für semantische Suche (message_id, vector BLOB) |
|
||||
| `memory_file_embeddings` | Embeddings von Memory-Dateien (agent_id, file_path, chunk_index, vector BLOB) |
|
||||
|
||||
@@ -112,7 +115,7 @@ User 1──* TelegramBot 1──* Session (via telegram_bot_id)
|
||||
| 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` |
|
||||
| API Keys | `/api/admin/api-keys/` | CRUD + activate/deactivate, `POST check` (Anthropic Heartbeat) (Admin-only) |
|
||||
| API Keys | `/api/admin/api-keys/` | CRUD + activate/deactivate, `POST check` (Key-Validierung), scan (GitHub-Scanner), scanned (gefundene Keys), adopt (Key übernehmen) (Admin-only) |
|
||||
| Remote | `/api/remote` | WebSocket für Remote-Clients, `GET connections`, `POST assign/unassign` |
|
||||
| Info | `/api/info` | GET → Build-Zeitstempel + Embedding-Verfügbarkeit |
|
||||
| ServerSettings | `/api/admin/server-settings` | `GET`, `PUT` (Admin-only, liest/schreibt `appsettings.Production.json`) |
|
||||
@@ -126,10 +129,10 @@ User 1──* TelegramBot 1──* Session (via telegram_bot_id)
|
||||
| **DatabaseService** | Alles DB: Schema, Migrationen, CRUD |
|
||||
| **AuthService** | Token-Auth, Passwort-Hashing (SHA256) |
|
||||
| **ChatService** | Chat-Kontext aufbauen, History aus DB laden |
|
||||
| **AnthropicService** | Claude API: SSE Streaming + Non-Streaming |
|
||||
| **AnthropicService** | Claude API: SSE Streaming + Non-Streaming, passive Usage-Aktualisierung nach jedem Request |
|
||||
| **OpenAiService** | OpenAI-kompatible Provider (Nvidia, Pollinations, Gemini) mit Tool-Calling, Streaming, Modell-Caching |
|
||||
| **SseHelper** | Shared SSE-Utilities: WriteSseEvent, TryWriteSse, FinalizeChain, TruncateToolResult (static) |
|
||||
| **ToolService** | Tool-Definitionen + Ausführung (16 Tools) |
|
||||
| **ToolService** | Tool-Definitionen + Ausführung (17 Tools) |
|
||||
| **WorkspaceHelper** | Workspace-Pfad-Auflösung (relativ → absolut), Path-Traversal-Schutz (static) |
|
||||
| **SystemPromptBuilder** | System-Prompt aus modularen Blöcken zusammenbauen + Reminder-Generierung (static) |
|
||||
| **MemoryService** | Agent-Gedächtnis auf Dateisystem |
|
||||
@@ -143,6 +146,8 @@ User 1──* TelegramBot 1──* Session (via telegram_bot_id)
|
||||
| **EmbeddingBackgroundService** | Backfill bestehender Messages + Live-Embedding neuer Messages/Memory-Files |
|
||||
| **RemoteConnectionManager** | WebSocket-basierte Remote-Verbindungen, Command-Execution auf Remote-Clients |
|
||||
| **StreamingTracker** | Tracking aktiver Streams + CancellationTokenSource pro Session für Stop |
|
||||
| **KeyScannerService** | GitHub-Code-Search nach geleakten API-Keys (13 Sprachen, 24 Pfad-Extensions) |
|
||||
| **AnthropicKeyChecker** | Key-Validierung via Anthropic API, Usage-Header-Auswertung (Plan, 7d/5h Usage) |
|
||||
|
||||
---
|
||||
|
||||
@@ -176,13 +181,15 @@ User-Input → POST /api/chat (SSE)
|
||||
→ Chain + Messages in DB speichern
|
||||
```
|
||||
|
||||
**Passive Usage-Aktualisierung:** Nach jedem API-Request (Streaming, Sub-Agent, NonStreaming) werden die Response-Header ausgelesen und Plan/Usage des aktiven API-Keys in der DB aktualisiert – kein separater Check nötig.
|
||||
|
||||
**History-Optimierung:** Max 120 Messages. Ältere Chains nur Text-Messages (keine Tool-Calls). Letzte Chain vollständig. Tool-Results auf 20.000 Zeichen gekürzt. Attachments nur für letzte User-Message. System-Prompt-Reminder alle ~30 Messages.
|
||||
|
||||
**Rendering:** Markdown via marked.js + LaTeX via KaTeX (`$$...$$` Block, `$...$` Inline). Timestamps im Format `dd.MM.yyyy HH:mm:ss` on hover.
|
||||
|
||||
---
|
||||
|
||||
## Tool-System (13 Tools)
|
||||
## Tool-System (17 Tools)
|
||||
|
||||
| Tool | Funktion |
|
||||
|------|----------|
|
||||
@@ -237,7 +244,7 @@ User-Input → POST /api/chat (SSE)
|
||||
| Hash-Route | Page-Datei | Beschreibung |
|
||||
|------------|-----------|--------------|
|
||||
| `#/` | `dashboard.js` | Session-Übersicht |
|
||||
| `#/chat/{id}` | `chat-page.js` | Chat |
|
||||
| `#/chat/{id}` | `chat-page.js` | Chat (inkl. Usage-Badge-Overlay + Key-Switch-Modal) |
|
||||
| `#/session/{id}` | `session-page.js` | Session-Settings |
|
||||
| `#/agent/{id}` | `agent-page.js` | Agent-Editor |
|
||||
| `#/telegram-bot/{id}` | `telegram-bot-page.js` | Telegram-Bot-Editor |
|
||||
@@ -245,7 +252,7 @@ User-Input → POST /api/chat (SSE)
|
||||
| `#/profile` | `profile-page.js` | Profil |
|
||||
| `#/settings` | `settings-page.js` | Einstellungen |
|
||||
| `#/admin` | `admin-page.js` | Benutzerverwaltung (Admin) |
|
||||
| `#/api-keys` | `api-keys-page.js` | API-Key-Verwaltung (Admin) |
|
||||
| `#/api-keys` | `api-keys-page.js` | API-Key-Verwaltung + GitHub-Scanner (Admin) |
|
||||
| `#/server-settings` | `server-settings-page.js` | Servereinstellungen (Admin) |
|
||||
| `#/login` | `login-page.js` | Login |
|
||||
| `#/shared/{token}` | `shared-page.js` | Geteilte Nachricht (öffentlich, kein Auth) |
|
||||
|
||||
Reference in new issue
Block a user