From 1c072360d46712bdc1111967575593d7d532e501 Mon Sep 17 00:00:00 2001 From: fengruixiang <474182370@qq.com> Date: Fri, 15 May 2026 14:37:27 +0800 Subject: [PATCH] update --- .../前后5000分析/summary_claude-sonnet-4.5.md | 38 +++++++++ .../summary_claude-sonnet-4.5.yml | 0 .../summary_gemini-3-flash-preview.md | 58 +++++++++++++ .../summary_gemini-3-flash-preview.yml | 0 .../{ => 前后5000分析}/summary_llm.yml | 0 .../前后5000分析/summary_qwen2.5-7b.md | 53 ++++++++++++ .../前后5000分析/summary_qwen2.5-7b.yml | 39 +++++++++ .../前后5000分析/summary_qwen3-8b.md | 81 +++++++++++++++++++ .../{ => 前后5000分析}/summary_qwen3-8b.yml | 0 hk_case_extractor.py | 53 ++++++++++-- 10 files changed, 317 insertions(+), 5 deletions(-) create mode 100644 en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_claude-sonnet-4.5.md rename en_cases_hkcfa/2007_HKCFA_6/{ => 前后5000分析}/summary_claude-sonnet-4.5.yml (100%) create mode 100644 en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_gemini-3-flash-preview.md rename en_cases_hkcfa/2007_HKCFA_6/{ => 前后5000分析}/summary_gemini-3-flash-preview.yml (100%) rename en_cases_hkcfa/2007_HKCFA_6/{ => 前后5000分析}/summary_llm.yml (100%) create mode 100644 en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen2.5-7b.md create mode 100644 en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen2.5-7b.yml create mode 100644 en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen3-8b.md rename en_cases_hkcfa/2007_HKCFA_6/{ => 前后5000分析}/summary_qwen3-8b.yml (100%) diff --git a/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_claude-sonnet-4.5.md b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_claude-sonnet-4.5.md new file mode 100644 index 0000000..01e2a26 --- /dev/null +++ b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_claude-sonnet-4.5.md @@ -0,0 +1,38 @@ +针对提供的案件原文 `case.json`,我对提取内容的准确度评价为:**极高(Excellent)**。 + +提取内容完整且精确地反映了判决书的核心要素,无实质性错误。以下是详细分析: + +### 1. 基础信息准确性 + +* **当事人 (Plaintiff/Defendant):** 完全准确。提取内容正确识别了上诉人(Applicant)为 **MO YUK PING**,被上诉人(Respondent)为 **HONG KONG SPECIAL ADMINISTRATIVE REGION**。 +* **司法管辖 (Jurisdiction):** 完全准确。`HKCFA` 对应 **Court of Final Appeal of the HKSAR**。 + +### 2. 案由与对象 (Case Reason & Object) + +* **准确性:** 极高。 +* **分析:** 提取内容准确指出申请人是针对 **CACC No. 26 of 2006** 的判决提出上诉许可申请,涉及 **串谋诈骗 (Conspiracy to defraud)** 和 **串谋妨碍司法公正 (Conspiracy to pervert the course of public justice)** 两项罪名。 + +### 3. 判决结果 (Judgment Result) + +* **准确性:** 极高。 +* **核心细节点拨:** * **串谋妨碍司法公正罪 (Charge 3):** 提取内容正确指出该项申请被**驳回 (Dismissed)**,因为法院同意上诉法庭拒绝就相关法律观点(第2至5点)发出证明书,且不认为存在“重大及严重的不公平”。 +* **串谋诈骗罪 (Charge 2):** 提取内容精准捕捉到了“部分准许”的状态——法院准予了上诉许可,但**仅限于 (Limited to)** 已获证明书的法律争议点,即该罪行要件是否符合“法律确定性 (Legal certainty)”的宪法要求。 + + + +### 4. 判决摘要 (Judgment Summary) + +* **准确性:** 极高。 +* **评价:** 中文摘要清晰地梳理了复杂的诉讼流程。它不仅涵盖了判决结论,还准确解释了法院为何拒绝第2至5点理由(认为这些点在案情下不成立或属明显原则),并特别提到了法院准予了“延长时间 (Extend time)”的申请。 + +### 5. 关联实体 (Involved Entities) + +* **准确性:** 准确。 +* **分析:** * 正确识别了上诉委员会成员:**Li CJ**, **Bokhary PJ** (撰写判词者), **Chan PJ**。 +* 正确识别了申请人 **Mo Yuk Ping** 的身份及背景。 + + + +### 总结评价 + +这份提取内容表现出很强的专业法律文本理解能力。它没有混淆“已获上诉法庭证明的观点”与“终审法院最终准予上诉的范围”,并在处理多项控罪的不同处理结果时条理分明。**可以直接作为该案件的摘要或元数据使用。** \ No newline at end of file diff --git a/en_cases_hkcfa/2007_HKCFA_6/summary_claude-sonnet-4.5.yml b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_claude-sonnet-4.5.yml similarity index 100% rename from en_cases_hkcfa/2007_HKCFA_6/summary_claude-sonnet-4.5.yml rename to en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_claude-sonnet-4.5.yml diff --git a/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_gemini-3-flash-preview.md b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_gemini-3-flash-preview.md new file mode 100644 index 0000000..8ffbbd0 --- /dev/null +++ b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_gemini-3-flash-preview.md @@ -0,0 +1,58 @@ +针对提供的案件提取内容,基于 `case.json` 的原文进行准确度评价如下: + +### **总体评价:极高 (Highly Accurate)** + +提取内容非常精准地捕捉了判决书的核心要素,逻辑清晰,法律术语使用得当,完全符合原文。 + +--- + +### **分项评价** + +#### **1. 基础信息 (Plaintiff, Defendant, Jurisdiction)** + +* **评价:** **完全准确**。 +* **依据:** 原文明确列出原告(Applicant)为 **MO YUK PING**,被告(Respondent)为 **HONG KONG SPECIAL ADMINISTRATIVE REGION**。审理法院为 **Court of Final Appeal (HKCFA)**。 + +#### **2. 案件起因与标的 (Case Reason & Object)** + +* **评价:** **完全准确**。 +* **依据:** +* **起因:** 提取内容正确指出申请人针对串谋诈骗(Charge 2)和串谋妨碍司法公正(Charge 3)的定罪申请上诉许可。 +* **标的:** 涵盖了刑事定罪(criminal conviction)以及核心法律争议——法律确定性的宪法权利(constitutional requirement of legal certainty)。 + + + +#### **3. 判决结果 (Judgment Result)** + +* **评价:** **极高**。 +* **细节分析:** 提取内容清晰地将两个控罪的结果分开表述,这非常专业。 +* **Charge 2 (串谋诈骗):** 正确指出法院批准了(Allowed)上诉许可,但**仅限于**已认证的“法律确定性”这一法律观点。 +* **Charge 3 (串谋妨碍司法公正):** 正确指出该项申请被驳回(Dismissed),法院同意上诉法庭拒绝认证其他要点的决定,且认为不存在“实质及严重的不公平”。 + + + +#### **4. 判决摘要 (Judgment Summary)** + +* **评价:** **准确且精炼**。 +* **依据:** 摘要总结了申请人的诉求、法院对法律确定性问题的重视,以及对其他证据性/事实性争点(Points 2-5)的拒绝。 + +#### **5. 涉及实体 (Involved Entities)** + +* **评价:** **完全准确**。 +* **依据:** +* 正确列出了三位法官:**Chief Justice Li**, **Mr Justice Bokhary PJ** (撰写判决书者), **Mr Justice Chan PJ**。 +* 正确识别了上诉法庭(Court of Appeal)作为下级法院的角色。 + + + +--- + +### **改进建议(微调)** + +虽然提取内容已经非常优秀,但有一点细节可以更完美: + +* **角色界定:** 在 `plaintiff` 字段中,虽然 Mo Yuk Ping 是原告性质,但在刑事上诉程序中,更精确的称谓是 **Applicant**(申请人);同理,HKSAR 称为 **Respondent**(答辩人)。不过,目前的提取方式在通用法律框架下也是可以接受的。 + +### **总结结论** + +该提取内容对 `case.json` 的解析**准确度为 100%**。它不仅抓住了案件的事实,还准确区分了不同控罪下截然不同的法律结果。 \ No newline at end of file diff --git a/en_cases_hkcfa/2007_HKCFA_6/summary_gemini-3-flash-preview.yml b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_gemini-3-flash-preview.yml similarity index 100% rename from en_cases_hkcfa/2007_HKCFA_6/summary_gemini-3-flash-preview.yml rename to en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_gemini-3-flash-preview.yml diff --git a/en_cases_hkcfa/2007_HKCFA_6/summary_llm.yml b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_llm.yml similarity index 100% rename from en_cases_hkcfa/2007_HKCFA_6/summary_llm.yml rename to en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_llm.yml diff --git a/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen2.5-7b.md b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen2.5-7b.md new file mode 100644 index 0000000..b7ae1ba --- /dev/null +++ b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen2.5-7b.md @@ -0,0 +1,53 @@ +这份提取内容的准确度极高,但在部分法律细节和实体身份的描述上存在微小偏差。 + +以下是针对各字段的详细评价: + +### 1. 基本信息与当事人 (Plaintiff, Defendant, Jurisdiction) + +* **准确度:优秀** +* **评价**:完全吻合原文。提取内容正确识别了上诉人(Applicant/Plaintiff)为 **MO YUK PING**,答辩人(Respondent/Defendant)为 **HONG KONG SPECIAL ADMINISTRATIVE REGION (HKSAR)**。 +* **微调建议**:在刑事上诉案件中,MO YUK PING 的法律身份通常表述为 "Applicant"(申请人),而非民事诉讼中的 "Plaintiff"(原告)。 + +### 2. 案由与标的 (Case Reason & Object) + +* **准确度:优秀** +* **评价**:准确抓住了核心争议点。申请人确实是针对两项定罪申请上诉许可,其中最关键的法律争议点是“串谋诈骗罪的法律确定性”。 + +### 3. 判决结果 (Judgment Result) + +* **准确度:极高** +* **评价**:清晰地划分了两项控罪的不同处理结果: +* **串谋妨碍司法公正罪 (Charge 3)**:被拒绝上诉许可。 +* **串谋诈骗罪 (Charge 2)**:仅就“法律确定性”这一法律问题准予上诉许可。 + + +* **注意点**:提取内容中提到的“liability issue”(法律责任问题)是准确的,因为这涉及到定罪的合法性基础。 + +### 4. 判决摘要 (Judgment Summary) + +* **准确度:良好** +* **评价**:中文摘要准确概括了案件背景和法院的最终决定。 +* **微修正**:摘要中提到“尽管原审法院未在关键问题上作出明确裁决”,这一表述略有偏差。原文第 2 点提到,上诉法庭拒绝认证部分要点的原因之一是认为“原审法官确实作出了相关裁断”(...the trial judge did make the findings concerned),这与申请人的主张相反。 + +### 5. 关联实体 (Involved Entities) + +* **准确度:中等偏上** +* **评价**: +* **名单完整性**:正确列出了三位大法官以及案件双方当事人。 +* **职责描述偏差**:将三位大法官(Li, Bokhary, Chan)描述为“responsible for **fact-finding**”(负责事实发现)是不准确的。本案是**终审法院上诉委员会**(Appeal Committee)的程序,其职责是**法律审核与决定是否准予上诉许可**,而非初审中的“事实认定(Fact-finding)”。 + + + +--- + +### 总体评价:**92/100** + +**优点**: + +* 成功区分了不同控罪的许可结果。 +* 准确捕捉到了“法律确定性(legal certainty)”这一核心法律论点。 + +**可改进处**: + +* 将法官职责从“事实认定”修正为“审理上诉许可申请”。 +* 在判决摘要中更精确地反映上诉法庭与申请人关于“原审法官是否作出裁断”的分歧点。 \ No newline at end of file diff --git a/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen2.5-7b.yml b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen2.5-7b.yml new file mode 100644 index 0000000..ac865a2 --- /dev/null +++ b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen2.5-7b.yml @@ -0,0 +1,39 @@ +plaintiff: +- MO YUK PING +defendant: +- HONG KONG SPECIAL ADMINISTRATIVE REGION +jurisdiction_code: HKCFA +jurisdiction_name: Court of Final Appeal of the Hong Kong Special Administrative Region +case_location: +- 香港特別行政區 +- Hong Kong Special Administrative Region +case_reason: >- + Applicant Mo Yuk Ping seeks leave to appeal from her conviction of conspiracy to defraud, challenging + the sufficiency of legal certainty regarding the elements of the offence. +case_object: +- leave to appeal +judgment_result: +- charge: Applicant's leave to appeal against conviction for conspiracy to pervert the course of public + justice (liability issue) + result: Denied. The Court of Final Appeal considered that there was no basis for leave to appeal on + this ground. +- charge: Applicant's leave to appeal against conviction for conspiracy to defraud, limited to the question + of whether the elements of the offence are sufficiently precise (liability issue) + result: Granted. The Court of Final Appeal extended time and granted the applicant leave to appeal to + the Court of Final Appeal on this specific point. +judgment_summary: >- + Mo Yuk Ping appealed her conviction for conspiracy to defraud, arguing that the elements of the offence + lacked legal certainty. The Court of Final Appeal considered evidence assessment and constitutional + requirements but denied leave to appeal on most grounds. However, they granted leave to appeal specifically + regarding the sufficiency of legal certainty in defining the elements of the offence. +involved_entities: +- entity_name: Chief Justice Li + reason: Presiding judge in this case, responsible for fact-finding and adjudication. +- entity_name: Mr Justice Bokhary PJ + reason: Presiding judge in this case, responsible for fact-finding and adjudication. +- entity_name: Mr Justice Chan PJ + reason: Presiding judge in this case, responsible for fact-finding and adjudication. +- entity_name: MO YUK PING + reason: Applicant in the case. +- entity_name: HONG KONG SPECIAL ADMINISTRATIVE REGION + reason: Respondent in the case. diff --git a/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen3-8b.md b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen3-8b.md new file mode 100644 index 0000000..14a1288 --- /dev/null +++ b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen3-8b.md @@ -0,0 +1,81 @@ +案件原文: +case.json + +对比以下案件的提取内容,给出准确度评价: +plaintiff: +- MO YUK PING +defendant: +- HONG KONG SPECIAL ADMINISTRATIVE REGION +jurisdiction_code: HKCFA +jurisdiction_name: Court of Final Appeal of the Hong Kong Special Administrative Region +case_location: +- 香港特別行政區 +- Hong Kong Special Administrative Region +case_reason: "Applicant seeks leave to appeal against her conviction for conspiracy to defraud, challenging\ + \ the sufficiency of the offence's elements to meet the constitutional requirement of legal certainty,\ + \ from " +case_object: +- legal certainty of conspiracy to defraud offence +judgment_result: +- charge: Conspiracy to defraud charge sufficiency (liability issue) + result: Allowed. Court granted leave to appeal on the certified point regarding whether the elements + of the offence of conspiracy to defraud are sufficiently precise to satisfy the constitutional requirement + of legal certainty. Court held the elements were not sufficiently precise and required further clarification + to meet legal certainty standards. +judgment_summary: >- + MO YUK PING challenged the sufficiency of Hong Kong's conspiracy to defraud offence elements for legal + certainty. The Court of Final Appeal granted leave to appeal, finding the offence's elements insufficiently + precise, requiring clarification to meet constitutional standards. The court emphasized evidence assessment + and legal certainty principles, citing constitutional requirements. Judgment allowed the appeal on the + certified point, ordering further clarification of the offence's elements. +involved_entities: +- entity_name: Chief Justice Li + reason: Presiding judge in this case, served as member of Appeal Committee responsible for adjudication. +- entity_name: Mr Justice Bokhary PJ + reason: Presiding judge in this case, served as member of Appeal Committee responsible for adjudication. +- entity_name: Mr Justice Chan PJ + reason: Presiding judge in this case, served as member of Appeal Committee responsible for adjudication. +- entity_name: HONG KONG SPECIAL ADMINISTRATIVE REGION + reason: Respondent in this case, representing the government entity involved in the legal proceedings. + + + + +这份提取内容的准确度评价为:**中等偏下 (Low to Moderate)**。 + +虽然提取内容准确识别了案件主体、法院和基本法律争议,但在判决结果(judgment_result)**和**摘要(judgment_summary)部分存在严重的误导性偏差,误将“准予上诉许可”理解为“终审判定罪名违宪”。 + +以下是详细对比评价: + +### 1. 准确部分 (High Accuracy) + +* **当事人 (Plaintiff/Defendant)**:准确。原告(申请人)为 **MO YUK PING**,被告(答辩人)为 **HONG KONG SPECIAL ADMINISTRATIVE REGION**。 +* **管辖权 (Jurisdiction)**:准确。审理法院为香港特别行政区终审法院 (HKCFA)。 +* **相关实体 (Involved Entities)**:准确识别了三位法官及答辩方主体。 + +### 2. 存在瑕疵的部分 (Minor Inaccuracies) + +* **案由 (Case Reason)**:基本准确,但文字在该处中断("from " 后无内容)。 +* **案件目标 (Case Object)**:准确捕捉到了核心争议点,即串谋诈骗罪的“法律确定性”。 + +### 3. 严重错误部分 (Significant Errors) + +* **判决结果 (Judgment Result)**: +* **错误点**:提取内容声称法院判定该罪名元素“不够精确”并“要求进一步澄清”。 +* **事实**:这仅仅是一份**上诉委员会的决定 (Determination)**,其性质是**决定是否准予上诉许可**。法院在该阶段并未对罪名是否违宪下结论,只是认为这是一个具有“可争辩性”的法律点,因此决定**给予上诉许可**以便后续审理。 + + +* **判决摘要 (Judgment Summary)**: +* **错误点**:摘要称“Judgment allowed the appeal”(判决上诉得直)。 +* **事实**:法院仅是准许了申请人就“串谋诈骗”这一项罪名进行上诉(grant leave to appeal),而**驳回**了关于“串谋妨碍司法公正”罪名的上诉许可申请,同时也驳回了基于“实质及严重不公”理由的上诉申请。 + + + +--- + +### 总结建议 + +提取内容混淆了**程序性准许 (Leave to Appeal)**与**实体判决 (Final Judgment)**。 + +> **更正建议:** +> 应当明确此案件并非是对罪名违宪的定论,而是终审法院上诉委员会**同意受理**有关“串谋诈骗罪是否符合法律确定性”的法律争议。同时,申请人针对“串谋妨碍司法公正罪”的上诉申请已被明确拒绝。 \ No newline at end of file diff --git a/en_cases_hkcfa/2007_HKCFA_6/summary_qwen3-8b.yml b/en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen3-8b.yml similarity index 100% rename from en_cases_hkcfa/2007_HKCFA_6/summary_qwen3-8b.yml rename to en_cases_hkcfa/2007_HKCFA_6/前后5000分析/summary_qwen3-8b.yml diff --git a/hk_case_extractor.py b/hk_case_extractor.py index 13e6372..41146a6 100644 --- a/hk_case_extractor.py +++ b/hk_case_extractor.py @@ -483,13 +483,41 @@ class OpenAICompatibleClient: response_data = r.json() content = response_data["choices"][0]["message"]["content"] + # 清理可能的 markdown 代碼塊包裹 + content = self._clean_json_response(content) + try: return json.loads(content) - except json.JSONDecodeError: - # 嘗試剝離可能的 ```json fence - stripped = re.sub(r"^```(?:json)?\s*|\s*```$", "", - content.strip(), flags=re.S) - return json.loads(stripped) + except json.JSONDecodeError as e: + # 如果仍然失敗,打印錯誤信息以便調試 + print(f"JSON 解析失敗,原始內容:\n{content[:500]}", file=sys.stderr) + raise e + + def _clean_json_response(self, content: str) -> str: + """清理模型輸出中可能包含的 markdown 代碼塊標記 + + 處理以下格式: + - ```json\n{...}\n``` + - ```\n{...}\n``` + - {... 前後有空白字符 + """ + content = content.strip() + + # 移除開頭的 ```json 或 ``` + if content.startswith("```"): + # 找到第一個換行符 + first_newline = content.find("\n") + if first_newline != -1: + content = content[first_newline + 1:] + + # 移除結尾的 ``` + if content.endswith("```"): + # 找到最後一個 ``` 之前的換行符 + last_fence = content.rfind("```") + if last_fence != -1: + content = content[:last_fence] + + return content.strip() def chat_json_with_retry(self, system: str, user: str, schema: dict, validator=None, **kw) -> dict: @@ -978,6 +1006,8 @@ SUMMARY_SYSTEM_ZH = """根據已抽取的結構化字段 + 法庭分析段,撰 - 引用了哪些關鍵法律或判例? (4) 最終裁決結果及命令 +**重要:judgment_summary 必須使用中文撰寫。** + 嚴格 ≤300 字。只輸出 JSON。""" # 英文提示詞 @@ -992,6 +1022,8 @@ Four-element structure (must cover all, in coherent single paragraph): - What key laws or precedents were cited? (4) Final judgment and orders +**IMPORTANT: judgment_summary MUST be written in English.** + Strictly ≤500 characters. Output only JSON.""" @@ -1010,6 +1042,17 @@ def _summary_validator(out: dict, lang: str = 'zh') -> tuple[bool, str]: return False, "summary 過短,請完整覆蓋四要素。" else: return False, "summary too short, please cover all four elements." + + # 檢查語言是否正確 + chinese_chars = len(re.findall(r'[\u4e00-\u9fff]', s)) + total_chars = len(s.strip()) + if total_chars > 0: + chinese_ratio = chinese_chars / total_chars + if lang == 'zh' and chinese_ratio < 0.3: + return False, "judgment_summary 必須使用中文撰寫,但檢測到主要為英文內容,請用中文重寫。" + elif lang == 'en' and chinese_ratio > 0.3: + return False, "judgment_summary MUST be written in English, but detected primarily Chinese content. Please rewrite in English." + return True, ""