继续进行法律文本智能摘要系统的开发
概述
本次法律文本智能摘要系统的开发聚焦于三个核心方向:提升批量化文书处理能力、增强法规知识检索的智能化水平,以及优化用户阅读与批注体验。通过新增批量摘要生成、法规知识库集成以及批注与布局优化,系统在自动化处理效率、法律知识支持的深度以及界面交互的直观性方面均实现了显著提升。此次更新旨在应对法律实务中高频、大量、多任务的文档处理场景,同时降低对外部API的依赖,构建一个更自主、更可靠、更贴近实务工作流的智能助手。
在技术实现上,系统保持了轻量、模块化且易于扩展的架构风格。批量摘要功能通过独立的后台任务管理与SQLite持久化存储,实现了任务的创建、跟踪和历史回溯;法规知识库则基于本地LLM与缓存机制,实现了毫秒级的条文检索与未覆盖查询的自动补全。页面优化与批注增强进一步消除了界面冗余,确保核心文书阅读区域的沉浸性与批注交互的即时可见性。
新增功能
1.批量摘要生成

功能描述: 用户可一次性选择多份文档,指定角色和摘要参数,系统自动批量生成所有文档的摘要,并提供进度跟踪和结果预览。
应用场景:
-
律师处理大量案件材料时,需要快速了解所有案件核心内容
-
法官助理需要快速审查多个关联案件
-
法学研究者需要对大量判决书进行系统性分析
价值分析:
-
大幅提升批量处理效率,减少重复操作
-
支持研究性场景下的规模化分析
-
预期可节省用户60%以上的操作时间
技术路径:
-
后端新增批量任务API,支持异步处理
-
引入Celery或类似的任务队列框架
-
前端增加任务进度展示面板
-
支持断点续传和失败重试

后端文件
batch_summarizer.py 批量任务管理服务,包含 BatchTaskManager 类,负责任务创建、进度追踪、状态管理和后台线程处理
batch_summary.py REST API 路由,提供 5 个端点:创建任务、查询状态、任务列表、取消任务、SSE 流式推送
main.py 注册批量摘要路由
前端文件
BatchSummaryDialog.vue 批量摘要对话框组件,包含创建任务、实时进度、任务历史三个 Tab DocumentsListView.vue 集成批量摘要按钮和对话框
documents.ts 新增批量摘要 API 函数和 TypeScript 类型定义

2.批量摘要的历史记录功能
将批量任务元数据从纯内存存储升级为 SQLite 持久化存储,新增手动保存机制和记录管理界面。
| 决策项 | 选择 | 原因 |
|---|---|---|
| 存储方式 | SQLite | 与现有系统一致,无需新增依赖 |
| 自动保存 vs 手动保存 | 手动保存 | 避免存储大量无效/不完整的任务记录,让用户有选择权 |
| 摘要内容存储 | 引用已有 summaries 表 | 避免数据冗余,通过 doc_id 关联 |
| 删除策略 | 软删除 vs 硬删除 | 硬删除 + CASCADE,简化设计 |
| 备注字段 | 可选 | 方便用户标识不同批次的任务 |
更改内容
| 文件 | 类型 | 说明 |
|---|---|---|
| database.py | 后端修改 | 新增 saved_batch_tasks 和 saved_batch_task_files 表 |
| batch_summary.py | 后端修改 | 新增 4 个 API 端点:save / saved / saved/{id} / saved/{id} delete |
| documents.ts | 前端修改 | 新增 4 个 API 函数和类型定义 |
| BatchSummaryResults.vue | 前端修改 | 新增"保存记录"按钮和保存确认弹窗 |
| SavedRecords.vue | 前端新增 | 已保存记录管理页面(搜索/列表/详情) |
| main.ts | 前端修改 | 新增 /saved-records 路由 |

可以根据需要选择是否保存记录

3.法规知识库集成
这里暂时利用保存的本地数据库
功能描述: 对接外部法律法规数据库,支持在文书阅读和摘要生成过程中实时查询相关法规。
应用场景:
-
阅读文书时即时查看相关法规全文
-
检查引用的法规是否仍然有效
-
了解法规的修订历史和适用变化
价值分析:
-
提供权威的法律依据
-
避免引用失效或修订后的法规
-
增强系统的专业性和权威性
完善计划:
-
对接国家法律法规数据库API或自建法规库
-
实现法规版本管理和时效性标记
-
前端增加法规展示组件
-
支持法规全文搜索

- 零外部依赖 --- 无需注册第三方 API,完全复用现有 LLM 和 SQLite
- 毫秒级响应 --- 种子数据搜索 <50ms
- 智能问答增强 --- 未覆盖的查询自动调用 LLM,结果自动缓存
- LRU 缓存 --- 最多 500 条缓存记录,按命中次数自动淘汰
- 数据准确性保障 --- 种子数据来自官方权威来源,包含状态标记(有效/已废止)
针对没有的条文,方便的加入了llm接口,可以直接询问
优化功能
1.批注优化
根本原因分析 :
通过追踪完整的数据流,发现高亮不显示的原因是:
-
后端 get_thread_annotations 正确将 anchor_range 转换为 anchorRange
-
后端 _convert_annotation_for_frontend 增加了 anchor_range 到 anchorRange 的转换兼容处理
-
前端 CSS 使用了 :deep() 选择器,但对于 v-html 插入的 <mark> 元素不生效
修复方案 :
- 后端数据流修复 - storage_service.py:63-113
-
在 _convert_annotation_for_frontend 中增加 anchor_range → anchorRange 转换
-
处理 JSON 字符串解析和字典类型转换
- 前端样式修复 - ReaderView.vue:463-481
-
添加全局 <style> 块确保 v-html 插入的 <mark> 元素能正确应用样式
-
内联样式直接设置 background-color 和 border-bottom
-
全局样式提供交互效果(hover 加粗边框、active 外发光)

修复原文高亮不显示的问题,而且高亮内容在详情页面也能同步显示
美化高亮颜色,变为美观的浅色
批注也可以没有具体内容,只有原文高亮
可以选择高亮或是下划线

2.页面布局优化
移除文书阅读模式页面底部的分析面板组件,该面板包含关键词分析、结构化信息展示及类案推荐等功能模块。移除原因是这些分析内容已在文书详情页面中完整呈现,在阅读模式下重复显示会造成界面冗余。移除操作不影响系统其他功能模块的正常运行,保持文书阅读模式页面的布局完整性和用户体验流畅性。
对于法规知识库的查询,集成在左侧作为悬浮页面,可以在阅读中实时查询法规

工作汇总
| 功能类别 | 功能模块 | 功能描述 | 关键技术实现与要点 |
|---|---|---|---|
| 新增功能 | 批量摘要生成 | 用户可一次选择多份文档,指定角色和参数,系统自动生成所有摘要,并提供进度跟踪与结果预览。 | - BatchTaskManager 后台任务管理(创建、状态、线程处理) - REST API 端点(创建、查询、列表、取消、SSE推送) - 前端 BatchSummaryDialog 与 DocumentsListView 集成 |
| 批量摘要历史记录 | 将批量任务从内存存储升级为 SQLite 持久化,支持手动保存、记录管理(搜索/列表/详情)。 | - 新增 saved_batch_tasks 与 saved_batch_task_files 表 - 保存、查询、删除 API 及前端 SavedRecords.vue 页面 - 软删除 vs 硬删除选择:硬删除 + CASCADE |
|
| 法规知识库集成 | 对接本地法规数据库,支持文书阅读与摘要生成时实时查询相关法规;未覆盖查询自动调用LLM并缓存结果。 | - 完全本地化(无外部API依赖) - 种子数据搜索 <50ms - LRU缓存(最多500条) - 法规状态标记(有效/已废止) - LLM自动补查与结果缓存 | |
| 优化功能 | 批注优化 | 修复原文高亮不显示问题,支持无文字内容的纯高亮批注,提供高亮/下划线样式切换,美化颜色为浅色。 | - 后端统一 anchor_range → anchorRange 转换 - 前端全局样式处理 v-html 插入的 <mark> 元素 - 支持高亮/下划线切换,浅色主题视觉优化 |
| 页面布局优化 | 移除文书阅读模式底部的冗余分析面板(关键词、结构化信息、类案推荐),将法规查询集成至左侧悬浮面板。 | - 移除重复面板,保持阅读区沉浸式体验 - 左侧悬浮法规查询面板,支持阅读中实时检索 - 不影响其他功能模块正常运行 |
小结
此次系统升级不仅补齐了批量处理与法规知识库两大关键业务短板,也通过批注与布局的细节优化显著提升了日常使用的流畅度与专业感。尤其是批量摘要的手动保存机制与状态追踪设计,避免了无效任务对存储系统的污染,同时保留了用户对记录管理的完整控制权。法规知识库的完全本地化实现,也为后续构建更丰富的法律知识图谱奠定了低耦合、高可用的技术基础。
未来,系统将继续在知识图谱、角色管理等方面深入演进。当前版本已具备在生产环境中支撑法律文档高效处理的核心能力,能够明显降低法律从业者在文书阅读、摘要提取与法规查找上的重复劳动成本。