MyÚčto.cz Manuál
Stáhnout PDF Příručky Zpět na hlavní stránku

25. AI extrakce faktur

Návod, jak nastavit AI poskytovatele a nechat z PDF vytěžit přijaté i vydané faktury, a jak vytěžené doklady zkontrolovat, než je zaúčtujete. Pro každého, kdo nechce přepisovat faktury ručně. Nastavení poskytovatele dělá administrátor.

25.1 Kdy to potřebujete

Přijaté i vydané faktury lze importovat z PDF pomocí AI extrakce. Extrakci provádí jeden z pěti podporovaných poskytovatelů AI (Anthropic Claude, Azure OpenAI, OpenAI, Google Gemini nebo Ollama lokální). Volbu a přihlašovací údaje nastavíte podle § 25.3.

KdyCo udělatKde v aplikaci
jednou při zavedeníNastavit poskytovatele AI a vyzkoušet připojeníFirma → AI nastavení, postup v § 25.3
průběžněNahrát PDF přijatých fakturNákup → AI import, postup v § 25.4
po každém importuZkontrolovat doklady s hlášenímokno Kontrola vytěžených dokladů, postup v § 25.5
podle potřebyNahrát PDF vydaných faktur jako konceptyProdej → AI import, postup v § 25.6

25.2 Než začnete

25.3 Krok za krokem: nastavit poskytovatele AI

  1. Otevřete Firma → AI nastavení. Pokud AI ještě není nastavená, je sekce Nastavení AI extrakční brány rozbalená.
  2. Vyberte poskytovatele v přepínači s pěti tlačítky: Anthropic, Azure OpenAI, OpenAI, Gemini nebo Ollama. Kliknutí jen přepne, jaké přihlašovací údaje se dole upravují, neuloží to ještě aktivní volbu.
  3. Ve formuláři Přihlašovací údaje vyplňte API klíč a volitelně Model. U Azure OpenAI vyplňte navíc Azure endpoint, Deployment a API verzi. U Ollamy vyplňte adresu (viz § 25.7).
  4. Klikněte na Test připojení. Aplikace klíč a endpoint ověří reálným voláním a ukáže, jaký model odpověděl, nebo chybu.
  5. Pokud potřebujete data jen v EU, zaškrtněte Vynutit EU rezidenci dat (viz § 25.9.14).
  6. Klikněte na Uložit nastavení brány. Teprve tím se aktivní poskytovatel a EU volba zapíší k firmě.

Jak poznáte, že je hotovo: u poskytovatele je štítek aktivní a nahoře zůstane zelená značka s jeho jménem (případně štítek EU data residency). Zvolený poskytovatel bez klíče má místo toho štítek bez klíče a extrakce zatím neběží.

Tip

Nejste si jistí, kterého poskytovatele zvolit? Anthropic Claude je výchozí a nejodladěnější volba (nativní čtení PDF, nejlepší přesnost na komplexních fakturách). Azure OpenAI zvolte, pokud firma potřebuje EU rezidenci dat se smluvním zajištěním nebo už Azure OpenAI používá pro jiné účely.

Volitelné kroky:

25.4 Krok za krokem: importovat přijaté faktury z PDF

  1. Otevřete Nákup → AI import.
  2. Vyberte nebo přetáhněte jeden nebo více souborů (PDF, obrázek). Při více souborech vznikne dávka, která se zpracuje postupně po jednom.
  3. Počkejte na zpracování. U každého souboru uvidíte stav, dodavatele, částku a typ dokladu.
  4. Případně změňte Typ dokladu přímo v tabulce (například účtenku placenou kartou, kterou AI zařadila jako *Účtenka / paragon*, chcete vést jako *Faktura*).
  5. Klikněte na Otevřít u vytvořeného konceptu, nebo na Zobrazit v přijatých fakturách (seznam vyfiltrovaný na tuto dávku).

Jak poznáte, že je hotovo: u každého souboru je odkaz Otevřít na koncept přijaté faktury. Nahoře na stránce vidíte poslední import (datum a počet dokladů). Starší importy najdete v seznamu přijatých faktur ve filtru Import (dávka).

Po importu se otevře okno kontroly (viz § 25.5). Doklad, na kterém je napsáno „zaplaceno", se zakládá jako koncept, aby šel po vytěžení volně upravit. Hlášení na to upozorní a tlačítko Potvrdit a označit jako uhrazenou doklad přijme a uhradí k datu vystavení. Výjimkou je účtenka zaplacená kartou, když má firma zapnuté vypořádání plateb kartou: při importu pracovníkem se hned uhradí, spáruje s pohybem karty a zaúčtuje.

Klientský import vytváří nové doklady vždy jako koncepty v právě vybrané firmě, i u zaplacených účtenek. Klient zkontroluje údaje a na detailu použije Označit jako přijaté, stejně jako u ručního zadání. Vyžaduje-li firma schválení, doklad nejprve projde schvalováním. Koncept se do souhrnu nákladů nezapočítává; přijatý doklad se zahrne podle stejných pravidel jako ručně zadaná faktura. Doklad jiné firmy se při klientském importu automaticky nepřesouvá.

Pokud brána ještě není vůbec nakonfigurovaná a pokusíte se o AI import v Import přijatých, zobrazí se upozornění s odkazem na AI nastavení.

25.5 Krok za krokem: zkontrolovat vytěžené doklady

Po AI importu se otevře okno Kontrola vytěžených dokladů. Prochází doklady jeden po druhém a ukáže jen ty, které kontrolu potřebují: mají hlášení z vytěžení, nebo jim chybí dimenze povinná podle pravidel dimenzí (bez ní by doklad nešel zaúčtovat). Když takový doklad není, okno jen oznámí, že není co kontrolovat.

  1. Nahoře zkontrolujte dodavatele, číslo dokladu, datum, stav a částku. Odkaz Otevřít doklad otevře editor.
  2. Projděte ostatní části hlášení (reverse charge, nesouhlasící součty apod.). U každé, kterou jste ověřili, klikněte na Vyřešeno.
  3. U druhu nákladu po položkách zkontrolujte položky orámované červeně (AI navrhuje druh, ale zatím není zvolený). Návrh převezmete tlačítkem Použít, všechny najednou tlačítkem Použít návrhy AI.
  4. Má-li firma zapnuté dimenze, zkontrolujte sekci Dimenze dokladu nad položkami. Chybí-li povinná dimenze, je sekce orámovaná červeně a řekne, na kterém účtu ji pravidlo vyžaduje. Jinou dimenzi pro jednotlivou položku nastavíte štítkem u řádku.
  5. Klikněte na Uložit a další (u posledního dokladu Uložit a dokončit). Tlačítko Přeskočit nechá doklad beze změny.

Jak poznáte, že je hotovo: upozornění z detailu dokladu zmizelo a doklad přestal být „ke kontrole".

Uložením potvrzujete, že jste doklad zkontrolovali, takže body hlášení zobrazené v okně se vyřídí. Zůstanou jen návrhy druhu nákladu u řádků, kterým druh nevyberete. Dimenze, včetně převzatého návrhu, se uloží přímo do dokladu. Přeskočit návrh dimenzí neuloží.

Okno se otevírá:

V editoru faktury jsou tytéž položky orámované červeně a návrh AI je u výběru druhu nákladu s tlačítkem Použít.

25.6 Krok za krokem: importovat vydané faktury z PDF

  1. Otevřete Prodej → AI import. Položku vidí uživatel, který smí vytvářet vydané faktury.
  2. Přetáhněte PDF, obrázek, ISDOC nebo ISDOCX. Při přetažení více souborů vznikne dávka, zpracuje se postupně po jednom. Pro jednotlivý import i dávku lze dočasně vybrat jiný model z whitelistu aktivního poskytovatele.
  3. Po úspěchu klikněte na odkaz do editoru.
  4. Ověřte odběratele, typ dokladu, DUZP, splatnost, režim cen s/bez DPH, sazby a text položek.

Jak poznáte, že je hotovo: u každého souboru je výsledek a odkaz na vytvořený koncept vydané faktury. Import sám fakturu nevystaví, neodešle a nezaúčtuje.

Podrobnosti o chování importu jsou v § 25.9.19.

25.7 Krok za krokem: použít lokální model přes Ollamu

Tento postup je pro správce. Místo cloudového poskytovatele může vytěžování i AI návrhy kontací běžet na vlastním stroji přes Ollamu. Doklady pak neopouštějí vaši infrastrukturu.

  1. Nainstalujte Ollamu na stroj s grafickou kartou (doporučeno) nebo na server MyÚčta.
  2. Stáhněte model, který umí číst obrázky (v knihovně Ollamy má označení *vision*), příkazem ollama pull <název modelu>. Seznam modelů ukáže ollama list.
  3. Aby byla Ollama dostupná z Docker kontejneru nebo ze sítě (nikoli jen z localhost), spusťte ji s OLLAMA_HOST=0.0.0.0.
  4. V Firma → AI nastavení v sekci Nastavení AI extrakční brány vyberte Ollama (lokální) a zadejte adresu podle tabulky:
Kde běží MyÚčtoAdresa Ollamy
Docker, Ollama na stejném stroji (Windows, macOS)http://host.docker.internal:11434
Docker na Linuxuhttp://host.docker.internal:11434 a ve službě aplikace extra_hosts: ["host.docker.internal:host-gateway"]
Přímo na serveru (IIS, Apache)http://localhost:11434
Ollama na jiném stroji v sítihttp://192.168.x.y:11434
  1. Klikněte na Načíst modely a vyberte model. Štítek *čte obrázky* označuje modely, které vytěží i skeny a fotky, model bez něj zpracuje jen PDF s textovou vrstvou.
  2. Uložte nastavení. Po uložení proběhne test spojení.

Název hostu s podtržítkem (gpu_server.lan) adresa nepřijme, zadejte IP adresu nebo název bez znaku _. API klíč vyplňte, jen pokud je Ollama za reverse proxy s autentizací. Při změně adresy se uložený klíč smaže.

Jak poznáte, že je hotovo: test spojení uspěl a pokusný import jedné faktury doběhl. Rychlost, limity a bezpečnostní pravidla jsou v § 25.9.18.

25.8 Když něco nejde

Co vidítePročCo udělat
Faktura má žluté zvýraznění a ikonu varování, filtr Ke kontrole ji ukážeSoučet řádků se liší od základu daně z PDF o víc než 2 %Otevřete doklad, ověřte řádky proti PDF a hlášení vyřešte (viz § 25.9.2)
Tlačítko poskytovatele je neaktivní a pod přepínačem je červené upozornění o nepodporované EU rezidenciZapnuté Vynutit EU rezidenci dat u poskytovatele, který EU neumíZvolte Azure OpenAI nebo OpenAI s EU endpointem, nebo vynucení vypněte
Chyba residency_conflictKonfigurace by poslala data mimo EU, i když je EU vynucenáOpravte endpoint poskytovatele, žádná data se neodeslala
Poskytovatel má štítek bez klíčeJe zvolený, ale nemá uložený klíčVložte klíč a uložte nastavení
Test připojení selže hnedŠpatný formát klíče (Anthropic sk-ant-, OpenAI sk-)Zkontrolujte, že jste vložili celý klíč
Anthropic hlásí, že klíč není přiřazený k workspace a požadavek musí obsahovat anthropic-workspace-idKlíč nepatří do žádného workspaceVyplňte ID workspace z Claude Console, nebo použijte klíč přiřazený k workspace
Extrakce větších souborů vrátí chybuPřekročen limit PDF (Anthropic 32 MB, ostatní 20 MB)Zmenšete soubor nebo ho rozdělte
Faktura obsahuje řádek KOREKCE s nulovými množstvímiModel nerozparsoval složitou fakturu a součet se lišil o víc než 50 %Doplňte množství a ceny k řádkům a korekční řádek smažte (viz § 25.9.4)
Doklad z paliv nebo vyúčtování nemá položkyDoklad nemá spolehlivý rozpad řádkových částek odpovídající rekapitulaciZkontrolujte souhrnnou rekapitulaci a potřebné řádky doplňte ručně (viz § 25.9.7)
U dokladu chybí splatnostDoklad ji neuvádí a AI ji neodhadujeDoplňte splatnost v editoru
DIČ dodavatele ze skupinové registrace nesouhlasí s doklademARES může vrátit vlastní DIČ člena nebo společné DIČ skupiny podle stavu registracePorovnejte údaje s dokladem a ověřte skupinové DIČ v registru (viz § 25.9.9)
Import Ollamou je extrémně pomalý, nebo skončí po zhruba 2 minutáchModel se nevejde do paměti grafické karty, nebo prohlížeč po 2 minutách přestane čekatZvolte menší model, nebo import nechte běžet přes scan inbox (viz § 25.9.18)
Test spojení hlásí ollama_curl_missingChybí PHP rozšíření curlDoinstalujte rozšíření (v Docker image je)

25.9 Podrobnosti a pravidla

25.9.1 Sanity check a příznak „Ke kontrole"

Při AI extrakci z PDF se po importu automaticky spustí sanity check: sečtou se řádky bez DPH a porovnají s celkovým základem daně, který AI přečetla z PDF „K úhradě". Pokud se hodnoty liší o víc než 2 %, faktura získá příznak Ke kontrole a uživatel by měl řádky před zaúčtováním ověřit.

Indikátory v aplikaci:

25.9.2 Jak zrušit warning

25.9.3 Auto-upgrade modelu

Pokud levnější model (Haiku 4.5) vrátí slabý výsledek (dodavatel se shoduje s vaší firmou, nebo se součet řádků výrazně liší od celku), extraktor automaticky zkusí znovu se silnějším modelem (Sonnet 4.6, zhruba 4krát dražší za extrakci). Pokud máte Sonnet jako výchozí, opakování se přeskočí.

25.9.4 Katastrofální mismatch (placeholder)

Když ani silnější model nezvládne rozparsovat řádky (typicky komplexní vícesloupcové servisní faktury) a součet řádků se liší od celku o víc než 50 %, extraktor:

  1. zachová popisy řádků z AI extraktu (jsou obvykle správně),
  2. vynuluje jejich množství a jednotkovou cenu (0),
  3. přidá první řádek KOREKCE s AI celkem z „K úhradě", aby seděl celkový součet faktury.

Uživatel pak postupně doplní množství a cenu k jednotlivým řádkům a nakonec smaže korekční řádek.

25.9.5 Dodatečná kontrola uložených faktur

CLI skript php api/bin/recheck-ai-extracted-invoices.php projde přijaté faktury s PDF přílohou, znovu spustí AI extrakci a porovná AI celek s aktuálním celkem v databázi. Při rozdílu nad práh (výchozí 2 %) zapíše varování:

php api/bin/recheck-ai-extracted-invoices.php                    # dry-run
php api/bin/recheck-ai-extracted-invoices.php --apply            # zápis
php api/bin/recheck-ai-extracted-invoices.php --supplier-id=1
php api/bin/recheck-ai-extracted-invoices.php --threshold=0.05

25.9.6 Dodavatel neplátce DPH

Při AI importu se ověří plátcovství dodavatele (ARES a VIES, případně signál z dokladu „DIČ: Neplátce DPH"). U neplátce se automaticky nastaví Bez nároku na odpočet a doplní varování. Konzistentně vyčíslená DPH zůstane součástí závazku a nákladu, sazby se vynulují pouze bez doložené daně. Kontrola tak zachová částku dodavatele a odpočet se nedostane do přiznání. Detail viz § 23.11.7.

25.9.7 Doklad bez jednotkových cen: založení ze souhrnné rekapitulace

Souhrnné doklady za období (typicky měsíční vyúčtování palivových karet) často jednotkovou cenu vůbec neuvádějí, mají jen množství, částku za řádek a dole daňovou rekapitulaci. Když je navíc doklad uvádí ve dvou variantách, před slevou a po slevě, dopočítaná jednotková cena vyjde z nesprávných čísel a doklad se rozejde s rekapitulací.

Pokud doklad uvádí částky bez DPH za jednotlivé řádky a jejich základy i daň souhlasí s rekapitulací po sazbách, MyÚčto.cz zachová jednotlivé položky jako 1 ks × částka řádku. Samotná absence jednotkové ceny rozpad neruší.

Když řádkové částky chybí nebo s rekapitulací nesouhlasí, založí se doklad ze souhrnné daňové rekapitulace: jeden řádek na sazbu DPH (1 ks × základ daně). Do popisu řádku se přenesou názvy plnění z dokladu, takže zůstane poznat, o co šlo (PHM, poplatky).

Při souhrnném založení koncept nese varování, že rozpad položek nebyl spolehlivý. Pokud potřebujete doklad rozepsaný, doplňte řádky ručně. Doklady s uvedenými jednotkovými cenami se přebírají včetně rozpadu na položky.

Nulové řádky se do dokladu nepřebírají. Typicky předplatné, které rozepisuje kvóty zahrnuté v ceně („50 GB reserved logs

25.9.8 Kontrola dat a identifikátorů při extrakci

25.9.9 Dodavatel se skupinovou registrací k DPH (dvě DIČ na dokladu)

Doklad odštěpného závodu nebo člena skupinové registrace k DPH může uvádět dvě různá čísla: DIČ samotného subjektu (typicky CZ + IČO) a DIČ k DPH skupiny. Extrakce je vytěží odděleně:

Při novém načtení údajů dodavatele podle IČO ARES u aktivní skupinové registrace předvyplní skupinové DIČ a příznak plátce. Pokud ARES skupinové DIČ nevrátí, neaktivní vlastní DIČ se místo něj nedoplní. IČO přitom zůstává identifikátorem konkrétního člena, zatímco skupinové DIČ může sdílet více členů. Při vytěžení zkontrolujte čísla proti dokladu; skupinové DIČ lze samostatně ověřit v registru plátců. Automatické předvyplnění vychází z aktuálního stavu ARES a nepotvrzuje platnost registrace k historickému datu dokladu.

25.9.10 Reverse charge ze zahraničí: automatika

Když extraktor detekuje reverse charge (zahraniční dodavatel a všechny řádky bez DPH), doklad automaticky daňově připraví:

Detail daňové logiky viz § 23.11.10.

25.9.11 Hromadný import, typ dokladu a poslední import

Na stránce Nákup → AI import lze vybrat nebo přetáhnout víc souborů naráz. Vznikne z nich dávka, která se zpracuje postupně po jednom. Po zpracování zůstane na stránce tabulka výsledků: soubor, stav, dodavatel, částka, typ dokladu a odkaz Otevřít na vytvořený koncept.

Typ dokladu jde změnit přímo v tabulce, bez otevírání editoru. Typicky jde o účtenku placenou kartou, kterou AI zařadí jako *Účtenka / paragon* a účetní ji chce vést jako *Faktura*. Stejná volba je i u jednotlivě importovaného dokladu. Změna se týká jen zařazení, částky ani DPH se nepřepočítávají. Záloha se tu měnit nedá (má vazby na vyúčtování), přepněte ji v editoru dokladu.

Po dokončení dávky ukáže souhrn počet úspěšných a chybných dokladů a tlačítko Zobrazit v přijatých fakturách, které otevře seznam vyfiltrovaný na tuto dávku. Tam lze vybraným dokladům změnit typ hromadně akcí Nastavit typ.

25.9.12 Kontrola vytěžených dokladů: podrobnosti

25.9.13 Poskytovatelé AI a jejich nastavení

AI extrakce neběží natvrdo nad jedním modelem, MyÚčto.cz nabízí AI bránu s pěti poskytovateli, mezi kterými si každá firma vybere podle toho, co už používá, kde chce mít API klíč a jaké má požadavky na rezidenci dat:

Nastavení je na firmu (celá firma sdílí jednoho aktivního poskytovatele a jeho přihlašovací údaje, ne po jednotlivých uživatelích).

Podrobnosti k formuláři:

25.9.14 EU rezidence dat: co to znamená a jak se vynucuje

Zaškrtávátko Vynutit EU rezidenci dat říká aplikaci: *„tato firma smí AI extrakci posílat jen na servery fyzicky v EU, nikdy do USA."* Hodí se pro firmy se zpřísněnými požadavky na GDPR a rezidenci dat (například veřejná správa, citlivější obory, interní compliance politika). Region dat (EU nebo US) volíte polem Region dat.

Ne každý poskytovatel to ale umí stejně:

PoskytovatelEU-schopný?Jak se region určí
Azure OpenAIAnoPodle hostname Azure endpointu. Pokud obsahuje token EU regionu (westeurope, swedencentral, germanywestcentral, northeurope, francecentral, norwayeast, switzerlandnorth, polandcentral, italynorth, spaincentral, uksouth, ukwest a další), region je EU. Jinak platí deklarovaný region dodavatele, ale jen pro ověřený Azure host, neplatný nebo cizí host padá fail-closed na US.
OpenAIAnoJen když je Base URL nastaveno přesně na https://eu.api.openai.com (OpenAI project data residency). Cokoli jiného (včetně prázdného pole, tedy výchozího api.openai.com) je US.
Anthropic ClaudeNePřímé API nabízí jen US region.
Google GeminiNePřímá integrace přes AI Studio používá US, regionální endpoint Vertex AI není součástí této integrace.

Pokud zaškrtnete Vynutit EU rezidenci dat u poskytovatele, který EU neumí (Anthropic, Gemini, nebo Azure či OpenAI se špatně nastaveným endpointem), tlačítko poskytovatele se v přepínači znepřístupní a pod přepínačem se zobrazí červené upozornění *„Vybraný poskytovatel/konfigurace nepodporuje EU rezidenci..."*. Volba Region dat: US je navíc zamčená, dokud je vynucení EU zapnuté.

Upozornění

Tohle není jen kosmetika ve formuláři. Server vynucuje stejné pravidlo fail-closed i nezávisle na uživatelském rozhraní. Každé volání extrakce (i test připojení, i automatický upgrade na silnější model) si znovu ověří skutečný region podle konfigurace poskytovatele. Pokud by se dostala firma s požadavkem na EU přesto na endpoint mimo EU, volání skončí chybou residency_conflict, žádná data se neodešlou a žádný cross-provider ani cross-tenant fallback se nekoná. Buď proběhne extrakce ve správném regionu, nebo neproběhne vůbec.

25.9.15 Výběr modelu a chování shodné napříč poskytovateli

Ať zvolíte kteréhokoli poskytovatele, chování zbytku extrakce zůstává stejné. Funkce popsané výše v této kapitole (sanity check, příznak Ke kontrole, auto-upgrade modelu, katastrofální mismatch, kontrola plátcovství DPH, automatika reverse charge) fungují nad výsledkem libovolného aktivního poskytovatele, ne jen nad Anthropic:

25.9.16 Ladění extrakce: poznámky a míra uvažování

Pod formulářem přihlašovacích údajů jsou dvě volby, které platí pro celou firmu napříč poskytovateli a nepřenastavují se při přepnutí brány.

Míra uvažování AI rozhoduje, kolik práce si model dá, než odpoví:

VolbaCo dělá
Výchozí (podle modelu)Neposílá poskytovateli nic navíc. Doporučené.
Rychle a levněZkrátí uvažování. Nižší cena a latence, u složitých faktur na úkor přesnosti.
Přesně (víc uvažování)Nechá model uvažovat déle. Vyšší přesnost na komplikovaných dokladech, ale pomalejší a dražší.

Ne každý model to umí. claude-haiku-4-5 a modely řady gpt-4 volbu nemají a prostě ji ignorují (extrakce běží dál, jen bez efektu). U Azure OpenAI se volba neuplatní vůbec, protože pod deploymentem může být libovolný model.

Poznámky k extrakci jsou volný text (maximálně 2000 znaků), který se připojí k zadání pro AI. Patří sem to, co model nemá odkud vědět o *vašich* fakturách:

Dodavatel ACME píše variabilní symbol do pole "Reference", ne do VS.
Faktury z Irska jsou vždy bez DPH (reverse charge).
U Vodafonu ber částku z řádku "Celkem k úhradě", ne z rekapitulace.

Text jde do zadání jako doplňující kontext, ne jako pravidlo. Nikdy nepřebije schéma výsledku ani kontrolní logiku popsanou výše v této kapitole. Když si poznámka odporuje s pravidly extrakce, platí pravidla. Delší text se ořízne na 2000 znaků.

Tip

Poznámky pište konkrétně a k jednomu dodavateli, ne obecně. „Buďte přesnější" modelu nepomůže, „faktury od ACME mají datum plnění v pravém horním rohu" ano. Když se stejná chyba opakuje u jednoho dodavatele, je to přesně případ pro poznámku.

Obojí se ukládá tlačítkem Uložit ladění (je aktivní jen při skutečné změně) a projeví se okamžitě na další extrakci.

25.9.17 Omezení a tipy

25.9.18 Lokální model přes Ollamu: podrobnosti

Jak se doklad zpracuje. Model dostane obrázky prvních 6 stran dokladu a k nim text z PDF, protože čísla dokladu, IBAN, variabilní symbol a částky jsou v textu přesnější než na obrázku. Volba rychle / přesně u modelů, které umí přemýšlet (capability *thinking*), vypíná nebo zapíná přemýšlení. Na obrázky stránek potřebuje server přednostně nástroj pdftoppm z balíku Poppler (je v Docker image), záložně Imagick s Ghostscriptem. Bez nich se posílá jen text a sken bez textové vrstvy nejde vytěžit. Spojení s Ollamou vyžaduje PHP rozšíření curl (v Docker image je), bez něj ohlásí test spojení chybu ollama_curl_missing.

Rychlost a časový limit. Rychlost závisí hlavně na tom, jestli se model celý vejde do paměti grafické karty:

Pokud je vytěžování pomalé, zvolte menší model, který čte obrázky, nebo grafickou kartu s větší pamětí.

Velikost kontextu nastavíte proměnnou MYINVOICE_OLLAMA_NUM_CTX (výchozí 32768, rozsah 8192 až 131072). Menší kontext zabere méně paměti grafické karty, takže se menší model vejde do VRAM celý a odpovídá výrazně rychleji. Při hodnotě 16384 se do kontextu vejdou zhruba 3 až 4 strany dokladu, delší doklady potřebují výchozí hodnotu.

Výchozí limit na jeden doklad je 110 s a počítá se do něj i příprava obrázků stránek. Delší limit nastavíte proměnnou MYINVOICE_OLLAMA_TIMEOUT (v sekundách):

Rezidence dat a bezpečnost.

25.9.19 AI import vydaných faktur: podrobnosti

Stránka Prodej → AI import přijímá PDF, obrázek, ISDOC nebo ISDOCX a vždy vytváří jen koncept vydané faktury. Pokud soubor obsahuje platný ISDOC, aplikace použije jeho strukturovaná data a AI vůbec nevolá. Teprve když strukturovaná data chybí, použije aktivního poskytovatele a model z § 25.9.13.

Z jednoho souboru aplikace vytěží odběratele, data dokladu, měnu, platební údaje a položky. Odběratele vyhledá nebo založí, vytvoří koncept stejnou interní cestou jako ruční editor a přepočítá jeho součty. Číslo z dokladu převezme jen tehdy, pokud v aktuální firmě nekoliduje, jinak dostane koncept nové číslo až při vystavení. U ISDOC navíc ověří, že dodavatelem je aktuálně zvolená firma. Existující ISDOC se stejným variabilním symbolem vrátí jako duplicita místo založení druhé faktury.

Při přetažení více souborů vznikne dávka. Zpracovává se postupně po jednom, aby nepřetížila limit poskytovatele. U každého řádku je samostatný výsledek a odkaz na vytvořený koncept. Maximální velikost jednoho uploadu je 32 MiB, konkrétní poskytovatel může mít nižší limit uvedený v § 25.9.15.

Výsledek nese zdroj (ISDOC, AI nebo duplicita), poskytovatele, model, region a případně spotřebu tokenů. Tyto údaje se spolu s názvem a velikostí souboru zapisují do activity logu, samotné přihlašovací údaje ani obsah dokladu se do něj nezapisují.

25.10 Související kapitoly