690530:1305 ADR-030-231-ocr-sandbox-two-step-flow #04 [skip ci]

This commit is contained in:
2026-05-30 13:05:48 +07:00
parent c88354347b
commit 3bf0f506eb
3 changed files with 7 additions and 3 deletions
+1 -1
View File
@@ -487,7 +487,7 @@
"workbench.view.alwaysShowHeaderActions": true,
"workbench.tree.indent": 15,
"workbench.list.smoothScrolling": true,
"workbench.editor.enablePreview": false,
"workbench.editor.enablePreview": true,
"workbench.editor.limit.enabled": true,
"workbench.editor.limit.value": 10,
"workbench.startupEditor": "welcomePage",
@@ -3,6 +3,7 @@
# ตาม ADR-023A: OCR auto-detect (PyMuPDF chars > 100 → Fast path, else PaddleOCR)
# Change Log:
# - 2026-05-25: Initial FastAPI server สำหรับ PaddleOCR sidecar
# - 2026-05-30: เปลี่ยน lang='en' เป็น lang='ch' (CTJK) เพื่อรองรับภาษาไทย
import os
import logging
@@ -26,12 +27,13 @@ app = FastAPI(title="PaddleOCR Sidecar", version="1.0.0")
OCR_CHAR_THRESHOLD = int(os.getenv("OCR_CHAR_THRESHOLD", "100"))
USE_GPU = os.getenv("USE_GPU", "false").lower() == "true"
MAX_PAGES = int(os.getenv("OCR_MAX_PAGES", "0")) # 0 = ทุกหน้า
OCR_LANG = os.getenv("OCR_LANG", "ch") # ch = CTJK (รองรับภาษาไทย), en = English
# โหลด PaddleOCR model ครั้งเดียวตอน startup (ลด latency ต่อ request)
logger.info(f"Loading PaddleOCR model (use_gpu={USE_GPU})...")
logger.info(f"Loading PaddleOCR model (use_gpu={USE_GPU}, lang={OCR_LANG})...")
ocr_engine = PaddleOCR(
use_angle_cls=True,
lang="en",
lang=OCR_LANG,
use_gpu=USE_GPU,
show_log=False,
)
@@ -3,6 +3,7 @@
# Change Log:
# - 2026-05-25: Initial compose file สำหรับ PaddleOCR HTTP sidecar
# - 2026-05-25: แก้ volumes ให้ถูกต้องสำหรับ Windows + Docker Desktop
# - 2026-05-30: เพิ่ม OCR_LANG=ch (CTJK) เพื่อรองรับภาษาไทย
#
# วิธีรัน:
# docker compose up -d --build
@@ -25,6 +26,7 @@ services:
OCR_CHAR_THRESHOLD: "100"
OCR_PORT: "8765"
OCR_MAX_PAGES: "0"
OCR_LANG: "ch" # ch = CTJK (รองรับภาษาไทย), en = English
# ตั้ง USE_GPU=true เพื่อใช้ RTX 2060 Super (ต้องติดตั้ง nvidia-container-toolkit)
USE_GPU: "false"
volumes: