Sugon-Scnet 医疗场景发票 OCR 技能
本技能封装了医疗场景发票识别的 OCR 服务,通过单一接口即可调用 2 种识别能力,高效提取发票内容。
⚠️ 数据安全与合规警告
医疗住院发票和医疗费用结算单包含姓名、身份证号、社保卡号、医保号、诊断、住院信息、费用明细等高度敏感的个人健康信息(PHI/PII)。
使用本技能时,你指定的图片文件将被上传至第三方 OCR 服务提供商 Scnet(https://api.scnet.cn) 进行处理。请确保:
- 你已阅读并理解 Scnet 的隐私政策与数据处理条款;
- 你已获得票据相关主体的明确授权,或具有合法处理该数据的依据;
- 你的使用符合适用的隐私保护、数据安全及医疗健康相关法律法规;
- 不在未脱敏的情况下共享、转发或公开发送包含敏感信息的识别结果。
如不确定是否有权处理某份票据,请勿使用本技能。
功能特性
- 医疗住院发票识别:支持识别医疗住院的发票信息。
- 医疗费用结算单识别:支持识别医疗费用结算单信息,包括费用项目、金额、支付方式等信息。
前置配置
⚠️ 重要:使用前需要申请 Scnet API Token
申请 API Token
- 访问 Scnet 官网 注册/登录
- 在控制台申请 API 密钥(格式:
sc-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) - 复制密钥备用
配置 Token
手动配置(推荐)
- 在技能目录下创建
config/.env文件,内容如下:
# ===== Sugon-Scnet OCR API 配置 =====
# 申请地址:https://www.scnet.cn
SCNET_API_KEY=your_scnet_api_key_here
# API 基础地址(一般无需修改)
SCNET_API_BASE=https://api.scnet.cn/api/llm/v1
- 添加:
SCNET_API_KEY=你的密钥 - 设置文件权限为 600(仅所有者可读写) ⚠️ 安全警告:切勿将 API Key 直接粘贴到聊天对话中,否则可能被记录或泄露。
Token 更新
Token 过期后调用会返回 401 或 403 错误。更新方法:重新申请 Token 并替换 config/.env 中的 SCNET_API_KEY。
依赖安装
本技能需要 Python 3.6+ 和 requests 库。请运行以下命令:
pip install requests
使用方法
参数说明
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| ocrType | string | 是 | 识别类型枚举。必须为以下之一:• MEDICAL_INPATIENT_INVOICE(医疗住院发票)• MEDICAL_EXPENSE_SETTLEMENT(医疗费用结算单) |
| filePath | string | 是 | 待识别图片的本地绝对路径。支持 jpg、png、pdf 等常见格式。 |
命令行调用示例
python .claude/skills/medical_invoice_scene_ocr/scripts/main.py MEDICAL_INPATIENT_INVOICE /path/to/test.jpg
在 AI 对话中使用
用户必须明确表达识别意图并提供本地文件路径,例如:
- “请使用医疗住院发票 OCR 识别 /Users/name/Downloads/test.jpg”
- “请帮我识别医疗费用结算单,文件路径是 /Users/name/Downloads/settlement.jpg”
AI 在触发本技能前,应:
- 确认用户已了解数据将上传至 Scnet;
- 确认用户提供的文件路径确实为本地医疗票据文件;
- 获得用户明确同意后再执行。
不应仅因用户提到“发票”“结算单”“识别图片”等关键词就自动调用本技能。
AI 调用建议
为避免触发 API 速率限制(10 QPS),请串行调用本技能,即等待前一个识别完成后再发起下一个请求。 如果使用 OpenClaw 的 exec 工具,建议设置 timeout 或 yieldMs 参数,让命令同步执行,避免多个命令同时运行导致并发。
配置选项
编辑 config/.env 文件:
| 变量名 | 默认值 | 说明 |
|---|---|---|
| SCNET_API_KEY | 必需 | Scnet API 密钥 |
| SCNET_API_BASE | https://api.scnet.cn/api/llm/v1 | API 基础地址(一般无需修改) |
输出
- 标准输出:识别结果的 JSON 数据,结构与 API 文档一致,位于
data字段内。 - 识别结果位于 data[0].result[0].elements 中,具体字段取决于 ocrType。
- 错误信息:如果发生错误,会输出以
错误:开头的友好提示。
注意事项
- 本技能调用的 OCR API 有 10 QPS 的速率限制。
- 如果遇到 429 错误,请等待 2-3 秒后重试,不要连续发起请求。
- 建议在调用前确保图片已准备就绪,避免因网络问题导致重复调用。
故障排除
| 问题 | 解决方案 |
|---|---|
| 配置文件不存在 | 创建 config/.env 并填入 Token(参考前置配置) |
| API Key 无效/过期 | 重新申请 Token 并更新 .env 文件 |
| 文件不存在 | 检查提供的文件路径是否正确 |
| 网络连接失败 | 检查网络连接或防火墙设置 |
| 不支持的文件类型 | 确保文件扩展名为允许的类型(参考 API 文档) |
| 401/403/Unauthorized | Token 无效或过期,重新申请并配置 |
| 429 Too Many Requests | 请求过于频繁,技能会自动等待并重试(最多 3 次)。若持续失败,请降低调用频率或联系服务方提高限额。 |
