Add Cloud Tour Libo knowledge graph platform
This commit is contained in:
59
scripts/test_ocr_passport.py
Normal file
59
scripts/test_ocr_passport.py
Normal file
@@ -0,0 +1,59 @@
|
||||
"""阿里云护照 OCR 联调脚本。
|
||||
|
||||
用法:
|
||||
# 测本地图片
|
||||
python3 scripts/test_ocr_passport.py /path/to/passport.jpg
|
||||
|
||||
# 测公网 URL
|
||||
python3 scripts/test_ocr_passport.py --url https://example.com/passport.jpg
|
||||
|
||||
前置:
|
||||
pip install -r requirements.txt
|
||||
在项目根目录的 .env 填好:
|
||||
ALIYUN_OCR_ACCESS_KEY_ID=
|
||||
ALIYUN_OCR_ACCESS_KEY_SECRET=
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# 让脚本能在仓库根目录直接运行
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
||||
|
||||
from app.aliyun_ocr import OcrCallError, OcrConfigError, recognize_passport # noqa: E402
|
||||
|
||||
|
||||
def main() -> int:
|
||||
parser = argparse.ArgumentParser(description="阿里云护照 OCR 自检")
|
||||
parser.add_argument("image", nargs="?", help="本地图片路径")
|
||||
parser.add_argument("--url", help="公网图片 URL")
|
||||
args = parser.parse_args()
|
||||
|
||||
if not args.image and not args.url:
|
||||
parser.error("请提供本地图片路径或 --url")
|
||||
|
||||
try:
|
||||
if args.image:
|
||||
path = Path(args.image).expanduser().resolve()
|
||||
if not path.is_file():
|
||||
print(f"[FAIL] 文件不存在: {path}", file=sys.stderr)
|
||||
return 2
|
||||
data = recognize_passport(image_bytes=path.read_bytes())
|
||||
else:
|
||||
data = recognize_passport(image_url=args.url)
|
||||
except OcrConfigError as exc:
|
||||
print(f"[CONFIG] {exc}", file=sys.stderr)
|
||||
return 3
|
||||
except OcrCallError as exc:
|
||||
print(f"[CALL] {exc}", file=sys.stderr)
|
||||
return 4
|
||||
|
||||
print(json.dumps(data, ensure_ascii=False, indent=2))
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Reference in New Issue
Block a user