validate_credit_code
何时使用
- 用户提供了企业统一社会信用代码,需要验证格式合法性
- 从用户消息中提取疑似信用代码的 18 位字符串并逐一校验
- fuzzy_search 返回候选后,校验 credit_code 再调用企业查询工具
如何使用
本工具为 Dify 代码执行器格式,入口函数 main(dict) -> dict。
输入参数
{"action": "check", "code": "91350100M000100Y43"}
或
{"action": "extract", "text": "我司信用代码是91350100M000100Y43,请查一下"}
返回值
- check 模式:{"valid": true} 或 {"valid": false}
- extract 模式:{"results": [["91350100M000100Y43", true], ...]}
校验规则(GB 32100-2015)
- 18 位,字符集为 0-9 + A-Z 排除 I/O/S/V/Z(共 31 个字符)
- CHARS = "0123456789ABCDEFGHJKLMNPQRTUWXY"
- 权重(前 17 位):[1,3,9,27,19,26,16,17,20,29,25,13,8,24,10,30,28]
- 校验码 = CHARS[(31 - (Σ 值×权重) % 31) % 31]