Appearance
AI-Helfer
Die App enthält optionale AI-Helfer für Text und Bilder. Sie sind runtime-gesteuert und bleiben deaktivierbar, ohne die normalen Erfassungsflows zu blockieren.
Runtime-Flags
Die Flags liegen in runtimeConfig.public:
aiTextAssistant: aktiviert TextassistenzaiImageRecognition: aktiviert Bilderkennung
Beide Helfer prüfen zusätzlich den Online-Status über VueUse. Offline geben sie kontrollierte Fehler zurück und starten keinen Request.
Textassistenz
app/composables/ai/useTextAI.ts stellt processText(text, mode) bereit.
Unterstützte Modi:
improvecompletefixsummarize
API-Pfad:
ts
POST /ai/textPayload:
ts
{
text,
mode
}IVMTextarea.vue nutzt die Textassistenz direkt. Wenn global aktiviert, lokal erlaubt und online, erscheint ein Sparkles-Button. Der aktuelle Text wird vor der Änderung zwischengespeichert, damit die Änderung über den Undo-Button zurückgenommen werden kann.
Weitere produktive Nutzungen:
RoomForm.vue: Zusammenfassung aus Raumdetails erzeugenBuildingModificationForm.vue: Bildbeschreibungen zu einer Beschreibung zusammenfassenPopoverTextEditor.vue: AI-fähige Beschreibungstexte
Bilderkennung
app/composables/ai/useImageAI.ts stellt analyzeImage(blob, customPrompt?) bereit.
API-Pfad:
ts
POST /ai/analyzePayload:
ts
{
image: '<base64 ohne data-url-prefix>',
prompt
}Der Blob wird clientseitig in Base64 konvertiert. Die Antwort liefert eine Beschreibung oder einen Fehler.
Produktive Nutzungen:
ImageUploadPanel: Bildbeschreibungsvorschläge für UploadsOtherRemarksForm.vue: Handschrift aus dem Bemerkungs-Canvas transkribieren
Upload-Integration
useImageUploadPanelController.ts verbindet Bilderkennung mit dem Upload-Panel.
Wenn eine Bildanalyse erfolgreich ist:
- wird der Vorschlag in
aiProposals[image.id]abgelegt - das Beschreibungs-Popover für dieses Bild geöffnet
- die Nutzerin kann den Vorschlag speichern oder verwerfen
Der AI-Text wird nicht automatisch persistiert. Erst handleSaveDescription(...) schreibt die Beschreibung über setDescription(...) in den Bilddatensatz.
Fehler- und Zustandsmodell
Beide AI-Composables geben strukturierte Ergebnisse zurück:
ts
{
success: boolean,
result?: string,
description?: string,
error?: string
}Die UI bleibt dadurch verantwortlich für Toasts, Badges, Popovers und Deaktivierung. Die Composables selbst kapseln nur Flag-Prüfung, Online-Prüfung, Request und Logging.