news 2026/5/21 22:28:24

【项目实训(个人8)】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【项目实训(个人8)】

继续进行法律文书智能摘要系统的开发,新增了几个功能,并优化了用户体验

概述

本次开发为法律文书智能摘要系统新增了两项核心功能。其一是摘要版本管理,支持同一文档的多版本摘要生成、存储、对比和回滚。用户在生成摘要时,系统自动为每次生成(普通或流式)创建独立版本,记录生成参数、生成者及备注;版本管理组件提供卡片式列表、分页筛选、双版本差异对比(三维度统计与逐字高亮)以及安全回滚(生成新版本不覆盖历史)。该功能适用于需要反复调优摘要质量的场景,例如律师团队针对同一份判决书尝试不同侧重点(事实争点、法律适用、裁判逻辑)生成多版摘要,通过对比选择最优版本;亦可用于校对工作流,回溯某一历史版本并作为新基准继续迭代。价值在于:将摘要生成从“一次性输出”升级为“可追溯、可比较、可复用”的知识资产,显著降低了重复劳动成本,提升了内容质量控制的可操作性。

其二是AI助手对话历史功能。系统新增了对话会话与消息的两张数据表,后端提供完整的 REST 管理接口,前端重构了法智助手页面,增加了左侧可展开的对话历史侧边栏。用户每次咨询法律问题,对话自动保存(用户消息即时落库,AI 流式回复完成后保存并附带参考文书来源)。会话列表按更新时间倒排,自动提取首条消息前 30 字符为标题,支持重命名、删除以及点击历史会话完整恢复上下文。该功能满足了用户在多轮法律咨询中随时中断、事后回溯、跨主题切换的需求,结合相对时间显示与悬停编辑/删除操作,实现了类似于专业聊天工具的对话管理体验。

此外,本次开发还完成了多项优化与问题修复:文书上传增加了解析中状态与旋转动画反馈;摘要结果面板增加一键复制按钮,可复制概括+摘要+关键要素;流式生成添加了基于指数退避的自动重试机制(最多2次),解决了 SSE 连接中断问题;版本管理组件添加快捷时间筛选(今天/本周/本月/全部)。修复方面,纠正了文书选择器中示例文书筛选逻辑(原误用文件名前缀判断,现改为is_sample布尔字段),并修复了按钮排版溢出问题(添加flex-wrap: wrap)。

新增功能

1.摘要版本管理

功能描述:支持同一文档的多版本摘要生成、存储、对比和回滚。用户可查看历史摘要、对比不同版本差异、选择最优版本。

应用场景:

  • 用户对摘要不满意,调整参数后重新生成

  • 需要对比不同时间点的摘要差异

  • 团队协作中保留摘要修改历史

价值分析:

  • 提供摘要生成过程的完整记录

  • 支持"后悔"操作,提升用户体验

  • 为算法优化提供对比数据

步骤涉及文件具体内容
数据库设计backend/app/database.py创建summary_versions表,包含版本号、内容、生成参数、生成者、当前版本标记等字段
数据层函数backend/app/database.py实现save_summary_versionget_summary_versionsget_summary_versionrollback_summary_versiondiff_summary_versions五个核心函数
数据模型backend/app/models/schemas.py新增SummaryVersionItemSummaryVersionDetailVersionDiffResponseRollbackResponseGenerateSummaryRequest等 Pydantic 模型
后端APIbackend/app/api/summary.py添加/versions(列表)、/versions/{id}(详情)、/versions/{id}/rollback(回滚)、/versions/diff(对比)端点,并修改流式端点自动保存版本
前端API层frontend/src/api/summaryVersions.ts封装listSummaryVersionsgetSummaryVersionrollbackToVersioncompareVersionsgenerateSummaryWithVersion等 TypeScript API 函数及类型定义
版本管理组件frontend/src/components/SummaryVersionManager.vue实现包含版本列表、筛选、预览、对比、回滚、可拖拽宽度的完整 Drawer 组件
集成SummaryPanelfrontend/src/components/SummaryPanel.vue在摘要结果工具栏添加“版本管理”按钮,引入SummaryVersionManager组件
问题修复frontend/src/components/SummaryVersionManager.vue
backend/app/api/summary.py
修复 Drawer 无法关闭(开启close-on-click-modal)、流式生成不保存版本(添加result_holder拦截逻辑)

功能模块具体功能说明
版本生成自动版本创建每次生成摘要(普通/流式)自动创建新版本,版本号自动递增
生成参数记录记录每次生成的自定义参数(如长度、侧重点)
生成者追踪记录生成者用户名(默认anonymous
版本备注支持为版本添加备注说明
版本列表卡片式展示显示版本号、时间、生成者、概括预览、参数标签
分页浏览默认每页10条,支持翻页
多条件筛选按生成者、起始日期、结束日期组合筛选
状态标识当前版本显示绿色“当前”标签,回滚版本显示备注标签
版本预览详情查看在新 Drawer 中展示完整内容(概括、摘要、关键要素)
元信息展示版本号、生成时间、生成者、是否当前版本
版本对比双版本选择通过下拉菜单选择任意两个版本(A/B)
变更统计三维度统计:概括变更率、摘要变更率、关键要素增减
差异高亮新增内容(绿色)、删除内容(红色)、修改内容(黄色)
关键要素对比分别列出新增要素和删除要素
版本回滚回滚到任意版本选择历史版本,确认后回滚
安全机制弹出确认对话框,提示不会覆盖历史版本
创建新记录回滚操作生成新的版本记录,保留完整操作痕迹
交互体验可拖拽宽度左侧拖拽手柄可调整 Drawer 宽度(400px~1200px)
多种方式关闭关闭按钮、点击遮罩、按 Esc 键均可关闭
悬停反馈版本卡片悬停高亮,当前版本绿色边框,选中版本蓝色背景

2.AI助手对话历史功能

核心目标是将用户的每一次法律咨询对话持久化存储,支持会话的创建、恢复、删除与自动标题生成。在架构层面,后端数据库新增chat_sessionschat_messages两张表,并实现了 6 个 CRUD 函数;后端 API 层新增 5 个 REST 端点,覆盖会话列表、详情、创建、删除及消息保存;前端 API 层封装了对应的 TypeScript 类型与调用函数;UI 层对AssistantView.vue进行了完整重构,新增左侧可展开的对话历史侧边栏(宽度 260px,移动端适配 200px),实现了从数据持久化到用户交互的全链路闭环。

在功能体验上,系统实现了自动保存机制:用户发送消息后立即保存至数据库,AI 的流式回复在完整生成后自动保存,并同时记录参考的文书来源(sources)。会话列表按更新时间倒序排列,每条会话自动提取第一条消息前 30 个字符作为标题,当前活跃会话以蓝色背景高亮显示。时间采用相对格式(“刚刚”“5分钟前”“3小时前”等),删除操作需二次确认并级联删除所有关联消息。数据流转清晰:用户发消息 → 首次创建会话 → 保存用户消息 → LLM 流式回复 → 保存 AI 回复及来源 → 刷新会话列表 → 用户点击历史会话即可完整恢复对话内容。这一功能显著提升了用户在多轮法律咨询中的连续性与回溯效率。

层级改动文件核心内容
数据库backend/app/database.py新增chat_sessionschat_messages表;实现 6 个 CRUD 函数
后端 APIbackend/app/api/assistant.py新增 5 个 REST 端点(列表/详情/创建/删除/保存消息)
前端 APIfrontend/src/api/assistant.ts新增 TypeScript 类型定义 + 5 个 API 函数
前端 UIfrontend/src/views/AssistantView.vue重构页面,新增左侧对话历史侧边栏(可展开,260px/200px 响应式)

加入了历史记录改名功能,交互方式:

操作说明
点击铅笔图标悬停会话项时右侧出现编辑图标,点击后标题变为可编辑输入框
Enter 确认输入新名称后按回车保存
Escape 取消按Esc退出编辑模式,恢复原标题
失去焦点保存点击输入框外区域自动保存
空值校验空标题时会提示"标题不能为空",不保存

视觉设计

状态效果
默认仅显示标题和时间
悬停右侧渐显铅笔(编辑)和垃圾桶(删除)图标
编辑中标题替换为蓝色边框输入框,自动全选文本,隐藏操作按钮

优化功能

1.文书上传进度反馈

修改文件 : FileUpload.vue

- 新增 parsing 状态和 statusMsg 文本提示
- 上传完成后显示"文书解析中..."状态指示器(带旋转动画)
- 批量上传队列状态新增"解析中"( parsing )选项,队列行会显示解析阶段
- 解析完成后自动更新为"完成"状态

2.摘要结果添加一键复制

修改文件 : SummaryPanel.vue

- 在摘要结果工具栏新增"复制摘要"按钮
- 复制内容包括:概括 + 详细摘要 + 关键要素(带编号)
- 复制成功/失败均有 ElMessage 提示

3.修复SSE连接中断处理

修改文件 : SummaryPanel.vue

- 流式生成添加自动重试机制(默认最多2次)
- 连接中断时显示"连接中断,正在重试 (X/2)..."提示
- 重试间隔使用指数退避(1.5s × 重试次数)
- 超过最大重试次数后显示错误信息

4.添加快捷时间筛选

修改文件 : SummaryVersionManager.vue

- 在筛选面板顶部新增快捷时间按钮组:今天 / 本周 / 本月 / 全部
- 点击快捷按钮自动设置起止日期并立即刷新列表
- 当前选中的快捷按钮高亮显示(primary类型)
- 重置筛选时同时重置快捷选择状态

修复问题

1.选择文书时示例文书按钮无效

DocumentSelector.vue 的示例筛选逻辑使用了错误的条件。实际文档数据中的 is_sample 字段才是标识示例文书的,但当前代码是用文件名是否以 "示例-" 开头来判断。

问题出在 DocumentSelector.vue 的筛选逻辑——之前用 d.filename.startsWith('示例-') 来判断示例文书,但实际数据是通过 is_sample 布尔字段标识的。已更正为 d.is_sample ,现在切换"示例文书"开关可正确过滤。

2.按钮排版溢出

添加 flex-wrap: wrap 属性,当容器宽度不足以容纳所有按钮时,按钮会自动换行排列,不会超出范围。


工作小结

工作类别具体内容涉及文件/模块
新增功能摘要版本管理(版本生成、列表、预览、对比、回滚、交互体验)backend/app/database.pyschemas.pyapi/summary.py
frontend/src/api/summaryVersions.tscomponents/SummaryVersionManager.vueSummaryPanel.vue
新增功能AI 助手对话历史(会话/消息表、CRUD、侧边栏、自动保存、标题编辑、删除)backend/app/database.pyapi/assistant.py
frontend/src/api/assistant.tsviews/AssistantView.vue
优化功能文书上传进度反馈(解析中状态、旋转动画、队列状态)frontend/src/components/FileUpload.vue
优化功能摘要结果一键复制(概括+摘要+要素)frontend/src/components/SummaryPanel.vue
优化功能SSE 连接中断自动重试(指数退避、最多2次、提示消息)frontend/src/components/SummaryPanel.vue
优化功能版本管理快捷时间筛选(今天/本周/本月/全部,按钮高亮)frontend/src/components/SummaryVersionManager.vue
问题修复示例文书筛选逻辑错误(is_sample字段替换文件名前缀判断)frontend/src/components/DocumentSelector.vue
问题修复按钮排版溢出(添加flex-wrap: wrap相关组件样式

在本次迭代中,团队围绕“版本控制”与“对话持久化”两条主线完成了从数据库设计到前端交互的全链路开发。摘要版本管理模块共涉及 8 个步骤,包括创建summary_versions表、实现 5 个数据层函数、新增 5 个 Pydantic 模型、添加 4 个 REST 端点、封装 TypeScript API 并开发了完整的SummaryVersionManager.vue组件(支持可拖拽宽度、双版本对比、差异高亮、安全回滚等 13 项细分功能)。AI 助手对话历史模块新增了chat_sessionschat_messages表及 6 个 CRUD 函数,后端提供 5 个 REST 端点,前端重构AssistantView.vue,实现了自动保存、会话管理、标题编辑、级联删除等功能,并优化了相对时间显示与响应式布局。两个模块均通过了流式生成场景下的版本保存与对话恢复验证。

同时,本次工作系统性地提升了用户体验和系统鲁棒性。文书上传进度反馈解决了批量处理时“无感知等待”的问题;一键复制功能满足了用户摘录摘要结果的高频需求;SSE 重试机制显著降低了网络波动导致的生成失败率;快捷时间筛选优化了版本管理页面的操作效率。修复的两个问题虽然细微,但直接影响了核心流程(示例文书过滤错误会导致用户无法正确加载样例)和界面美观(按钮溢出破坏布局)。整体来看,本次开发不仅补齐了知识沉淀与交互回溯的核心短板,也在细节打磨上体现了产品化思维。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/21 22:26:28

86、【Agent】【OpenCode】bash 工具提示词(完结)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除 背景 上篇 blog 【Agent】【OpenCode】bash 工…

作者头像 李华
网站建设 2026/5/21 22:23:06

用了Elementor的WordPress网站存在的10大问题

Elementor是强大的创作者工具,如果你是专业人员,确实让建站变得非常高效,但用了它之后,网站也会存在一些特定的问题,尤其在长期维护和性能方面。 以下是使用 Elementor 构建 WordPress 网站时最常见的10大问题&#x…

作者头像 李华