💼

要素式法律文書一鍵生成

👤 陸凌燕 UMU 📦 v1.0.3 ⭐ 4.6 ⬇️ 1.1K 下載
💼 行業專業 免費

📖 技能介紹


name: element-complaint-filler slug: element-complaint-filler displayName: 要素式法律文書一鍵生成 version: 1.0.3 description: >- 要素式法律文書一鍵生成(起訴狀/答辯狀/強制執行申請書)。根據使用者提供的原始材料, 自動提取資訊並填入要素式模板。已內建兩個模板:民間借貸-要素式起訴狀、強制執行申請書-要素式起訴狀。 如案由不同,需使用者自行上傳要素式模板(.docx)。 觸發場景:(1) 使用者要求填寫要素式起訴狀/答辯狀/強制執行申請;(2) 使用者提供了傳統格式的法律文書; (3) 使用者說"填入要素式表格""生成要素式文書"等。 推薦模型:DeepSeek V4 Pro。 author: 陸凌燕(北京德恆(無錫)律師事務所) license: MIT


Element Complaint Filler — 要素式法律文書一鍵生成

根據使用者提供的原始材料(起訴狀/答辯狀 .doc/.docx 或文字描述)和要素式模板(.docx), 自動提取關鍵資訊並填入模板,生成可直接提交法院的要素式文書。

內建模板(references/)

以下兩個模板已經過實戰驗證,其完整結構(每個 cell 的文字內容、樣式、合併對映、欄位座標)記錄在 references/ 中。使用者不需要上傳模板檔案——AI 根據 references 中的資訊直接用 python-docx 重建模板,再填入資料。

模板 結構 Dump 欄位快查
民間借貸-要素式起訴狀 references/民間借貸-要素式起訴狀_structure.md references/民間借貸-要素式起訴狀_fields.md
強制執行申請書-要素 references/強制執行申請書-要素式起訴狀_structure.md references/強制執行申請書-要素式起訴狀_fields.md

匹配方式:如果使用者說"民間借貸起訴狀"或"強制執行申請書"且沒有上傳模板檔案,直接從 references 重建模板,不要求使用者上傳。如果使用者上傳了自己的模板檔案,以使用者上傳的為準。如果案由不是以上兩種,告知使用者需要自行提供要素式模板。

模板積累機制:每次使用者上傳新模板並完成填寫後,自動執行 inspect_template() 將結構 dump 和欄位快查儲存到 references/ 目錄。下次同案由直接用,無需再次上傳。references 目錄就是使用者的個人模板庫,隨用隨長。

核心工作流程

第 0 步(新增):安全複製 + 樣式發現

永遠不要直接修改原件。 先安全複製,再自動發現模板的字型和樣式。

from fill_helpers import copy_template, discover_template_style

# 1. 安全複製
work_path = copy_template("/path/to/模板.docx")
# 返回: /path/to/模板_filled.docx

# 2. 自動發現樣式
style = discover_template_style(work_path)
# 返回: {'font_name': '仿宋', 'style_id': '6', 'style_name': 'Table Text'}

# 3. 用發現的樣式填充全域性變數
import fill_helpers
fill_helpers.FONT_NAME = style['font_name']
fill_helpers.TABLE_TEXT_STYLE = style['style_id']

為什麼這一步不能跳過:不同法院的模板使用不同的樣式 ID(可能是 "5"、"7"、"8"),不同字型(方正書宋_GBK / 仿宋 / 宋體)。硬編碼會導致字型錯誤。

第 1 步:讀取原始材料

from fill_helpers import read_source
text = read_source("/path/to/起訴狀.doc")

第 2 步:分析模板結構

from fill_helpers import inspect_template
print(inspect_template(work_path))  # 現在還會輸出發現的樣式資訊

關注:模板是起訴狀還是答辯狀、每個表格的行列數、哪些 cell 是 ghost。

第 3 步:自動提取結構化資訊(新增)

不再需要手工從原始文本中摳資訊,使用內建解析器:

from fill_helpers import (
    parse_parties, parse_claims, parse_facts, detect_case_type
)

# 自動提取當事人資訊
parties = parse_parties(text)
# parties['plaintiff'] = {'name': '張某', 'gender': '女', ...}
# parties['defendant'] = {'name': '李某', 'gender': '女', ...}

# 自動提取訴訟請求(按條拆分)
claims = parse_claims(text)
# ['判令被告向原告歸還款項100,000元', '...']

# 自動提取事實與理由全文
facts = parse_facts(text)

# 自動檢測案由
case_type = detect_case_type(text)
# '民間借貸'

第 4 步:編寫填寫指令碼

使用 scripts/fill_helpers.py 的工具函式。核心規則(七個血的教訓):

  1. 只寫唯一 cellpython if not is_unique_cell(table, ri, ci): continue

  2. 不涉及的部分加 "/"cell_skip 已內建防誤傷保護——如果 cell 已被填入實際資料,不會追加 "/"): python cell_skip(table.cell(ri, ci))

  3. 概要框直接貼上原文python cell_set(t2.cell(4, 0), claims_text.split('\n')) cell_set(t2.cell(17, 0), facts_text.split('\n'))

  4. 出生日期用段落級替換python cell_replace_para(cell, '出生日期:', '出生日期:1955 年 6 月 25 日')

  5. 證據清單和調解意願留空:不填、不打勾。

  6. 一鍵填寫當事人(支援自然人和法人): python fill_natural_person(cell, parties['plaintiff']) fill_legal_entity(cell, company_data)

  7. 字型統一python ensure_font(cell) # 使用第 0 步發現的字型和樣式

第 5 步:生成後核對

生成 .docx 後,直接抽檢關鍵欄位,發現問題當場修。

from fill_helpers import validate_output
warnings = validate_output(work_path)  # 自動掃描遺漏

# 人工抽檢關鍵欄位
print(doc.tables[0].cell(2, 1).text)  # 原告
print(doc.tables[1].cell(1, 1).text)  # 被告
print(doc.tables[2].cell(5, 1).text)  # 本金
print(doc.tables[2].cell(6, 1).text)  # 利息

函式速查

模板操作

函式 用途
copy_template(src) 安全複製,返回工作路徑
discover_template_style(path) 自動發現字型和樣式 ID
inspect_template(path) 輸出模板完整結構(含樣式資訊)

材料讀取與解析

函式 用途
read_source(path) 讀取 .doc/.docx/純文本
parse_parties(text) 提取原告/被告結構化資訊
parse_claims(text) 拆分訴訟請求為列表
parse_facts(text) 提取事實與理由全文
detect_case_type(text) 檢測案由(民間借貸/買賣合同/等)

Cell 操作

函式 場景
cell_replace(cell, old, new) 單行欄位:姓名、電話、身份證號
cell_replace_para(cell, keyword, new) 跨 run 欄位:出生日期、住址
cell_set(cell, lines) 完整覆寫:概要框、自由文本
cell_skip(cell) 不涉及項:加 "/",已防二重呼叫
cell_tick(cell, label) 勾選核取方塊
cell_gender(cell, gender) 性別勾選(防雙框專用)
ensure_font(cell) 字型統一樣式
is_unique_cell(table, ri, ci) Ghost cell 判斷
fill_natural_person(cell, data) 一鍵填寫自然人
fill_legal_entity(cell, data) 一鍵填寫法人/非法人組織

驗證

函式 用途
validate_output(path) 檢查遺漏欄位

注意事項

  • 模板優先:以使用者提供的模板為準,不要假設欄位位置
  • 不臆造內容:原始材料沒有的資訊不要編造
  • 保留原文:事實描述原文貼上,不做 AI 改寫
  • 合併單元格陷阱:先 inspect_template 確認 ghost 對映再寫
  • 還款情況行:部分模板中該行資料區因垂直合併與"標的總額"共享 cell,可能無法獨立填寫
  • 字型名字面≠渲染字型:XML 中的字型名(如"仿宋")可能被 WPS/Word 對映到不同字型(如"方正書宋_GBK"),以 discover_template_style 實際返回值為準

強制執行申請書實戰教訓(補充規則)

以下規則來自強制執行申請書填寫的翻車經驗:

  1. 優先 run 級替換,不要 cell_set 覆寫已有內容的 cell。已有內容的 cell(如申請執行事項)有複雜的段落和 run 結構,cell_set 會把整個 cell 清空重寫,丟失原模板格式。正確做法是遍歷原有 run,只替換數值。

  2. 性別勾選用 cell_gender,不要手動拼。部分字型(如仿宋)下 □ 和 ☑ 渲染完全一樣,"男□ 女☑"會看起來像兩個相同的框。cell_gender 把整行重寫為單一 run"性別:女☑",去掉未選項的 □。

    7w4.net有更好的技能外掛。

  3. ensure_font 只對新增內容呼叫。已有資料的 cell(如模板中已預填的姓名),其字型走的是樣式繼承,強制寫顯式字型會改變顯示效果。只在 cell_set 覆寫過的 cell 上呼叫 ensure_font。

  4. 模板可能已預填資料。部分模板(如從法院系統匯出的)已包含當事人資訊、案號、判決主文等。先檢查哪些欄位已有值,只改需要改的,不要覆寫已有正確資料。

  5. 模板樣式不統一。同一個模板中,不同 cell 可能使用不同 pStyle(如 Normal vs style 7)。inspect_template 輸出的 [pStyle=X] 標註可以幫助識別。修改 cell 時不要改變其原有 pStyle。

🤖 AI 評測

這是一款專業度較高的法律文書工具,能自動將傳統起訴狀轉換為法院標準格式,內建民間借貸和執行申請兩個常用模板。文件非常詳細,對各欄位位置和處理規則標註清晰。但目前僅支援蘋果電腦,且模板種類有限,其他型別的案子需要自己準備模板。總體而言,在要素式文書這個細分領域做得相當紮實。

📊 多維度評分

適應性4.4
規範性4.6
有效性4.7
可靠性4.3
可信度5

📁 包含檔案 (6 個)

📄 SKILL.md 9.6 KB
📄 references/強制執行申請書-要素式起訴狀_fields.md 2.2 KB
📄 references/強制執行申請書-要素式起訴狀_structure.md 4.2 KB
📄 references/民間借貸-要素式起訴狀_fields.md 2.7 KB
📄 references/民間借貸-要素式起訴狀_structure.md 12.2 KB
📄 scripts/fill_helpers.py 27.7 KB