Ana Sayfa
» Alanlar
»
Bulut API'si Kullanmadan Yerel AI Modelleriyle PDF Veri Çıkarmayı Otomatikleştirme
Bulut API'si Kullanmadan Yerel AI Modelleriyle PDF Veri Çıkarmayı Otomatikleştirme
En güvenilir yerel PDF veri çıkarma iş akışı genellikle tek bir AI istemi değil, bir boru hattıdır: önce PDF'den güvenilir metin ve düzeni geri kazanın, ardından yerel bir modelden bu içeriği katı bir şemaya eşleştirmesini isteyin ve son olarak kaydetmeden önce alanları doğrulayın. Her PDF sayfasını doğrudan bir görme modeline göndermek işe yarayabilir, ancak bu yöntem genellikle daha yavaştır, daha fazla donanım yoğunluğu gerektirir ve yeterli olduğunda yerel PDF metni veya OCR kullanmaya kıyasla denetlenmesi daha zordur.
Bu ayrım, hedefiniz "bulut API'si yok" ise önemlidir. Belge içeriklerini barındırılan bir hizmete göndermeden kendi makinenizde bir yerel API kullanmaya devam edebilirsiniz; örneğin, localhost üzerindeki Ollama HTTP uç noktası gibi. Ollama, modeller yerel olarak çalıştığında istemlerin ve yanıtların Ollama'ya geri gönderilmediğini belirtir ve bulut özelliklerini devre dışı bırakan yalnızca yerel bir mod sunar. Docling de uzaktan hizmetleri varsayılan olarak devre dışı bırakır, ancak çevrimdışı kullanım için önceden indirilmedikleri sürece kurulum sırasında model dosyalarının indirilmesi gerekebilir.
Doğru teknoloji yığını PDF'ye bağlıdır. Seçilebilir metne sahip dijital olarak oluşturulmuş faturalar, taranmış makbuzlardan, karmaşık finansal tablolardan veya görsel ağırlıklı formlardan farklı bir yaklaşım gerektirir. Bu rehber bu seçenekleri karşılaştırır ve faturalar, sözleşmeler, satın alma siparişleri, başvuru formları, raporlar ve diğer tekrarlayan belgelere uyarlayabileceğiniz dört aşamalı bir otomasyon kalıbı sunar.
Hızlı öneri: Boru hattını belge türüne göre seçin
PDF türü
Pratik yerel boru hattı
Temel avantaj
Temel ödünleşim
Temiz seçilebilir metne sahip dijital olarak oluşturulmuş PDF
PyMuPDF → yerel metin LLM → JSON doğrulama
Hızlı ve donanım açısından nispeten hafif
Düz çıkarma, okuma sırasını veya tablo ilişkilerini kaybedebilir
Basit sayfalara sahip taranmış PDF
OCRmyPDF/Tesseract → PyMuPDF → yerel metin LLM
AI çıkarmasından önce sayfa görüntülerini aranabilir metne dönüştürür
OCR hataları model girdi hatalarına dönüşür
Metin, tarama ve tablolar içeren karışık PDF
Docling veya OCRmyPDF (atla/yeniden yap modunda) → yerel LLM
Karışık içerik ve belge yapısı üzerinde daha iyi kontrol
Daha fazla bağımlılık ve işlem süresi
Düzen ağırlıklı formlar, tablolar, diyagramlar veya görsel olarak anlamlı sayfalar
Docling yerel boru hattı veya yerel görme modeli → yapılandırılmış çıktı
Daha fazla görsel/düzen bağlamını korur
Genellikle daha fazla işlem gücü ve daha güçlü doğrulama gerektirir
Evrensel bir kazanan yoktur. Belgeleriniz öngörülebilir ve gömülü metin içeriyorsa, bir ayrıştırıcı artı küçük bir yerel dil modeli, maliyet, hız ve tekrarlanabilirlik açısından çok daha büyük bir görme iş akışından daha iyi performans gösterebilir. Metnin konumu anlamın bir parçasıysa—örneğin, birleşik hücreli bir tablo veya etiketlerin ve değerlerin uzamsal olarak eşleştirildiği bir form—düzen farkındalıklı işlem daha değerli hale gelir.
Adım 1: OCR veya AI seçmeden önce PDF'yi sınıflandırın
Belgenin zaten kullanılabilir metin içerip içermediğini belirleyerek başlayın. Dijital olarak oluşturulmuş, PDF'nin yazılımdan üretildiği ve genellikle seçilip kopyalanabilen metin nesneleri içerdiği anlamına gelir. Bir taranmış PDF yalnızca sayfa görüntüleri içerebilir, bu nedenle normal bir metin ayrıştırıcısı çok az veya hiç sonuç döndürmez.
PyMuPDF'nin resmi belgeleri, page.get_text() ile doğrudan metin çıkarmayı gösterir. Minimal bir yerel test şu şekilde görünür:
import pymupdf
def extract_native_text(pdf_path: str) -> str:
pages = []
with pymupdf.open(pdf_path) as doc:
for page in doc:
pages.append(page.get_text())
return "\f".join(pages)
text = extract_native_text("invoice.pdf")
print(text[:1000])
Resmi PyMuPDF temelleri sayfasına bakın. PyMuPDF ayrıca düz PDF metninin doğal okuma sırasına sahip olmayabileceğini ve beklenmedik satır sonları içerebileceği konusunda uyarır. Bu bir ayrıştırıcı sınırlamasıdır, mutlaka bir AI sorunu değildir.
En uygun kullanım: Metin kopyalama/yapıştırmanın zaten çalıştığı ve alanların yakındaki etiketlerden kolayca tanımlanabildiği faturalar, ekstreler, raporlar ve formlar.
Dikkat edilmesi gerekenler: Bir sayfa küçük bir metin katmanı ve büyük bir taranmış görüntü içerebilir. Bu nedenle, "bazı metinlerin var olup olmadığını" kontrol etmek mükemmel bir tarama dedektörü değildir. Üretim otomasyonu için, tek bir evrensel karakter sayısı eşiğine güvenmek yerine temsilci belgeleri inceleyin.
Eylem: 20–50 temsilci PDF alın ve bunları dijital olarak oluşturulmuş, taranmış, karışık ve düzen ağırlıklı gruplara ayırın. Boru hattınız yalnızca dosya uzantısına göre değil, belge davranışına göre yönlendirme yapmalıdır.
PDF girdi aşamasının AI tarafından oluşturulmuş illüstrasyonu. Bu kavramsal bir iş akışı görüntüsüdür, belirli bir PDF uygulamasının ekran görüntüsü veya bir kıyaslama sonucu değildir.
Adım 2: Metni yerel olarak çıkarın—veya yalnızca ihtiyaç duyduğunuzda OCR kullanın
Seçenek A: Temiz dijital PDF'ler için PyMuPDF
Metin katmanı güvenilirse, doğrudan çıkarma genellikle en basit yoldur. OCR gecikmesinden kaçınır ve zaten doğru kodlanmış metne OCR karakter hatalarının girmesini önler. Uzun belgeler için, tüm belgeyi modele tek seferde geçirmek yerine sayfa ayırıcılarını koruyabilir ve sayfa gruplarını veya mantıksal bölümleri işleyebilirsiniz.
Ödünleşim: Düz metin ucuz ve hızlıdır, ancak tablolar, çok sütunlu sayfalar, başlıklar, altbilgiler ve okuma sırası ek işlem gerektirebilir. Bu ilişkiler hedef alanlar için önemliyse, kötü kaynak metne istem talimatları yığmak yerine düzen farkındalıklı bir temsile geçin.
Seçenek B: Taranmış sayfalar için OCRmyPDF ve Tesseract
Tesseract açık kaynaklı bir OCR motorudur. Mevcut kullanıcı kılavuzu, 5.x serisini ve ayrı eğitimli veri dosyaları aracılığıyla birçok dil desteğini belgeler. OCRmyPDF, taranmış sayfaların aranabilir bir metin katmanı kazanabilmesi için OCR'ı PDF'ye özgü işlemlerin etrafına sarar.
Bazı sayfaların zaten metin içerdiği karışık bir belge için, mevcut OCRmyPDF sürümleri bir skip modunu destekler:
ocrmypdf --mode skip input.pdf searchable.pdf
Resmi OCRmyPDF gelişmiş dokümantasyonu, --mode skip komutunun mevcut metin içeren sayfaları olduğu gibi bıraktığını ve ihtiyaç duyan sayfaları OCR'ladığını açıklar. Aynı dokümantasyon, algılanan önceki OCR'ı değiştirmek için redo ve tüm içeriği rasterleştirip OCR'lamak için force komutlarını tanımlar. Rasterleştirme vektör avantajlarını yok edebilir ve etkileşimli içeriği düzleştirebileceğinden force komutunu dikkatli kullanın.
Tesseract kurulumu, diller ve komut satırı davranışı için resmi Tesseract kullanıcı kılavuzunu kullanın. OCR dili önemlidir: Örneğin faturalarınız İngilizce ve Almanca içeriyorsa, varsayılan İngilizce modelin her ikisini de eşit derecede iyi ele alacağını varsaymak yerine uygun dil verilerini kurup yapılandırın.
Seçenek C: Yapının önemli olduğu durumlarda Docling
Docling, düzen, tablo, OCR ve yerel görme-dil işleme seçenekleriyle belge dönüştürme için tasarlanmıştır. Proje dokümantasyonu, hassas ve hava boşluklu (air-gapped) iş akışları için yerel çalıştırmayı amaçlayan gelişmiş PDF anlama, tablo yapısı, OCR ve kayıpsız JSON/Markdown tarzı çıktıları listeler.
Temel bir Python dönüştürme şu kadar küçük olabilir:
Resmi Docling hızlı başlangıç sayfasına bakın. Docling ayrıca yerel VLM boru hatlarını ve çeşitli OCR arka uçlarını destekler. Gelişmiş seçenekleri, uzaktan hizmet çağrılarının açıkça opt-in gerektirdiğini, ancak model artefaktlarının çevrimdışı kullanım için önceden indirilebileceğini açıklar.
En uygun kullanım: Karmaşık tablolar, başlıklar, çok sütunlu raporlar, karışık taramalar veya düz bir metin yığını yerine yeniden kullanılabilir bir belge temsili istediğiniz durumlar.
Ödünleşim: Boru hattı basit bir PDF ayrıştırıcıdan daha ağırdır. Bunu, ek yapının çıkarma doğruluğunuzu iyileştirdiği için kullanın—sadece daha fazla bileşene sahip olduğu için değil.
Eylem: Hedef şemanızın ihtiyaç duyduğu bilgiyi koruyan en hafif çıkarma yöntemini seçin. Temiz gömülü metni OCR'lamayın ve düzen anlamı belirlediğinde düzeni çöpe atmayın.
Taramalar için OCR ve dijital olarak oluşturulmuş PDF'ler için doğrudan çıkarma seçimini gösteren AI tarafından oluşturulmuş illüstrasyon. Gerçek bir OCR uygulaması arayüzünü değil, karar kavramını temsil eder.
Adım 3: Geri kazanılan içeriği yerel bir modelle katı bir şemaya eşleştirin
Güvenilir kaynak içeriğine sahip olduktan sonra, yerel modeli iyi olduğu şey için kullanın: anlamsal eşleştirme. "Bu faturadan her şeyi çıkar" demek yerine, gerçekten ihtiyaç duyduğunuz alanları tanımlayın.
Örneğin:
from pydantic import BaseModel
from typing import Optional
class LineItem(BaseModel):
description: str
quantity: Optional[float]
unit_price: Optional[float]
amount: Optional[float]
class Invoice(BaseModel):
invoice_number: Optional[str]
invoice_date: Optional[str]
vendor_name: Optional[str]
currency: Optional[str]
subtotal: Optional[float]
tax: Optional[float]
total: Optional[float]
items: list[LineItem]
Ollama'nın mevcut yapılandırılmış çıktı dokümantasyonu, format alanı aracılığıyla bir JSON Şeması geçirmeyi ve yanıtı Pydantic ile doğrulamayı destekler. Yerel bir çağrı şu şekilde görünebilir:
from ollama import chat
schema = Invoice.model_json_schema()
prompt = f"""
Extract the invoice into the supplied schema.
Rules:
- Use only information present in the source.
- Use null when a field is not found.
- Do not infer missing invoice numbers, dates, tax, or totals.
- Preserve line items individually.
SOURCE:
{text}
"""
response = chat(
model="gpt-oss",
messages=[{"role": "user", "content": prompt}],
format=schema,
options={"temperature": 0},
)
invoice = Invoice.model_validate_json(response.message.content)
Bu, daha deterministik yapılandırılmış tamamlamalar için sıfır gibi düşük bir sıcaklık ve yeniden kullanılabilir şemaları öneren Ollama'nın resmi Yapılandırılmış Çıktılar dokümantasyonundaki kalıbı takip eder.
Yukarıdaki model adı, Ollama'nın kendi yapılandırılmış çıktı dokümantasyonundan bir örnektir ve her çıkarma işi için en iyi model olduğu iddiası değildir. Açık etiketlere sahip tekrarlayan faturalar için daha küçük bir model yeterli olabilir; belirsiz sözleşmeler veya tutarsız düzenler için daha güçlü bir model yardımcı olabilir, ancak genellikle daha fazla bellek ve işlem süresi gerektirecektir.
Metin modeli mi yoksa görme modeli mi?
Ayrıştırıcı/OCR çıktısı ihtiyaç duyduğunuz alan ilişkilerini zaten koruyorsa bir metin modeli kullanın. Görsel konumun hayati olduğu veya metin dönüşümünün yapıyı tutarlı bir şekilde kaybettiği durumlarda görme yetenekli yerel bir model kullanın. Ollama'nın resmi Görme dokümantasyonu, yerel görme modellerine görüntü girdilerini destekler ve yapılandırılmış çıktı özelliği görme yetenekli modellerle birleştirilebilir.
Ancak, her sayfayı bir görüntüye dönüştürmek ödünleşimi değiştirir:
daha fazla piksel işlenmelidir;
yüksek çözünürlüklü sayfalar daha fazla işlem gücü ve bellek tüketir;
uzun PDF'ler için sayfa gruplama önemli hale gelir;
görsel modeller yine de bir alan uydurabilir veya bir sayıyı yanlış okuyabilir;
çıkarılan değerleri bir sayfaya veya kaynak bölgesine geri izlemenin bir yoluna ihtiyacınız vardır.
Eylem: Ayrıştırıcı/OCR metni artı şema kısıtlı yerel bir LLM ile başlayın. Her sayfa için görme maliyetini ödemek yerine yalnızca zor sayfa türlerini yerel bir VLM'ye yükseltin.
Yerel model aşamasının AI tarafından oluşturulmuş illüstrasyonu. Gerçek bir Ollama ekranını tasvir etmez ve yerel bir modelin doğrulama olmadan her alanı çıkarabileceğini ima etmez.
Adım 4: JSON, CSV, Excel veya bir veritabanına yazmadan önce doğrulayın
Şema açısından geçerli JSON otomatik olarak olgusal olarak doğru değildir. Bir model, yanlış değerlere sahip geçerli alanlar üretebilir. Bu nedenle son aşama, mümkün olan her yerde deterministik kontroller kullanmalıdır.
Bir fatura için faydalı kontroller şunları içerir:
Gerekli kimlik alanları: İş akışınız gerektiriyorsa fatura numarası veya satıcı adı mevcut olmalıdır.
Tarih ayrıştırma:03/04/26 gibi belirsiz dizelere güvenmek yerine tarihleri sabit bir politikayla ayrıştırın.
Aritmetik: Satır kalemi tutarlarının toplamını, tanımlanmış bir tolerans dahilinde belge ara toplamıyla karşılaştırın.
Toplamlar: Ara toplam artı vergi ve diğer ücretlerin toplamla tutarlı olup olmadığını doğrulayın.
Para birimi: Belge İngilizce olduğu için USD olduğunu varsaymayın.
Kaynak izleme: Kaynak dosya adını, sayfa numarasını, çıkarma zaman damgasını ve isteğe bağlı olarak orijinal PDF'nin bir karmasını saklayın.
İnceleme kuyruğu: Eksik, çelişkili veya düşük güven düzeyine sahip durumları, değerleri sessizce doldurmak yerine insan incelemesine yönlendirin.
Temel bir toplu yapı, çıkarmayı doğrulamadan ayırabilir:
from pathlib import Path
import json
for pdf_path in Path("inbox").glob("*.pdf"):
source_text = extract_native_text(str(pdf_path))
# If text is unusable, run your OCR or Docling branch here.
record = extract_with_local_model(source_text)
errors = validate_record(record)
if errors:
save_for_review(pdf_path, record, errors)
else:
output = Path("processed") / f"{pdf_path.stem}.json"
output.write_text(
json.dumps(record, ensure_ascii=False, indent=2),
encoding="utf-8"
)
Yardımcı işlevler, doğrulama kuralları faturalar, sözleşmeler, vergi formları, laboratuvar raporları ve satın alma siparişleri arasında dramatik şekilde farklılık gösterdiği için bilinçli olarak uygulamaya özgü bırakılmıştır. Evrensel bir doğrulayıcı yanlış bir güven duygusu yaratır.
CSV veya Excel'e ihtiyacınız varsa, yalnızca gerçekten satır ve sütunlara ait olan alanları düzleştirin. Tekrarlayan satır kalemleri içeren belgeler için, genellikle her alanı tek bir geniş elektronik tablo satırına zorlamak yerine, bir belge kimliğiyle bağlantılı bir belge düzeyi tablo ve ikinci bir satır kalemi tablosu oluşturmak daha temizdir.
Eylem: Binlerce dosyayı işlemeye başlamadan önce doğrulama kurallarını tanımlayın. Etiketli bir örnek kümesine karşı test edin ve yalnızca "başarıyla işlenen belgeler" değil, alan düzeyi doğruluğunu da kaydedin.
Excel, CSV ve JSON gibi yerel dışa aktarma hedeflerinin AI tarafından oluşturulmuş illüstrasyonu. Bu kavramsal bir uç noktadır ve her PDF'nin inceleme olmadan dönüştürülebileceğine dair kanıt değildir.
Pratik, tamamen yerel bir mimari
Pek çok küçük ve orta ölçekli otomasyon işi için, bu sorumluluk bölünmesi, hepsi bir arada bir modele göre daha kolay bakılabilir:
Bu tasarım, bileşenleri bağımsız olarak değiştirmenize olanak tanır. OCR kalitesi zayıfsa, LLM'yi yeniden eğitmeden OCR katmanını iyileştirin. Yerel model çok yavaşsa, PDF ayrıştırıcısını değiştirmeden daha küçük bir model kullanın. Bir satıcının faturaları özel tablo işlemesi gerektiriyorsa, yalnızca o dosyaları Docling veya bir görme dalı üzerinden yönlendirin.
Ollama vs. llama.cpp vs. Docling VLM: Hangi yerel çalışma zamanını seçmelisiniz?
Seçenek
Ne zaman kullanılır
Güçlü yön
Ödünleşim
Ollama
En kolay yerel model API'sini ve şema kısıtlı çıktıyı istiyorsanız
Basit localhost API'si, yapılandırılmış JSON, uyumlu modeller için görme desteği
Soyutlama, çıplak bir çıkarım motoruna kıyasla daha az düşük seviyeli çalışma zamanı kontrolü sağlar
llama.cpp
Doğrudan GGUF kontrolü, komut satırı dağıtımı veya hafif bir yerel sunucu istiyorsanız
Yerel CLI/sunucu ve dilbilgisi/JSON-şeması kısıtlı üretim
Daha fazla model/çalışma zamanı detayı sizin sorumluluğunuzdadır
Docling VLM
Temel zorluğunuz genel sohbet tarzı çıkarma değil, belge düzeni dönüştürme ise
Markdown/HTML/DocTags tarzı çıktılarla belge odaklı yerel VLM boru hattı
Her iş kuralı çıkarma adımı için bir ikame olarak değil, bir belge dönüştürme bileşeni olarak düşünülmelidir
Resmi llama.cpp deposu, yerel bir llama-server ve dilbilgisi kısıtlı üretimi belgeler; mevcut sunucu kodu ayrıca JSON şeması kısıtlamalarını kabul eder. Docling'in Görme Modelleri dokümantasyonu, belge dönüştürme için yerel VLM seçeneklerini listeler.
Bir çalışma zamanını yalnızca bir model sıralamasına göre seçmeyin. PDF çıkarma için pratik ölçütler; alan doğruluğu, belge başına verim, makinenizdeki bellek kullanımı, düzenlerinizdeki hata oranı, başlatma karmaşıklığı ve yanlış sonuçları ne kadar kolay inceleyebildiğinizdir.
Boru hattını gerçekten yerel nasıl tutarsınız
"Bulut API'si yok" ifadesi, sadece bir pazarlama etiketi değil, doğrulayabileceğiniz bir dağıtım özelliği olmalıdır.
Ollama
Ollama'nın resmi SSS sayfası, yerel istem ve yanıtların Ollama'ya geri gönderilmediğini belirtir. Ayrıca bir bulut devre dışı bırakma ayarını belgeler:
OLLAMA_NO_CLOUD=1
veya eşdeğer disable_ollama_cloud sunucu ayarı. Ollama'nın yerel API'si http://localhost:11434 adresinde çalışır ve kimlik doğrulama dokümantasyonuna göre yerel erişim için kimlik doğrulama gerektirmez.
Yerel ana makineye (localhost) bağlanmış bir hizmetin, yerel alan ağınıza (LAN) açık bir hizmetten farklı olduğunu unutmayın. Bağlama adresini değiştirirseniz veya başka bir sunucunun arkasına yerleştirirseniz, erişim kontrolünden siz sorumlusunuz.
Docling
Docling, uzaktan hizmet kullanımını varsayılan olarak devre dışı bırakır. Dokümantasyonu ayrıca işlem gizliliğini model ediniminden ayırır: Modeller, önceden indirilmedikleri sürece ilk kullanımda alınabilir. Hava boşluklu bir sistem için, bağlı bir hazırlama makinesinde docling-tools models download komutunu kullanın veya onaylanmış model artefaktlarını başka bir şekilde önceden hazırlayın, ardından çevrimdışı ortamı o yerel artefakt dizinine yönlendirin.
Eylem: Hassas belgeleri işlemeye başlamadan önce, işletim sistemi veya ağ katmanında giden ağ erişimini engelleyin ve bağlantıları izlerken bir test çalıştırın. Uygulama ayarları faydalıdır, ancak ağ kontrolleri size bağımsız bir doğrulama katmanı sağlar.
Yerel AI'nin çözmediği şeyler
Yerel olarak çalıştırmak veri kontrolü seçeneklerini iyileştirir, ancak çıkarmayı otomatik olarak doğru, uyumlu veya güvenli hale getirmez. Yerel dosyalar yine de hata ayıklama günlükleri, geçici dizinler, yedekler, paylaşılan klasörler, aşırı izin veren hizmetler veya kopyalanan dışa aktarımlar yoluyla sızabilir. Yerel bir model de barındırılan bir modelin yapabileceği gibi değerler uydurabilir.
Banka hesap numaraları, ödeme talimatları, sözleşme tarihleri, tıbbi değerler veya düzenleyici tanımlayıcılar gibi yüksek etkili alanlar için modeli tek doğrulayıcı olarak kullanmayın. Bunlar için kaynak metne karşı karşılaştırın, deterministik doğrulama uygulayın ve güven düzeyi yetersiz olduğunda insan incelemesi gerektirin.
Tüm bir klasörü otomatikleştirmeden önce nasıl test edilir
Gerçekten aldığınız durumları içeren küçük, etiketli bir değerlendirme kümesi oluşturun:
temiz dijital PDF;
düşük çözünürlüklü tarama;
döndürülmüş veya eğik sayfa;
çok sayfalı fatura;
sayfalar arası uzanan tablo;
eksik isteğe bağlı alanlar;
farklı tarih ve sayı formatları;
en az bir kasıtlı olarak zor belge.
Her hedef alan için, çıkarılan değeri gerçek değerle karşılaştırın. Tanımlayıcılar için tam eşleşmeyi, tutarlar için sayısal toleransı ve satır kalemleri için satır düzeyi doğruluğu ölçün. Ayrıca işlem süresini ve manuel incelemeye gönderilen belgelerin yüzdesini kaydedin.
Daha basit bir PyMuPDF-artı-LLM yolu gerekli doğruluğunuza ulaşıyorsa, onu koruyun. Taramalar ana başarısızlık noktasıysa, OCR'ı iyileştirin. Tablo ilişkileri sorunsa, Docling'i test edin. Görsel olarak konumlandırılmış alanlar zor kalmaya devam ediyorsa, o alt küme yerel bir görme modeli üzerinden yönlendirin. Bu kademeli yükseltme, en ağır modeli her sayfaya uygulamaya kıyasla hız ve donanım kullanımı üzerinde genellikle daha iyi kontrol sağlar.
Sonuç
İyi bir yerel PDF çıkarma sistemi, belge okumayıanlamsal çıkarmadan ayırır. PDF zaten iyi metin içeriyorsa PyMuPDF kullanın; sayfa taranmışsa OCRmyPDF/Tesseract kullanın; yapı ve tablolar önemliyse Docling kullanın; ve bir iş şemasına esnek eşleştirme gerektiğinde yerel bir Ollama veya llama.cpp modeli kullanın. Yerel görmeyi yalnızca, metin boru hattının güvenilir bir şekilde koruyamadığı bilgiyi görsel düzenin eklediği yerlerde kullanın.
Son gereklilik doğrulamadır. JSON Şeması, bir model yanıtının şeklini kısıtlayabilir, ancak tutarın, tarihin, ismin veya hesap numarasının kaynakla eşleştiğini kanıtlayamaz. Boru hattını, belirsiz belgelerin görünür ve incelenebilir olacağı şekilde tasarlarsanız, belgeleri bir bulut API'sine teslim etmeden ve yerel AI'nin kalite kontrol ihtiyacını ortadan kaldırdığını iddia etmeden PDF veri çıkarmasının büyük bir bölümünü otomatikleştirebilirsiniz.