Admin: KI-Anfragen nach Quelle aufschlüsseln (cloud/local/luna)
- ki_daily_calls: PK auf (user_id, date, source) erweitert + Index; Migration baut Tabelle mit neuer Struktur neu auf, behält Altdaten als 'cloud' - ki.py: return_source=True-Parameter gibt (text, 'cloud'|'local') zurück - training.py: ki_source aus ki.complete() auslesen, in DB speichern - social.py: _ki_complete_tracked() zählt Luna-Anfragen mit source='luna'; alle Content-Endpoints (generate, evaluate, training-tip, breed-of-day, pflege-tipp) nutzen tracking-Variante - admin.py: Stats aufgeteilt in ki_cloud/ki_local/ki_luna je heute+Monat - admin.js: KI-Karte zeigt 9 Zeilen mit ☁️ Claude / 🖥️ LM Studio / 🌙 Luna - SW by-v359, APP_VER 344
This commit is contained in:
parent
74b6c03bb3
commit
8d5c7a19b1
6 changed files with 136 additions and 33 deletions
|
|
@ -530,6 +530,8 @@ def _migrate(conn_factory):
|
|||
("social_content", "exercise_id", "TEXT"),
|
||||
("social_content", "post_url", "TEXT"),
|
||||
("dogs", "rasse_id", "INTEGER"),
|
||||
# Pflege: Schere vs. Trimmen unterscheiden
|
||||
("pflege_tipps", "fell_pflege_art", "TEXT"),
|
||||
]
|
||||
with conn_factory() as conn:
|
||||
for table, column, col_type in migrations:
|
||||
|
|
@ -1108,3 +1110,22 @@ def _migrate(conn_factory):
|
|||
except Exception:
|
||||
pass
|
||||
logger.info("Migration: routes.is_valid bereit.")
|
||||
|
||||
# ki_daily_calls: source-Spalte + PK auf (user_id, date, source) erweitern
|
||||
ki_cols = {r[1] for r in conn.execute("PRAGMA table_info(ki_daily_calls)").fetchall()}
|
||||
if "source" not in ki_cols:
|
||||
conn.executescript("""
|
||||
ALTER TABLE ki_daily_calls RENAME TO ki_daily_calls_old;
|
||||
CREATE TABLE ki_daily_calls (
|
||||
user_id INTEGER NOT NULL,
|
||||
date TEXT NOT NULL,
|
||||
count INTEGER NOT NULL DEFAULT 0,
|
||||
source TEXT NOT NULL DEFAULT 'cloud',
|
||||
PRIMARY KEY (user_id, date, source)
|
||||
);
|
||||
INSERT INTO ki_daily_calls (user_id, date, count, source)
|
||||
SELECT user_id, date, count, 'cloud' FROM ki_daily_calls_old;
|
||||
DROP TABLE ki_daily_calls_old;
|
||||
CREATE INDEX IF NOT EXISTS idx_ki_daily_source ON ki_daily_calls(date, source);
|
||||
""")
|
||||
logger.info("Migration: ki_daily_calls.source bereit.")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue