82edded30c
Incorporated feedback from 4 reviewers: - 徐聪: AES key management, emergency channel, concurrency control, DDL indexes - 陆怀瑾: P0 phase, schedule buffer, deployment topology, V1 compat checklist - 严维序: SQLite backup, monitoring, cooldown persistence, port plan, rollback - 沈路明: queue design, health check, per-model RPM decision, key validation, dashboard panels Key additions: + Queue flow control design (FIFO + priority, capacity 500, REJECT overflow) + Provider health check (active probe + passive stats hybrid) + Per-model RPM decision (Provider-level V2, Model-level V3) + Key validation on add (test call with error feedback) + AES key management (SIDECAR_ENCRYPTION_KEY env var, backup SOP) + Emergency channel (10% RPM during full cooldown) + SQLite backup strategy (cron .backup, 7-day retention) + SQLite monitoring Prometheus metrics (db_size, wal_size, integrity) + Full DDL with indexes (ON CONFLICT, BEGIN IMMEDIATE patterns) + Dashboard panel list (5 panels: status, trends, history) + V1 compatibility checklist (13 items) + V1->V2 migration SOP with rollback plan + Deployment topology (systemd + Docker, port plan, firewall) + Log aggregation policy (logrotate: 10MB/30days) + Schedule revised: 71h/12days (added P0 + buffer) Co-authored-by: multica-agent <github@multica.ai>
71 lines
1.5 KiB
Plaintext
71 lines
1.5 KiB
Plaintext
erDiagram
|
|
providers ||--o{ provider_usage_logs : has
|
|
providers ||--o{ cooldown_events : triggers
|
|
providers ||--o| provider_health : monitors
|
|
|
|
providers {
|
|
string id PK
|
|
string name
|
|
string api_key
|
|
string endpoint_url
|
|
string model_prefix
|
|
string pool
|
|
string status
|
|
string source
|
|
int rpm_limit
|
|
int tpm_limit
|
|
float weight
|
|
float cost_per_1k
|
|
string cooldown_until
|
|
string metadata
|
|
}
|
|
|
|
provider_usage_logs {
|
|
string id PK
|
|
string provider_id FK
|
|
string model
|
|
int prompt_tokens
|
|
int completion_tokens
|
|
int total_tokens
|
|
float cost
|
|
int request_count
|
|
int error_count
|
|
int avg_latency_ms
|
|
string hour_bucket
|
|
}
|
|
|
|
cooldown_events {
|
|
string id PK
|
|
string provider_id FK
|
|
int consecutive_count
|
|
int cooldown_seconds
|
|
string response_summary
|
|
string started_at
|
|
string ended_at
|
|
}
|
|
|
|
provider_health {
|
|
string provider_id PK
|
|
string state
|
|
int last_latency_ms
|
|
int last_status_code
|
|
float success_rate_5m
|
|
int consecutive_failures
|
|
}
|
|
|
|
daily_stats {
|
|
string id PK
|
|
string date
|
|
string pool
|
|
int total_requests
|
|
int total_errors
|
|
int total_tokens
|
|
float total_cost
|
|
int unique_providers
|
|
}
|
|
|
|
system_config {
|
|
string key PK
|
|
string value
|
|
string description
|
|
} |