# OCR 模块部署指南 ## 部署步骤 ### 1. 添加到主 POM 已完成 ✅ - `yudao-module-ocr` 已添加到 `oneos-backend/pom.xml` 的 modules 中。 ### 2. 配置 Nacos 在 Nacos 配置中心创建配置文件:`ocr-server-dev.yaml` ```yaml server: port: 48090 # OCR 配置 ocr: default-provider: baidu baidu: app-id: ${OCR_BAIDU_APP_ID} api-key: ${OCR_BAIDU_API_KEY} secret-key: ${OCR_BAIDU_SECRET_KEY} ``` ### 3. 配置环境变量 在部署环境中设置以下环境变量: ```bash export OCR_BAIDU_APP_ID=your-app-id export OCR_BAIDU_API_KEY=your-api-key export OCR_BAIDU_SECRET_KEY=your-secret-key ``` 或在 Nacos 的 `common-dev.yaml` 中配置。 ### 4. 启动服务 ```bash cd oneos-backend/yudao-module-ocr/yudao-module-ocr-server java -jar target/yudao-module-ocr-server.jar ``` 或使用 Maven: ```bash cd oneos-backend mvn spring-boot:run -pl yudao-module-ocr/yudao-module-ocr-server ``` ### 5. 验证服务 访问 Swagger 文档: ``` http://localhost:48090/doc.html ``` 查看 OCR 识别接口是否正常。 ## 权限配置 在系统管理中添加权限: - 权限标识:`ocr:vehicle-license:recognize` - 权限名称:行驶证识别 - 所属菜单:OCR 识别管理 ## 集成到其他模块 ### 1. 添加依赖 在需要使用 OCR 的模块(如 `yudao-module-asset-server`)的 `pom.xml` 中添加: ```xml cn.iocoder.cloud yudao-module-ocr-api ${revision} ``` ### 2. 使用 Feign 调用 创建 Feign 客户端(如果需要跨服务调用): ```java @FeignClient(name = "ocr-server", contextId = "ocrApi") public interface OcrApi { @PostMapping("/admin-api/ocr/vehicle-license") CommonResult recognizeVehicleLicense( @RequestParam("file") MultipartFile file, @RequestParam(value = "provider", required = false) String provider ); } ``` ### 3. 直接注入使用(同一服务内) ```java @Service public class VehicleService { @Resource private OcrService ocrService; public void processVehicleLicense(byte[] imageData) { VehicleLicenseResult result = ocrService.recognizeVehicleLicense(imageData); // 处理识别结果 } } ``` ## 监控和日志 ### 日志配置 在 `logback-spring.xml` 中添加: ```xml ``` ### 监控指标 建议监控以下指标: - OCR 识别成功率 - OCR 识别耗时 - OCR API 调用次数 - 错误率和错误类型 ## 故障排查 ### 1. 识别失败 检查: - 百度 OCR 凭证是否正确 - 图片格式是否支持(JPG、PNG、BMP) - 图片大小是否超过 4MB - 网络连接是否正常 ### 2. 服务启动失败 检查: - Nacos 配置是否正确 - 依赖是否完整 - 端口是否被占用 ### 3. 性能问题 优化建议: - 添加识别结果缓存 - 实现请求限流 - 考虑使用异步识别 ## 成本优化 ### 1. 百度 OCR 计费 - 行驶证识别:0.015 元/次 - 每月前 1000 次免费 ### 2. 优化建议 - 实现结果缓存,避免重复识别 - 前端压缩图片,减少传输时间 - 批量识别时使用队列异步处理 ## 安全建议 1. **API 密钥管理**:使用配置中心加密存储 2. **接口鉴权**:确保只有授权用户可以调用 3. **图片校验**:验证上传图片的合法性 4. **日志脱敏**:不要在日志中记录敏感信息 5. **限流保护**:防止恶意调用消耗配额 ## 后续扩展 1. 添加驾驶证识别 2. 添加身份证识别 3. 集成腾讯、阿里云 OCR 4. 实现识别结果的人工校验功能 5. 添加识别历史记录查询