运行时依赖
安装命令
点击复制技能文档
BaiduOCR-LocalFallback 免责声明:此项目不是官方百度产品,与百度无关。此项目仅提供百度 OCR API 的封装;用户必须申请百度云账号并遵守百度的服务条款。此项目为 99% AI 生成。AI 的所有者没有编程背景。请在使用前评估项目的可行性。 115+ Baidu OCR API 接口与 EasyOCR 本地回退 —— 当网络不稳定时自动切换到本地识别。 功能 ✅ 115+ OCR API - 通用、身份证、收据、文档、教育等 ✅ 本地回退 - 集成 EasyOCR;当百度 OCR 不可用时自动切换 ✅ 图像预处理 - 自动压缩和转换以适应 4MB 限制 ✅ Token 缓存 - access_token 缓存 25 天 ✅ 自动重试 - 网络波动时重试 3 次 ✅ 多种配置方法 - 环境变量、配置文件或交互式设置 安装 一键安装 bash <(curl -s https://raw.githubusercontent.com/xx235300/BaiduOCR-LocalFallback/main/install.sh) 手动安装 # 1. 克隆仓库 git clone https://github.com/xx235300/BaiduOCR-LocalFallback.git cd BaiduOCR-LocalFallback # 2. 安装依赖 pip3 install -r requirements.txt # 3. 配置 API 凭证 python3 scripts/ocr.py --configure 快速开始 from scripts.ocr import OCR ocr = OCR() # 通用文本识别 result = ocr.recognize(image="/path/to/image.jpg", api="general_basic") # 身份证识别 result = ocr.recognize(image="/path/to/idcard.jpg", api="idcard", id_card_side="front") # 手写识别(本地回退) result = ocr.recognize(image="/path/to/handwriting.jpg", api="handwriting") 支持的 API 通用文本 API 描述 general 通用文本(带位置) general_basic 通用文本(基本) accurate 高精度(带位置) accurate_basic 高精度(基本) 身份证和卡片 API 描述 idcard 身份证 bankcard 银行卡 passport 护照 business_license 营业执照 收据 API 描述 receipt 通用收据 vat_invoice 增值税发票 taxi_receipt 出租车票 train_ticket 火车票 invoice 发票 手写和文档 API 描述 handwriting 手写识别 table 表格识别 formula 公式识别 更多 API(115+) 运行 python3 scripts/ocr.py --show-apis 以查看完整列表。 配置方法 方法 1:交互式 python3 scripts/ocr.py --configure 方法 2:环境变量(推荐用于安全) export BAIDU_OCR_API_KEY="" export BAIDU_OCR_SECRET_KEY="" 方法 3:配置文件 mkdir -p ~/.openclaw/skills/BaiduOCR-LocalFallback cat > ~/.openclaw/skills/BaiduOCR-LocalFallback/config.json << 'EOF' { "api_key": "", "secret_key": "" } EOF chmod 600 ~/.openclaw/skills/BaiduOCR-LocalFallback/config.json 响应格式 { "words_result": [ {"words": "识别文本", "location": {"vertices": [{"x": 0, "y": 0}, ...]}} ], "words_result_num": 1, "fallback_info": { // 仅在使用本地回退时存在 "engine": "EasyOCR", "message": "百度 OCR 不可用,使用本地 EasyOCR" } } 错误处理 from scripts.ocr import OCR from scripts.baidu_client import BaiduOCRError ocr = OCR() try: result = ocr.recognize(image="/path/to/image.jpg") except BaiduOCRError as e: print(f"百度 OCR 错误:{e.error_code} - {e.error_msg}") except Exception as e: print(f"其他错误:{e}") FAQ Q:我没有编程经验,如果使用时出现错误该怎么办? 只要将云文档链接发送给 AI,让它自行排查和解决问题。 示例提示:请根据技能使用文档排查和解决问题。 技能使用文档:https://my.feishu.cn/docx/Gjy0djSado5YqVxzO6ecYbOmn4g?from=from_copylink Q:如何获取百度 OCR API 凭证? 前往百度云控制台 搜索 "OCR" 或 "文字识别" 创建应用并启用所需的 OCR 服务 从 "我的应用" 中获取 API Key 和 Secret Key Q: "百度 OCR 调用失败" 但没有自动切换到本地回退? 检查是否禁用了回退:ocr = OCR(use_fallback=False) # 回退禁用 Q:EasyOCR 初始化慢? 第一次运行需要下载模型(~100MB)。预初始化: from scripts.local_ocr import local_ocr local_ocr._init_reader() # 预热 Q:如何处理 Base64 图像? 导入 base64 # 读取图像并转换为 Base64 with open("image.jpg", "rb") as f: img_base64 = base64.b64encode(f.read()).decode() result = ocr.recognize(image=img_base64, api="general_basic") Q:如何指定输出格式? # 表格 - 返回 Excel result = ocr.recognize(image="table.jpg", api="table", request_type="excel") # 表格 - 返回 JSON result = ocr.recognize(image="table.jpg", api="table", request_type="json") Q:Web 图像识别失败? Web 图像必须是公开可访问的。确保: 图像 URL 是公开可达的 防火墙允许出站 80/443 尝试