Přeskočit na hlavní obsah

Konfigurace metadat pro AI Parsing

Tato dokumentace popisuje systémovou konfiguraci metadat pro modul AI Parsing v EspoCRM. Tento modul umožňuje automatické zpracování a analýzu dat pomocí umělé inteligence, včetně extrakce informací z dokumentů a jejich mapování na entity v systému.

Přehled funkcionality

Modul AI Parsing rozšiřuje základní funkcionalitu EspoCRM o možnost:

  • Automatického parsování dokumentů a e-mailů pomocí externích služeb AI
  • Propojení parsovaných záznamů s existujícími entitami v systému
  • Správy stavů parsování (odesláno, přijato, zpracováno, chyba)
  • Vytváření akcí pro hromadné zpracování a reportování chyb

Jádrem této funkcionality je třída AiParsingDefs, která dynamicky upravuje metadata systému pro podporu AI parsování.

Závislosti a propojení

Modul spoléhá na:

  • Základní třídy EspoCRM: Využívá framework pro správu metadat a konfiguraci
  • Modul Autocrm: Dědí z AdditionalBuilderWithConfig a využívá utility jako ObjectUtil
  • Entita AiParsingRecord: Centrální entita pro sledování stavů parsování
  • Nástroj AiParsingTool: Poskytuje seznam entit podporujících AI parsování

Hlavní workflow

  • Inicializace metadat: Při startu systému se načte konfigurace z metadata.json
  • Dynamická modifikace: Třída AiParsingDefs upravuje metadata pro:
  • Všechny entity podporující AI parsování (získané přes AiParsingTool)
  • Speciální entity pro extrakci dat (extractors)
  • Vytvoření vazeb: Pro každou entitu se vytvoří:
  • Pole aiParsingRecords pro zobrazení souvisejících parsovacích záznamů
  • Vazby mezi entitou a AiParsingRecord
  • Akce pro hromadné zpracování a reportování chyb
  • Konfigurace rozhraní: Soubory jako layout.json upravují UI

Technické informace

Třída AiParsingDefs

Hlavní třída rozšiřující AdditionalBuilderWithConfig s klíčovými metodami:

build(stdClass $data): void

  • Parametr: $data - Objekt metadat systému k modifikaci
  • Logika:
  • Získá seznam entit podporujících AI parsování (getAiParsableEntityTypeList())
  • Pro každou entitu:
  • Vytvoří pole aiParsingRecords typu linkMultiple
  • Nastaví vazbu hasMany k AiParsingRecord
  • Přidá reverzní vazbu v AiParsingRecord
  • Přidá dynamickou logiku pro zobrazení
  • Přidá akce reportParsingError
  • Pro extraktory (z getExtractors()):
  • Podobná konfigurace jako výše
  • Navíc přidá akci createExtractionRequest

addAction(stdClass $data, string $entityType, string $actionName, string $actionLabel, string $actionHandler): void

  • Parametry:
  • $data: Metadata objekt
  • $entityType: Cílová entita
  • $actionName: Technický název akce
  • $actionLabel: Popisek pro UI
  • $actionHandler: Cesta k handleru
  • Efekt: Přidá akci do massActionList a detailActionList entity

Konfigurační soubory

  • metadata.json: Registruje AiParsingDefs jako builder metadat
  • layout.json: Přidává záložku do nastavení
  • Document.json: Přidává pole aiExtractorEntityType pro dokumenty
  • routes.json: Definuje API endpointy pro parsování

Utility

  • ObjectUtil: Pomocné metody pro práci s nested objekty
  • AiParsingTool: Poskytuje konfiguraci parsovatelných entit

Entity

  • AiParsingRecord: Sleduje stav parsování s metodami jako markAsParsed(), markAsFailed()