项目实训——功能篇(2)完结
·
1.概述:完全完成了关于法律文书智能生成的所有功能
在法律文书智能摘要系统的基础上,我们进一步开发了法律文书智能生成功能。用户只需选择已解析的法律文书,系统就能自动提取关键信息,并根据用户选择的文书类型(起诉状、答辩状、上诉状、强制执行申请书),调用大模型生成规范的法律文书。
2.功能
包括如下功能:
| AI 自动提取 | 从文书中自动识别当事人、案号、法院等信息 |
| 动态表单 | 不同文书类型显示不同的填写表单 |
| 一键生成 | 填写确认后调用 DeepSeek 生成完整文书 |
| 复制导出 | 支持一键复制和导出 Word 文档 |
3.关键代码
3.1 后端:文书生成器基类
python
# backend/app/services/document_base.py
from typing import Dict, Any
from datetime import datetime
from app.services.llm_service import get_llm_service
class DocumentBaseGenerator:
"""文书生成器基类"""
def __init__(self):
self.llm = get_llm_service()
def get_current_date(self) -> str:
return datetime.now().strftime("%Y年%m月%d日")
async def call_llm(self, system_prompt: str, user_prompt: str) -> str:
response = await self.llm.chat([
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_prompt}
])
return response
3.2 后端:起诉状生成器
python
# backend/app/services/document_qisuzhuang.py
class QiSuZhuangGenerator(DocumentBaseGenerator):
def get_form_fields(self) -> list:
return [
{"name": "plaintiff", "label": "原告姓名", "type": "text", "required": True},
{"name": "defendant", "label": "被告姓名", "type": "text", "required": True},
{"name": "claims", "label": "诉讼请求", "type": "textarea", "required": True},
{"name": "facts_and_reasons", "label": "事实与理由", "type": "textarea", "required": True},
{"name": "court_name", "label": "受理法院", "type": "text", "required": True},
{"name": "date", "label": "起诉日期", "type": "date", "default": "today"},
]
async def generate(self, doc_id: str, form_data: Dict) -> str:
# 构建 Prompt 调用 LLM
# ... 实现细节
3.3 后端:AI 自动提取服务
python
# backend/app/services/document_extractor.py
class DocumentExtractor:
async def extract(self, doc_id: str, doc_type: str) -> Dict:
"""从文书中自动提取关键信息"""
full_text = self._get_document_content(doc_id)
prompt = f"""
请从以下法律文书中提取关键信息:
文书内容:{full_text[:2000]}
需要提取的字段:
- plaintiff: 原告姓名或名称
- defendant: 被告姓名或名称
- claims: 诉讼请求
- court_name: 法院名称
只返回JSON格式。
"""
response = await self.llm.chat([...])
return json.loads(response)
3.4 后端:API 路由
python
# backend/app/api/document_generation.py
@router.post("/generate")
async def generate_document(request: GenerateDocumentRequest):
"""生成法律文书"""
generator = get_doc_generator()
document = await generator.generate(
doc_id=request.doc_id,
doc_type=request.doc_type,
form_data=request.form_data
)
return {"document": document}
3.5 前端:文书生成页面核心逻辑
typescript
// frontend/src/views/DocumentGenerate.vue
async function selectDocType(docType: string) {
selectedType.value = docType
// 1. 获取表单字段定义
const fieldsRes = await fetch(`/api/documents/generate/form-fields/${docType}`)
formFields.value = await fieldsRes.json()
// 2. AI 自动提取并填充
await autoFillForm(docType)
}
async function autoFillForm(docType: string) {
extracting.value = true
const response = await fetch('/api/documents/extract-form-fields', {
method: 'POST',
body: JSON.stringify({ doc_id: docId, doc_type: docType })
})
const data = await response.json()
// 填充表单
for (const [key, value] of Object.entries(data.extracted_data)) {
if (value && formData.value.hasOwnProperty(key)) {
formData.value[key] = value
}
}
extracting.value = false
}
4.功能预览:



这页内容由大模型从选定的原文档中提取,可以修改。

5.技术亮点
| 多类型支持 | 起诉状、答辩状、上诉状、强制执行申请书 |
| 动态表单 | 不同文书类型自动切换不同表单字段 |
| AI 自动提取 | 从原文书中智能提取信息,减少手动输入 |
| DeepSeek 集成 | 高质量中文法律文书生成 |
| 一键导出 | 支持复制和 Word 文档导出 |
6.后续优化总结
后续可以考虑支持更多文书类型、批量生成、生成后在线编辑以及历史记录与修改后与原文对比
更多推荐


所有评论(0)