wiki/c-work/0-ideas/2026-03-pm-web-image-search.md
2026-04-21 23:49:43 +02:00

3.7 KiB

Web Image Search -- WEB_SEARCH_MEDIA Operation Type

Beschreibung und Kontext

PowerOn unterstützt Web-Suche über den Tavily-Connector (WEB_SEARCH_DATA). Es fehlt eine dedizierte Bildersuche. Ziel ist ein neuer OperationType WEB_SEARCH_MEDIA mit Google Custom Search Connector, damit der AI Agent Bilder suchen und als ActionDocuments zurückgeben kann.

Business-Treiber: Mandanten benötigen Bildmaterial (z.B. für Immobilien-Exposés, Marketing-Content) direkt im AI Workspace.

Risiko bei Nicht-Umsetzung: Manuelle Bildersuche ausserhalb der Plattform, kein automatisierter Image-Workflow.

Fokus und kritische Details

  • Google Custom Search API erfordert API Key + Search Engine ID mit aktivierter Image Search
  • Model-Selection muss WEB_SEARCH_MEDIA korrekt zum Google-Connector routen
  • Rückgabeformat: JSON-Array mit Image-URLs, konsistent mit Tavily-Format
  • Rate Limiting der Google API (100 queries/Tag im Free Tier)

Ziel und Nicht-Ziele

  • Ziel: WEB_SEARCH_MEDIA OperationType in OperationTypeEnum
  • Ziel: Google Custom Search Connector (aicorePluginGoogle.py)
  • Ziel: AiCallPromptWebSearchMedia Pydantic Model
  • Ziel: ai.searchImages Action in methodAi
  • Explizit NICHT: Video-Suche, Tavily-Erweiterung, SharePoint-Integration

Betroffene Module

  • Gateway: modules/datamodels/datamodelAi.py, modules/aicore/aicorePluginGoogle.py (NEU), modules/services/serviceAi/mainServiceAi.py, modules/workflows/methods/methodAi/
  • Frontend: keine (Agent nutzt Action intern)
  • DB-Migration: nein
  • Andere: Google Cloud Console Setup (API Key)

Entscheidungen

Datum Entscheidung Begründung
2026-03-01 Google Custom Search statt Tavily Tavily unterstützt keine Bildersuche
2026-03-01 Eigener Connector statt Tavily-Erweiterung Saubere Trennung, unabhängige Skalierung

Umsetzungs-Checkliste

  • WEB_SEARCH_MEDIA in OperationTypeEnum hinzufügen
  • AiCallPromptWebSearchMedia Model erstellen
  • aicorePluginGoogle.py Connector implementieren
  • Connector in Discovery registrieren
  • mainServiceAi.py für WEB_SEARCH_MEDIA erweitern
  • searchImages Action erstellen
  • Action in methodAi.py registrieren
  • RBAC / Permissions: nicht betroffen (nutzt bestehende AI-Berechtigung)
  • Neutralisierung betroffen? nein
  • Navigation / Routing: nicht betroffen
  • Billing-Impact? prüfen (API-Kosten pro Query)

Akzeptanzkriterien

# Kriterium (Given-When-Then) Prio
1 Given ein AI Agent mit searchImages Tool, When der User "Suche Bilder von Zürich" eingibt, Then gibt der Agent eine Liste von Bild-URLs zurück must
2 Given kein Google API Key konfiguriert, When WEB_SEARCH_MEDIA aufgerufen wird, Then wird ein klarer Fehler zurückgegeben must
3 Given maxResults=5 und imageType=photo, When die Suche ausgeführt wird, Then werden max. 5 Fotos zurückgegeben should

Testplan

ID AC Art Automatisiert Repo-Pfad Status
T1 1 integration ja gateway/tests/test_google_connector.py pending
T2 2 unit ja gateway/tests/test_google_connector.py pending
T3 3 api ja gateway/tests/test_search_images_action.py pending

Abschluss

  • b-reference/gateway/ai-agent.md aktualisiert (neuer OperationType)
  • TOPICS.md aktualisiert (falls neues Thema)
  • Dieses Dokument → z-archive/ verschoben