Skip to content

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 Textassistenz
  • aiImageRecognition: 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:

  • improve
  • complete
  • fix
  • summarize

API-Pfad:

ts
POST /ai/text

Payload:

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 erzeugen
  • BuildingModificationForm.vue: Bildbeschreibungen zu einer Beschreibung zusammenfassen
  • PopoverTextEditor.vue: AI-fähige Beschreibungstexte

Bilderkennung

app/composables/ai/useImageAI.ts stellt analyzeImage(blob, customPrompt?) bereit.

API-Pfad:

ts
POST /ai/analyze

Payload:

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 Uploads
  • OtherRemarksForm.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.