AI Assist Modul — Von der Idee zum Feature in 47 Minuten
Ein vollständiges AI-Chat-Modul, das Fragen zu Firmendaten in natürlicher Sprache beantwortet — von der Planung bis zum funktionierenden Feature in unter 1 Stunde Netto-Arbeitszeit.
Was entstanden ist
- Azure Function Endpoint (
POST /ai-assist/ask) AiAssistServicemit Claude API Integration (Tool-Loop, Retry-Logik, Token-Budgetierung)ToolExecutormit 13 Tools (Lieferungen, Rechnungen, Gutschriften, Firmen, Kontakte, Dashboard, etc.)- Modul-Registrierung + Dependency Injection
- Chat-UI mit Markdown-Rendering für AI-Antworten
- Datenschutz-Infobox mit Anthropic Privacy-Hinweisen
- Kopierbare Fehlermeldungen, Loading-States, Auto-Scroll
Phasen-Verlauf
Discovery & Planung
~6 MinMVP besprochen, Architektur entschieden (Name, Strategie, Modell)
Implementation
~17 Min10 neue Dateien, komplettes Full-Stack Feature
Bug-Fixing
~5 MinModul-Registrierung, Property-Fehler, JSON-Serialisierung
Test & Erweiterung
~7 Min4 → 13 Tools, Haiku 4.5, Paginierung, Company-Count
Feinschliff
~5 MinPrivacy-Box, Rate-Limiting, kopierbare Fehler
Optimierung
~7 Min50K Token-Budget, History-Trimming, Markdown-Rendering
Gelöste Probleme unterwegs
Modul nicht sichtbar
Registrierung in zwei Modules.cs nötig (Core + CTW)
Leere Sprechblase
WriteAsJsonAsync (PascalCase) vs WriteJsonAsync (camelCase)
"50 Kunden"
.Take(50) ohne Gesamtanzahl → Count + Paginierung hinzugefügt
Rate-Limiting (429)
Retry-Logik mit exponentiellem Backoff
Zu viele Input-Tokens
Token-Budgetierung (50K), History-Trimming, Datenreduktion
Unformatierte Antworten
flutter_markdown Package integriert
Architektur-Entscheidungen
13 Tools im ToolExecutor
get_deliveries_summaryLieferungen (Waschvorgänge)get_invoices_summaryRechnungsübersichtget_invoice_detailEinzelne Rechnungget_invoice_runsRechnungsläufeget_credit_notesGutschriftenget_number_rangesNummernkreiseget_companiesFirmen/Kundenget_contactsKontaktpersonenget_company_deliveriesFirmen-Lieferungenget_company_analyticsUmsatzstatistikenget_dashboard_analyticsDashboard-Übersichtget_locationsWaschstandorteget_operating_companiesBetreibergesellschaftenErstellte & geänderte Dateien
Common/ApiRouting.csRoute-KonstantenAiAssist/Services/AiAssistService.csClaude API mit Tool-LoopAiAssist/Services/ToolExecutor.cs13 Tools für Datenabfragenai_assist/pages/chat_page.dartChat-UI mit MarkdownAlle 15 Dateien anzeigen
◆ Backend (.NET)
Common/ApiRouting.csRoute-KonstantenAiAssist/Models/AiAssistModels.csRequest/Response DTOsAiAssist/Services/AiAssistService.csClaude API mit Tool-LoopAiAssist/Services/ToolExecutor.cs13 Tools für DatenabfragenAiAssist/ServiceBuilder.csDI-RegistrierungAiAssist/AiAssistFunctions.csAzure Function EndpointModules.csModul-Definition (2x)◆ Frontend (Flutter)
models/ai_assist.dartFreezed Modelsapis/ai_assist_api.dartAPI Clientapis/routing.dartRoutencore_client.dartClient-Accessorai_assist/pages/chat_page.dartChat-UI mit Markdownai_assist/menu_builder.dartMenü-Eintragai_assist/routing.dartGoRouter Routemodules/modules.dartModul-RegistrierungFazit
Ein komplettes Full-Stack Feature — Backend mit Azure Functions und Claude API Integration, Frontend mit Flutter Chat-UI — in 47 Minuten Netto-Arbeitszeit. 10 neue Dateien, 8 geänderte, 13 Tools, 6 gelöste Probleme. Das ist AI-First Development in der Praxis.