API pro extrakci položek faktur
Tato API slouží k extrakci a zpracování položek faktur z příloh. Nabízí různé endpointy pro jednotlivé i hromadné zpracování faktur, včetně callbacků pro asynchronní zpracování.
Technické informace
Hlavní komponenty
ExtractItems: Hlavní služba pro extrakci položek faktur. Komunikuje s externím AI servisem pro zpracování příloh.ExtractItemsCallback: Callback endpointy pro zpracování výsledků z AI servisu.MassExtractItems: Endpoint pro hromadné zpracování faktur.
Klíčové třídy
SupplierInvoiceExtractor: Obsahuje logiku pro nahrávání faktur a komunikaci s AI servisem.ExtractItemsCallback: Zpracovává výsledky z AI servisu a aktualizuje databázi.SupplierInvoice: Entita reprezentující fakturu dodavatele.AttachmentParsedData: Entita pro uložení extrahovaných dat z příloh.
Metody a parametry
extractItemsSupplierInvoice: Extrahuje položky z faktury dodavatele. ParametrSupplierInvoiceje volitelný.extractItemsAttachmentParsedData: Extrahuje položky z dat extrahovaných z přílohy. ParametrAttachmentParsedDataje volitelný.uploadInvoices: Nahrává přílohy na AI servis. Vrací výsledek operace.
Konfigurace
AiInvoiceParsingintegrace: Musí být nakonfigurována v EspoCRM s URL a tokenem pro přístup k AI servisu.
Bezpečnost
- Tokeny: Pro každou extrakci je generován unikátní token, který je ověřován při callbacku.
- WebSocket notifikace: Uživatelé jsou informováni o dokončení extrakce přes WebSocket.
Logování
- Všechny operace jsou podrobně logovány pro účely ladění a auditování.
Použití
- Iniciace extrakce: Voláním endpointu
/SupplierInvoice/:id/extractItemsnebo/AttachmentParsedData/extractItems. - Asynchronní zpracování: AI servis zpracuje přílohy a zavolá callback URL.
- Aktualizace dat: Callback aktualizuje příslušné entity v databázi.
- Notifikace: Uživatelé jsou informováni o dokončení operace.
Chybové stavy
- 400 Bad Request: Chybějící nebo neplatné parametry.
- 500 Internal Server Error: Chyba při komunikaci s AI servisem nebo při aktualizaci databáze.
Příklady
Extrakce položek z faktury
$extractor->extractItemsSupplierInvoice($supplierInvoice);
Callback zpracování
$callback->process($request);