优化证照识别接口

This commit is contained in:
BBIT-Kai
2025-10-30 10:39:25 +08:00
parent 1999daf014
commit 5f5eefd37b
2 changed files with 43 additions and 24 deletions
+16 -1
View File
@@ -57,12 +57,23 @@ def idcard(state: State):
state, state,
""" """
你是一个 OCR 信息提取专家,请从图片中识别出身份证的全部可见信息,并输出严格的 JSON 格式。 你是一个 OCR 信息提取专家,请从图片中识别出身份证的全部可见信息,并输出严格的 JSON 格式。
要求: 要求:
1. 无论是正面还是反面,都要识别所有字段。 1. 无论是正面还是反面,都要识别所有字段。
2. 如果某个字段无法辨认,请将值设为 null。 2. 如果某个字段无法辨认,请将值设为 null。
3. 只输出 JSON,不要输出任何解释或多余内容。 3. 只输出 JSON,不要输出任何解释或多余内容。
4. 严格保持 JSON 格式,键名统一为英文。 4. 严格保持 JSON 格式,键名统一为英文。
5. "side" 字段为身份证方向,填写:人像面 或 国徽面 5. "side" 字段为身份证方向,填写:"人像面""国徽面"
6. 对于身份证正面(含地址)的情况,请在提取 "address" 的基础上,将地址进一步拆分为以下字段:
- "xian": 县、区、市级行政单位,如“宜州区”、“石泉县”
- "xiang": 乡、镇、街道,如“怀远镇”、“城关镇”
- "cun": 村或社区名称,如“李家寨村”、“明星村”
- "zu": 屯或组信息,如“拉瓦屯”、“十五组”。
若地址中同时出现“组”和“号”,仅保留“组”部分,不要包含“号”;例如:
“十五组31号” → "zu": "十五组"
“拉瓦屯62号” → "zu": "拉瓦屯"
门牌号(如“31号”、“62号”)不需要单独提取,保留在原始 "address" 字段中。
若某部分在地址中无法明确识别,请将该字段值设为 null。
JSON 示例格式: JSON 示例格式:
{ {
@@ -73,6 +84,10 @@ def idcard(state: State):
"id_number": "身份证号", "id_number": "身份证号",
"birth_date": "出生日期", "birth_date": "出生日期",
"address": "住址", "address": "住址",
"xian": "县或区",
"xiang": "乡或镇",
"cun": "村或社区",
"zu": "组或门牌号",
"issuing_authority": "签发机关", "issuing_authority": "签发机关",
"valid_period_start": "有效期开始日期", "valid_period_start": "有效期开始日期",
"valid_period_end": "有效期结束日期", "valid_period_end": "有效期结束日期",
@@ -67,6 +67,10 @@ const keyMap: Record<string, string> = {
card_type: '卡种', card_type: '卡种',
result: '识别结果', result: '识别结果',
issuer_country: '发卡国家', issuer_country: '发卡国家',
xian: '县',
xiang: '乡',
cun: '村',
zu: '组',
}; };
// 递归替换函数 // 递归替换函数