gateway/IMAGE_ANALYSE_ANALYSIS.md
2025-10-26 23:09:26 +01:00

4.4 KiB

Image Analysis Code Flow Analysis

Zusammenfassung der Parameter und Handovers

1. Ablauf für Image-Analyse (durch Dokumentenverarbeitung)

Eingabe

  • methodAi.process() wird aufgerufen mit:
    • aiPrompt: Textanweisung für die Bildanalyse
    • documentList: Liste von Dokumenten (einschließlich Bilder)
    • resultType: Output-Format (optional, default: txt)

Verarbeitung

  1. mainServiceAi.pycallAiDocuments()

    • Delegiert an subCoreAi.callAiDocuments()
  2. subCoreAi.pycallAiDocuments()

    • Prüft, ob Dokumente vorhanden sind
    • Wenn ja: ruft documentProcessor.callAiText() auf
  3. subDocumentProcessing.pycallAiText()

    • Ruft processDocumentsPerChunk() auf
  4. subDocumentProcessing.py_processChunksWithMapping()

    • Analysiert jeden Chunk
    • Wichtig: Zeile 645-689 - Erkennung von Bildern
    • Prüft is_image Flag basierend auf:
      • document_mime_type (z.B. "image/jpeg")
      • part.mimeType
      • part.typeGroup == "image"
  5. subCoreAi.pyreadImage() (wird aufgerufen für Bildchunks)

    • Zeile 561-625
    • Setzt operationType = IMAGE_ANALYSE
    • Ruft aiObjects.callImage() auf mit:
      • prompt: Der Analyse-Prompt
      • imageData: Die Bilddaten (bytes oder base64)
      • mimeType: Z.B. "image/jpeg"
      • options: Mit operationType=IMAGE_ANALYSE

Ausgabe

  • Textanalyse des Bildes

2. Ablauf für direkte Image-Analyse

Eingabe

  • mainServiceAi.readImage() wird direkt aufgerufen mit:
    • prompt: Textanweisung
    • imageData: Bilddaten (bytes oder base64)
    • mimeType: Z.B. "image/jpeg"
    • options: Optional, wird auf IMAGE_ANALYSE gesetzt

Verarbeitung

  1. mainServiceAi.pyreadImage()

    • Delegiert an subCoreAi.readImage()
  2. subCoreAi.pyreadImage()

    • Setzt operationType = IMAGE_ANALYSE (Zeile 582)
    • Ruft aiObjects.callImage() auf

Ausgabe

  • Textanalyse des Bildes

Wo werden welche Funktionen genutzt?

mainServiceAi.py

readImage() (Zeile 96-105)

  • Verwendung: Wird direkt von außen aufgerufen (z.B. API)
  • Delegiert an: subCoreAi.readImage()
  • Verwendung: Wird verwendet

generateImage() (Zeile 108-118)

  • Verwendung: Wird direkt von außen aufgerufen (z.B. API)
  • Delegiert an: subCoreAi.generateImage()
  • Verwendung: Wird verwendet

subCoreAi.py

readImage() (Zeile 561-625)

  • Verwendung:
    1. Wird von mainServiceAi.readImage() aufgerufen
    2. Wird von subDocumentProcessing._processChunksWithMapping() aufgerufen (Zeile 670)
  • Verwendung: Wird verwendet

generateImage() (Zeile 628-660)

  • Verwendung: Wird von mainServiceAi.generateImage() aufgerufen
  • Verwendung: Wird verwendet

subDocumentProcessing.py

_processChunksWithMapping() (Zeile 594-994)

  • Bildanalyse: Zeile 645-689
    • Erkennt Bilder basierend auf MIME-Type und typeGroup
    • Ruft core_ai.readImage() auf
  • Verwendung: Wird verwendet

Parameter-Validierung

Alle Parameter korrekt

  1. operationType:

    • Wird immer auf IMAGE_ANALYSE gesetzt (subCoreAi Zeile 582)
    • Wird korrekt übergeben
  2. imageData:

    • Wird korrekt geladen und übergeben
    • Unterstützt bytes und base64
  3. mimeType:

    • Wird automatisch erkannt
    • Standard: "image/jpeg"
  4. prompt:

    • Wird korrekt übergeben
    • Kann von Benutzer angepasst werden

Handovers sind korrekt

mainServiceAi → subCoreAi

  • readImage() delegiert korrekt
  • generateImage() delegiert korrekt

subDocumentProcessing → subCoreAi

  • Erkennt Bilder korrekt (Zeile 645-689)
  • Ruft readImage() mit korrekten Parametern auf
  • Setzt operationType=IMAGE_ANALYSE

subCoreAi → aiObjects

  • Ruft callImage() mit korrekten Parametern auf
  • Setzt operationType=IMAGE_ANALYSE

Identifizierte Probleme

⚠️ Keine Probleme identifiziert

Die Parameter und Handovers sind alle korrekt:

  • Operation Type wird korrekt gesetzt
  • Bilddaten werden korrekt geladen und übergeben
  • MIME-Type wird korrekt erkannt
  • Prompt wird korrekt übergeben
  • Alle Delegierungen funktionieren korrekt

Test-Strategie

Der Test verwendet:

  1. Direkte Bildanalyse über mainServiceAi.readImage()
  2. Testet alle Modelle die IMAGE_ANALYSE unterstützen
  3. Validiert die Antworten auf Inhalt und Struktur