Přeskočit na hlavní obsah

Přehled jádra parsování faktur

Tato část systému poskytuje základní funkcionalitu pro zpracování faktur pomocí umělé inteligence. Je navržena jako modulární systém, který umožňuje snadné rozšíření o nové typy faktur a jejich specifické zpracování.

Hlavní funkce

  • Automatické parsování faktur: Systém dokáže automaticky extrahovat data z faktur a převádět je do strukturovaného formátu.
  • Modulární architektura: Podporuje různé typy faktur prostřednictvím poskytovatelů (providers), které lze snadno přidávat.
  • Integrace s EspoCRM: Data z faktur jsou automaticky ukládána do systému EspoCRM jako entity.
  • Konfigurovatelné unikátní pole: Umožňuje definovat, která pole jsou klíčová pro identifikaci duplicitních záznamů.

Závislosti

  • EspoCRM Core: Využívá základní funkce EspoCRM jako je správa entit, konfigurace a metadata.
  • InjectableFactory: Pro dynamické vytváření instancí poskytovatelů.
  • Metadata systém: Pro získávání konfigurace poskytovatelů.

Pracovní postup

  • Získání dat: Data faktury jsou načtena z entity AiParsingRecord.
  • Výběr poskytovatele: Na základě typu entity je vybrán příslušný poskytovatel pomocí ProviderFactory.
  • Zpracování dat: Poskytovatel extrahuje a transformuje data do strukturovaného formátu.
  • Uložení výsledků: Data jsou uložena zpět do entity AiParsingRecord a označena jako dokončená.

Technické informace

Třídy a rozhraní

  • ProviderFactoryAware: Rozhraní pro třídy, které vyžadují přístup k ProviderFactory.
  • ProviderFactorySetter: Trait pro snadné nastavení ProviderFactory.
  • AbstractProvider: Abstraktní základní třída pro všechny poskytovatele parsování.
  • ProviderFactory: Tovární třída pro vytváření instancí poskytovatelů.

Klíčové metody

  • AbstractProvider::__construct: Inicializuje poskytovatele a načte výchozí unikátní pole z konfigurace.
  • AbstractProvider::process: Abstraktní metoda pro vlastní zpracování dat.
  • AbstractProvider::applyParsedData: Uloží zpracovaná data a označí záznam jako dokončený.
  • ProviderFactory::create: Vytvoří instanci poskytovatele na základě typu entity.

Konfigurace

Unikátní pole pro každý typ entity lze konfigurovat v nastavení EspoCRM pod klíčem aiParsingAlwaysUseDefaultOrGroupFields.

Výjimky

  • BadRequest: Vyvolána, když není nalezen poskytovatel pro daný typ entity.
  • LogicException: Vyvolána při chybě v datech nebo konfiguraci.