Inti API

Inti API

omr.api adalah permukaan kecil yang paling banyak kode berinteraksi: OmrEngine, TemplateProcessor, ImageCollection, dan enum FormValidationLogic.


OmrEngine

OmrEngine adalah pabrik tanpa status. Generate(source, settings) menerima sumber markup-DSL atau pohon TemplateConfig dan mengembalikan GenerationResult. GetTemplateProcessor(templateSource, validationLogic) memuat jalur berkas .omr yang sebelumnya disimpan dan mengembalikan TemplateProcessor yang terikat; sumber aliran justru mengambil argumen text-encoding sebelum logika validasi.

from omr.api import OmrEngine, FormValidationLogic

engine = OmrEngine()
gen = engine.Generate("final-exam.txt")
gen.Save("out", "final-exam")
processor = engine.GetTemplateProcessor("out/final-exam.omr", FormValidationLogic.Ignore)

FormValidationLogic

Mengontrol perilaku mesin ketika aturan validasi templat — seperti batasan multi-select — dilanggar selama pengenalan: Ignore (default) secara diam-diam menerima pelanggaran, Exception menimbulkan, dan undefined adalah nilai nol enum. Pemeriksaan hanya berlaku untuk pertanyaan yang Multiselectnya dinonaktifkan; GlobalPageSettings.Multiselect defaultnya diaktifkan.

TemplateProcessor

Recognize(source, recognitionThreshold) mengenali satu gambar yang dipindai. RecognizeFolder(folderPath, recognitionThreshold) mengenali setiap gambar dalam folder dalam satu panggilan. Recalculate(result, recognitionThreshold) menghitung ulang hasil yang sudah dikenali dengan ambang batas yang berbeda, tanpa membaca ulang gambar sumber.

ImageCollection

Peta hanya-tambah, sensitif huruf besar/kecil dari nama ke byte gambar mentah. Add(name, image) mendaftarkan sebuah gambar, Contains(name) memeriksa apakah sebuah nama sudah terdaftar, Count melaporkan berapa banyak yang terdaftar, dan as_dict() mengembalikan peta pendukung. Markup dapat merujuk ke gambar yang terdaftar dengan nama (?image=<name>) alih-alih jalur sistem berkas.

from omr.api import ImageCollection

images = ImageCollection()
with open("logo.png", "rb") as f:
    images.Add("logo.png", f.read())

Tips dan Praktik Terbaik

  • Gunakan FormValidationLogic.Exception selama pengembangan untuk menampilkan pelanggaran multi-select secara langsung alih-alih mengabaikannya secara diam-diam (hanya aktif untuk pertanyaan dengan Multiselect dinonaktifkan).
  • Recalculate() lebih murah dibandingkan memindai ulang — gunakan ketika hanya ambang batas pengenalan yang perlu diubah.
  • Nama ImageCollection sensitif huruf besar/kecil; mendaftarkan nama yang sama dua kali akan menimbulkan error alih-alih menimpa secara diam-diam.
  • Generate() melaporkan sebagian besar kegagalan melalui GenerationResult.ErrorCode/ErrorMessage alih-alih menimbulkan error — periksa ErrorCode sebelum mempercayai hasil yang dihasilkan.

Masalah Umum

MasalahPenyebabPerbaikan
Mendaftarkan gambar dua kali menimbulkanImageCollection.Add tidak mengizinkan nama duplikatPeriksa Contains(name) terlebih dahulu, atau gunakan nama unik per gambar
Jawaban multi-select yang tidak diizinkan diterima secara diam-diamDefault FormValidationLogic.Ignore tidak menimbulkanBerikan FormValidationLogic.Exception ke GetTemplateProcessor(), dan pastikan Multiselect pada pertanyaan dinonaktifkan

FAQ

Apakah OmrEngine aman untuk digunakan kembali di beberapa templat?

Ya — itu tidak memiliki status; setiap panggilan Generate()/GetTemplateProcessor() bersifat independen.

Bagaimana cara mengenali seluruh folder pemindaian sekaligus?

Panggil TemplateProcessor.RecognizeFolder(folderPath, recognitionThreshold) alih-alih melakukan perulangan Recognize() secara manual.


Ringkasan API Reference

Kelas/MetodeDeskripsi
OmrEngine.GenerateMerender templat menjadi gambar halaman + deskriptor .omr
OmrEngine.GetTemplateProcessorMemuat deskriptor .omr untuk pengenalan
TemplateProcessor.Recognize / RecognizeFolder / RecalculateTitik masuk pengenalan
ImageCollection.Add / Contains / as_dictRegistri gambar dalam memori untuk markup
FormValidationLogicEnum perilaku pelanggaran validasi

Lihat Juga

 Bahasa Indonesia