4. 法律文书自动生成:基于模板与AI的起诉状、答辩状、律师函等文书的半自动/全自动生成
法律文书生成,说白了就是让机器替你写状子。我见过太多律所的新人,入职第一周全在套模板、改当事人信息,眼睛都快看瞎了。其实这部分工作,完全可以用AI来分担。
我个人习惯把文书生成分成两档:半自动和全自动。半自动适合复杂案件,律师需要把控关键事实;全自动适合批量案件,比如催收函、批量起诉状。你想想看,一个律所一年处理几千件信用卡纠纷,每份起诉状都手写?那效率太低了。
4.1 模板引擎:老本行,但别小看它
先聊模板。很多律师觉得模板就是Word里改改名字,其实不是。真正的模板引擎,是结构化的。
我在项目中遇到过一家律所,他们用Python的Jinja2模板引擎做文书生成。效果不错,但踩了个坑——模板里嵌入了太多业务逻辑,导致维护成本飙升。后来我建议他们把模板拆成三层:
| 层级 | 内容 | 示例 |
|---|---|---|
| 固定文本层 | 法律条文、格式套话 | “依据《民法典》第XXX条” |
| 变量占位层 | 当事人信息、案号、金额 | {{ plaintiff_name }}、{{ case_no }} |
| 条件逻辑层 | 根据案件类型选择不同段落 | {% if case_type == '合同纠纷' %}...{% endif %} |
这样做的好处是,模板本身是干净的,律师也能看懂。我曾经见过一个模板里写了200行if-else,那已经不是模板了,那是代码。
4.2 AI生成:从填空到创作
模板能解决80%的重复劳动,但剩下20%需要AI。比如答辩状,每个案件的抗辩理由都不一样,模板没法穷尽。
我建议的做法是:AI生成初稿 + 人工审核。具体流程如下:
核心逻辑:先让AI理解案件事实,再基于事实生成文书段落,最后用模板组装成完整文书。
为什么会这样设计?因为直接让AI写整篇文书,它容易“编造”法律依据。我踩过这个坑——有一次AI生成了一份起诉状,引用的法条编号是对的,但内容完全驴唇不对马嘴。从那以后,我坚持让AI只生成事实描述部分,法律依据部分必须从模板库中匹配。
4.3 技术实现:一个简单的流水线
嗯,这里要注意。文书生成不是调一个API就完事了,它是一条流水线。我画了一张图,你看一眼就明白了:
你看,整个流程其实不复杂。关键在第二步——AI事实解析。这一步做不好,后面全是垃圾。
4.4 代码示例:一个简单的起诉状生成器
我写个Python示例,你感受一下。这不是完整代码,但核心逻辑都在里面了:
# 起诉状生成器 - 简化版
from jinja2 import Template
import openai # 假设你接入了AI接口
class ComplaintGenerator:
def __init__(self, template_path):
with open(template_path, 'r', encoding='utf-8') as f:
self.template = Template(f.read())
def extract_facts(self, case_text):
"""用AI提取案件关键事实"""
prompt = f"从以下案件描述中提取:原告、被告、案由、事实经过、诉讼请求。\n{case_text}"
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
# 解析返回的JSON结构
return self._parse_response(response)
def generate(self, case_text):
facts = self.extract_facts(case_text)
# 填充模板
complaint = self.template.render(
plaintiff=facts['plaintiff'],
defendant=facts['defendant'],
cause=facts['cause'],
facts=facts['facts'],
claims=facts['claims']
)
return complaint
# 使用示例
generator = ComplaintGenerator('complaint_template.j2')
doc = generator.generate("张三借了李四10万元,约定2023年1月还款,至今未还...")
print(doc)
避坑指南:我曾经在AI解析环节吃过亏——直接让AI输出整段文字,结果格式乱七八糟。后来我强制要求AI输出JSON结构,再用代码解析,稳定多了。
4.5 半自动 vs 全自动:怎么选?
我建议你根据案件类型来定:
- 全自动适用场景:批量催收函、信用卡纠纷起诉状、格式化的律师函。这类文书变化少,模板能覆盖95%以上。
- 半自动适用场景:复杂民商事案件、知识产权纠纷、劳动争议。这类案件事实差异大,需要律师介入调整。
你想想看,如果一个离婚案件的起诉状全自动生成,连感情破裂的描述都是AI编的,你敢直接提交吗?反正我不敢。
4.6 质量保障:别让AI背锅
最后说一个血泪教训。我曾经帮一家律所做文书生成系统,上线第一天就出事了——AI把被告的名字写错了,把“张三”写成了“张四”。虽然概率只有0.1%,但一旦发生,就是执业事故。
警告:AI生成的文书必须经过人工复核!建议在系统中加入“强制审核”节点,未经律师确认的文书不能导出或打印。
我的做法是:在生成环节加入关键字段校验。比如当事人姓名、身份证号、案号,这些字段必须从结构化数据源读取,不允许AI自由发挥。说白了,AI只负责写“肉”,骨架必须由模板和数据库来定。
嗯,关于文书生成,今天就聊这么多。记住一句话:模板保下限,AI提上限,人工守底线。这三者缺一不可。