💼

要素式法律文书一键生成

👤 陆凌燕 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小葱技能站,你的AI助手技能库。

  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