Files
claude-08-07/memory/project-08-07-ai-assistent.md
2026-07-09 09:22:00 +02:00

1.5 KiB

name, description, metadata
name description metadata
project-08-07-ai-assistent Natursprache-Assistent (frage_ai) — Text→SQL→Auto-Visualisierung über Claude; API-Key liegt in ~/.ssh
node_type type originSessionId
memory project 9605d7dd-3c40-4f92-b05f-540606518879

Tab „Fragen" in der App: Freitext-Frage → Rust-Command frage_ai schickt Frage + DB-Schema (aus sqlite_master) an die Claude-API (Modell claude-sonnet-5, thinking:disabled, max_tokens 1024) und lässt ein JSON zurückgeben: {sql, chart(kpi|bar|table), label, value, titel, erklaerung}. Rust prüft read-only (nur SELECT/WITH, kein ;, keine DDL/DML) via is_read_only, führt die SQL auf wuerth.db aus und gibt Spalten+Zeilen zurück. Frontend rendert kpi/bar/table + zeigt die erzeugte SQL. Siehe project-08-07-tech-stack.

API-Key: liegt nicht im Projekt/.env, sondern in ~/.ssh/anthropic_api_key (chmod 600, eine Zeile sk-ant-…). read_api_key() liest den Pfad, nimmt die erste sk-ant--Zeile. Getestet: gültig, API antwortet HTTP 200.

Kosten (Anthropic-API, separat vom Claude-Abo): Sonnet 5 ~0,01 $/Frage (Intro-Preis), Haiku 4.5 ~0,004 /Frage → 5 reichen für hunderte Fragen. Das Abo ist dafür nicht nutzbar; eigener Console-Key nötig.

Deps: reqwest (rustls-tls, blocking) in src-tauri/Cargo.toml; Command läuft über spawn_blocking.

End-to-End verifiziert: „Umsatz je Gewerk" → bar auf v_kunde_360; „Gesamtumsatz in Euro" → kpi 609.861 €. Prompt-Hinweis: Kunden-Anzeigename = name_roh (nicht name_1).