feat: 完善来源标注徽章功能和配置优化

后端改进:
- 改进 addCitationsToResponse 函数,更激进地添加来源标注
- 支持识别所有有实质内容的行(长度>5)
- 优化特殊行的识别逻辑,保留'依据引用'、'分析'、'建议'等内容行
- 修复 go.mod 中 lib/pq 的依赖问题
- 优化字符串拼接效率(使用 fmt.Fprintf)
- 添加 Scanner 错误检查

前端改进:
- 优化徽章样式,增大尺寸和间距
- 改用 bg-blue-100 和 bg-orange-100 背景
- 添加 hover 效果和 cursor-pointer

配置优化:
- LLM 服务地址改为 IP(192.168.1.6:18888),支持外部调用
- 本地服务保持 localhost,性能更优

测试:
- 新增 6 个单元测试用例,全部通过
- 验证清单项、列表项、陈述句等各种格式的标注

文档:
- 添加实现方案文档
- 添加用户使用指南
This commit is contained in:
freedakgmail
2026-06-22 20:50:18 +08:00
parent 73d1e00303
commit 95dee5a70e
10 changed files with 614 additions and 51 deletions
+190
View File
@@ -0,0 +1,190 @@
# 来源标注徽章使用指南
## 概述
合规审查助手现在支持**来源标注徽章**功能,可以清楚地显示每条信息的来源:
- 🔵 **蓝色徽章**(知识库):内容来自知识库
- 🟠 **橙色徽章**AI建议):内容来自AI分析和建议
## 用户视角
### 看到的效果
当您提问时,AI的回复中会自动显示来源徽章:
```
劳动合同签订
是否所有员工均签订了书面劳动合同? 🔵 知识库:劳动合同法
合同内容是否符合《劳动合同法》的相关规定? 🔵 知识库:劳动合同法
是否存在劳动合同未明确约定工作地点、工作内容、劳动报酬等情况? 🔵 知识库:劳动合同法
劳动合同变更
是否有合法的变更理由和程序? 🟠 AI建议
变更内容是否符合法律规定? 🟠 AI建议
```
### 徽章含义
| 徽章 | 含义 | 说明 |
|------|------|------|
| 🔵 知识库:文献名 | 来自知识库 | 这句话引用了知识库中的法规或文献 |
| 🟠 AI建议 | AI分析 | 这是AI基于知识库的分析、解读或建议 |
### 来源说明块
每个回复的末尾都会有一个**来源说明块**,总结本次回复中使用的所有来源:
```
---
> **来源说明**
>
> **知识库引用:**
> - 【劳动合同法】
> - 【劳动法】
>
> **AI建议:**
> - 清单项目的整理和分类
> - 合规检查的建议
```
## 应用场景
### 场景1:合规审查清单
**问题**:"生成一份劳动用工合规审查清单"
**回复特点**
- 清单项目会标注来源(知识库或AI建议)
- 每个检查点都有明确的来源标注
- 末尾有完整的来源汇总
**用途**
- 了解哪些检查项来自法律要求(知识库)
- 了解哪些是专业建议(AI建议)
- 评估清单的权威性和可信度
### 场景2:法规解读
**问题**:"《劳动合同法》第三十二条是什么意思?"
**回复特点**
- 法规原文标注为知识库来源
- 解读和案例标注为AI建议
- 用户可以区分事实和解释
**用途**
- 快速了解法规原文
- 获得专业的解读和应用建议
- 提高理解的准确性
### 场景3:风险扫描
**问题**:"我们的员工管理制度有哪些合规风险?"
**回复特点**
- 风险识别可能来自知识库(法律要求)
- 改进建议来自AI建议
- 清晰区分问题和解决方案
**用途**
- 了解哪些是法律硬性要求
- 了解哪些是最佳实践建议
- 制定有针对性的改进计划
## 常见问题
### Q1: 为什么有些内容没有徽章?
**A**: 系统会自动为所有陈述句、问题和列表项添加徽章。如果某些内容没有徽章,可能是:
- 标题或空行(不需要标注)
- 代码块(保持原样)
- 引用块(来源说明块)
### Q2: 知识库和AI建议的区别是什么?
**A**:
- **知识库**:直接来自法律法规或官方文献,是硬性要求
- **AI建议**:基于知识库的分析、解读、建议,是参考意见
### Q3: 可以信任AI建议吗?
**A**: AI建议是基于知识库和AI模型的分析,应该:
- 作为参考意见,不作为最终决策依据
- 对于重要事项,建议咨询专业律师
- 结合实际情况进行判断
### Q4: 如何查看完整的知识库原文?
**A**: 点击蓝色的知识库徽章,可以查看:
- 引用的文献名称
- 相关的条款编号
- 完整的原文摘录
### Q5: 为什么同一个问题的回复中既有知识库也有AI建议?
**A**: 这是正常的。通常:
- 事实性内容(如法律要求)标注为知识库
- 分析性内容(如建议、解读)标注为AI建议
- 两者结合才能提供完整的答案
## 最佳实践
### 1. 优先关注知识库内容
在做合规决策时,优先参考标注为知识库的内容,因为这些是法律硬性要求。
### 2. 验证重要信息
对于关键的合规事项:
1. 查看知识库来源
2. 点击徽章查看原文
3. 咨询专业律师确认
### 3. 理解AI建议的价值
AI建议虽然不是法律要求,但提供了:
- 专业的解读和分析
- 最佳实践建议
- 实施建议和注意事项
### 4. 保存来源说明
在使用回复内容时,保存末尾的来源说明块,作为决策的依据记录。
## 反馈和改进
如果您对来源标注有以下反馈,欢迎提出:
- 标注不准确或遗漏
- 徽章显示不清楚
- 需要更详细的来源信息
- 其他改进建议
## 技术细节(开发者)
### 标注格式
```markdown
内容 [[知识库:文献名称]]
内容 [[AI建议]]
```
### 前端渲染
- 标注会自动转换为彩色徽章
- 支持点击查看详细信息
- 响应式设计,适配各种屏幕
### 后端处理
- 系统提示词要求LLM添加标注
- 后端自动补充缺失的标注
- 确保100%的内容都有来源标注
## 相关文档
- [实现方案](./CITATION_BADGES_IMPLEMENTATION.md)
- [系统提示词](./server/internal/handler/chat_llm.go)
- [前端组件](./apps/web/src/components/ui/gov-markdown.tsx)