From 5f5eefd37b97734bbfcda3bc41908965152e80db Mon Sep 17 00:00:00 2001 From: BBIT-Kai <2911862937@qq.com> Date: Thu, 30 Oct 2025 10:39:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AF=81=E7=85=A7=E8=AF=86?= =?UTF-8?q?=E5=88=AB=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bbit_ai/app/agent/licenseImageAgent.py | 63 ++++++++++++------- .../web-antd/src/views/cv/license/index.vue | 4 ++ 2 files changed, 43 insertions(+), 24 deletions(-) diff --git a/bbit_ai/app/agent/licenseImageAgent.py b/bbit_ai/app/agent/licenseImageAgent.py index 22902b2..252ec17 100644 --- a/bbit_ai/app/agent/licenseImageAgent.py +++ b/bbit_ai/app/agent/licenseImageAgent.py @@ -56,30 +56,45 @@ def idcard(state: State): state["content"] = analyze_card( state, """ - 你是一个 OCR 信息提取专家,请从图片中识别出身份证的全部可见信息,并输出严格的 JSON 格式。 - 要求: - 1. 无论是正面还是反面,都要识别所有字段。 - 2. 如果某个字段无法辨认,请将值设为 null。 - 3. 只输出 JSON,不要输出任何解释或多余内容。 - 4. 严格保持 JSON 格式,键名统一为英文。 - 5. "side" 字段为身份证方向,填写:人像面 或 国徽面。 - - JSON 示例格式: - { - "side": "国徽面", - "name": "持证人姓名", - "gender": "性别", - "ethnicity": "民族", - "id_number": "身份证号", - "birth_date": "出生日期", - "address": "住址", - "issuing_authority": "签发机关", - "valid_period_start": "有效期开始日期", - "valid_period_end": "有效期结束日期", - "notes": "其他可见文字或备注" - } - - 请确保输出的 JSON 可以被严格解析。 +你是一个 OCR 信息提取专家,请从图片中识别出身份证的全部可见信息,并输出严格的 JSON 格式。 + +要求: +1. 无论是正面还是反面,都要识别所有字段。 +2. 如果某个字段无法辨认,请将值设为 null。 +3. 只输出 JSON,不要输出任何解释或多余内容。 +4. 严格保持 JSON 格式,键名统一为英文。 +5. "side" 字段为身份证方向,填写:"人像面" 或 "国徽面"。 +6. 对于身份证正面(含地址)的情况,请在提取 "address" 的基础上,将地址进一步拆分为以下字段: + - "xian": 县、区、市级行政单位,如“宜州区”、“石泉县” + - "xiang": 乡、镇、街道,如“怀远镇”、“城关镇” + - "cun": 村或社区名称,如“李家寨村”、“明星村” + - "zu": 屯或组信息,如“拉瓦屯”、“十五组”。 + 若地址中同时出现“组”和“号”,仅保留“组”部分,不要包含“号”;例如: + “十五组31号” → "zu": "十五组" + “拉瓦屯62号” → "zu": "拉瓦屯" + 门牌号(如“31号”、“62号”)不需要单独提取,保留在原始 "address" 字段中。 + 若某部分在地址中无法明确识别,请将该字段值设为 null。 + +JSON 示例格式: +{ + "side": "国徽面", + "name": "持证人姓名", + "gender": "性别", + "ethnicity": "民族", + "id_number": "身份证号", + "birth_date": "出生日期", + "address": "住址", + "xian": "县或区", + "xiang": "乡或镇", + "cun": "村或社区", + "zu": "组或门牌号", + "issuing_authority": "签发机关", + "valid_period_start": "有效期开始日期", + "valid_period_end": "有效期结束日期", + "notes": "其他可见文字或备注" +} + +请确保输出的 JSON 可以被严格解析。 """, ) return state diff --git a/vue/apps/web-antd/src/views/cv/license/index.vue b/vue/apps/web-antd/src/views/cv/license/index.vue index da37523..02604ed 100644 --- a/vue/apps/web-antd/src/views/cv/license/index.vue +++ b/vue/apps/web-antd/src/views/cv/license/index.vue @@ -67,6 +67,10 @@ const keyMap: Record = { card_type: '卡种', result: '识别结果', issuer_country: '发卡国家', + xian: '县', + xiang: '乡', + cun: '村', + zu: '组', }; // 递归替换函数