130 lines
3.9 KiB
Markdown
130 lines
3.9 KiB
Markdown
# AI意图识别系统
|
||
|
||
## 概述
|
||
|
||
系统现在使用AI大模型来理解用户的自然语言输入,而不是依赖固定的正则表达式匹配。这使得用户可以用更自然、更灵活的方式与系统交互。
|
||
|
||
## 工作流程
|
||
|
||
1. **用户输入** → 用户在AI对话框中输入自然语言指令
|
||
2. **AI意图识别** → 系统调用大模型(DeepSeek/通义千问)理解用户意图
|
||
3. **结构化输出** → AI返回JSON格式的指令和参数
|
||
4. **执行指令** → 系统根据识别结果执行相应操作
|
||
5. **回退机制** → 如果AI识别失败,自动回退到原有的正则匹配
|
||
|
||
## 支持的指令类型
|
||
|
||
### 1. 导航类指令
|
||
- `goWarning` - 打开预警中心
|
||
- `goProfile` - 打开个体画像
|
||
- `goComprehensive` - 打开综合报告
|
||
- `goInterventionTask` - 打开干预任务
|
||
- `goReport` - 打开报告列表/详情
|
||
- `goMessage` - 打开消息/收件箱
|
||
- `goNotice` - 打开通知公告
|
||
- `goDashboard` - 打开监区看板
|
||
- `goTagFilter` - 打开标签筛选
|
||
- `goVoice` - 打开语音助手
|
||
|
||
### 2. 分析类指令
|
||
- `analyzeReport` - 分析报告
|
||
- `analyzeProfile` - 分析个体画像
|
||
- `analyzeData` - 分析平台数据
|
||
|
||
### 3. 控制类指令
|
||
- `clearChat` - 清空对话记录
|
||
- `toggleChat` - 展开/收起对话框
|
||
- `goBack` - 返回上一页
|
||
- `goHome` - 返回首页
|
||
|
||
## 使用示例
|
||
|
||
### 原来的方式(正则匹配)
|
||
```
|
||
用户输入:"打开张三的报告"
|
||
系统:使用正则 /打开\s*([^\s的]{1,32})\s*的?报告/ 匹配
|
||
结果:✅ 能识别
|
||
|
||
用户输入:"帮我看看张三的报告"
|
||
系统:正则无法匹配
|
||
结果:❌ 无法识别
|
||
```
|
||
|
||
### 现在的方式(AI理解)
|
||
```
|
||
用户输入:"打开张三的报告"
|
||
AI理解:用户想查看张三的报告
|
||
返回:{"action":"goReport","params":{"keyword":"张三"},"confidence":0.95}
|
||
结果:✅ 能识别
|
||
|
||
用户输入:"帮我看看张三的报告"
|
||
AI理解:用户想查看张三的报告
|
||
返回:{"action":"goReport","params":{"keyword":"张三"},"confidence":0.9}
|
||
结果:✅ 能识别
|
||
|
||
用户输入:"我想了解一下李四的情况"
|
||
AI理解:用户想查看李四的个体画像
|
||
返回:{"action":"goProfile","params":{"keyword":"李四"},"confidence":0.85}
|
||
结果:✅ 能识别
|
||
|
||
用户输入:"有没有严重的预警需要处理"
|
||
AI理解:用户想查看严重级别的预警
|
||
返回:{"action":"goWarning","params":{"warningLevel":"严重"},"confidence":0.9}
|
||
结果:✅ 能识别
|
||
```
|
||
|
||
## 优势
|
||
|
||
1. **更自然的交互** - 用户可以用日常语言表达需求
|
||
2. **更强的容错性** - 不需要记住精确的指令格式
|
||
3. **更好的扩展性** - 添加新指令只需更新配置,无需写正则
|
||
4. **智能参数提取** - AI自动从语句中提取关键信息
|
||
5. **回退保障** - AI识别失败时自动使用原有的正则匹配
|
||
|
||
## 技术实现
|
||
|
||
### 核心方法
|
||
|
||
1. **parseUserIntentWithAI(userInput)** - AI意图识别
|
||
- 输入:用户的自然语言
|
||
- 输出:结构化的指令JSON
|
||
- 使用:DeepSeek API / 通义千问 API
|
||
|
||
2. **executeAIIntent(intent)** - 执行识别出的指令
|
||
- 输入:AI返回的指令JSON
|
||
- 输出:是否成功执行
|
||
- 功能:根据action和params执行相应操作
|
||
|
||
3. **sendAiChat()** - 修改后的消息发送方法
|
||
- 先尝试AI意图识别
|
||
- 识别成功则执行指令
|
||
- 识别失败则回退到正则匹配
|
||
|
||
### AI Prompt设计
|
||
|
||
系统使用精心设计的prompt来引导AI:
|
||
- 明确定义所有可用指令
|
||
- 要求返回标准JSON格式
|
||
- 包含置信度评分
|
||
- 提供示例来提高准确性
|
||
|
||
### 置信度阈值
|
||
|
||
- 置信度 >= 0.6:执行指令
|
||
- 置信度 < 0.6:忽略结果,回退到正则匹配
|
||
|
||
## 配置
|
||
|
||
AI意图识别使用与AI对话相同的配置:
|
||
- DeepSeek API(默认)
|
||
- 通义千问 API(可选)
|
||
|
||
无需额外配置,开箱即用。
|
||
|
||
## 未来扩展
|
||
|
||
1. 支持多轮对话上下文
|
||
2. 支持复合指令(一次执行多个操作)
|
||
3. 支持模糊查询和智能推荐
|
||
4. 支持自定义指令学习
|