feat: auto-narasi LLM (OmniRoute sonnet-5) — hero briefing + narasi_awam report, migrasi 0006
CI / go test + web typecheck (push) Canceled after 0s
CI / build + deploy (Nix) — flowsight (push) Canceled after 0s

This commit is contained in:
asepharyana
2026-09-15 19:50:48 +07:00
parent 390133663a
commit 9fa47240dc
9 changed files with 86 additions and 12 deletions
@@ -0,0 +1,4 @@
-- FlowSight schema v6: cached LLM narration for briefings.
-- narasi = 3 kalimat santai Indonesia hasil poles LLM (OmniRoute),
-- best-effort: kosong berarti FE pakai ringkasan rules.
ALTER TABLE briefings ADD COLUMN narasi TEXT NOT NULL DEFAULT '';
+13 -5
View File
@@ -637,11 +637,19 @@ func (db *DB) SaveBriefing(date, payload, cites string) error {
return err
}
// LatestBriefing returns the newest briefing.
func (db *DB) LatestBriefing() (date, payload, cites string, err error) {
err = db.QueryRow(`SELECT date, payload_json, citations_json FROM briefings
ORDER BY date DESC LIMIT 1`).Scan(&date, &payload, &cites)
return date, payload, cites, err
// SaveNarasi caches the LLM-polished narration for a briefing date
// (best-effort; empty string clears it).
func (db *DB) SaveNarasi(date, narasi string) error {
_, err := db.Exec(`UPDATE briefings SET narasi=? WHERE date=?`, narasi, date)
return err
}
// LatestBriefing returns the newest briefing (plus cached narration).
func (db *DB) LatestBriefing() (date, payload, cites, narasi string, err error) {
err = db.QueryRow(`SELECT date, payload_json, citations_json,
COALESCE(narasi,'') FROM briefings
ORDER BY date DESC LIMIT 1`).Scan(&date, &payload, &cites, &narasi)
return date, payload, cites, narasi, err
}
// Accuracy ledger.