crush-level-web/docs/AiReplySuggestions.md

105 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI建议回复功能实现
## 功能概述
根据Figma设计稿实现了AI建议回复功能用户可以在聊天界面中获取AI生成的回复建议提高聊天效率。
## 实现组件
### 1. AiReplySuggestions.tsx
主要的AI建议回复组件包含以下功能
- 显示多个AI建议选项
- 支持编辑建议内容
- VIP解锁更多功能入口
- 分页导航控制
### 2. useAiReplySuggestions.ts
状态管理Hook处理
- AI建议的获取和管理
- 分页逻辑
- 面板显示/隐藏控制
- **自动刷新机制**当面板打开时收到新AI消息会自动刷新建议
### 3. ChatInput.tsx更新
集成AI建议功能到聊天输入组件
- 添加提示词按钮来触发建议面板
- 处理建议选择和应用
- 管理面板状态
## 设计细节
### 视觉设计
- 遵循Figma设计稿的视觉样式
- 使用毛玻璃效果和圆角设计
- 渐变色彩搭配
- 响应式布局
### 交互设计
- 点击提示词按钮显示/隐藏建议面板
- **点击建议卡片:直接发送该建议作为消息**
- **点击编辑图标:将建议文案放入输入框进行编辑**
- 分页控制支持浏览更多建议
- VIP入口引导用户升级
## 使用方法
1. 在聊天界面点击输入框右侧的提示词按钮
2. 查看AI生成的回复建议
3. **直接点击建议卡片可立即发送该消息**
4. **点击编辑图标将建议放入输入框进行修改**
5. 使用分页控制查看更多建议选项
## 技术特点
- TypeScript类型安全
- React Hooks状态管理
- 响应式设计
- 模块化组件结构
- 可扩展的API接口设计
## 核心逻辑
### 建议获取时机
- 只有当最后一条消息来自AI对方才会在打开面板时获取新建议
- 如果最后一条消息来自用户,则显示之前缓存的建议或骨架屏
- 每次检测到新的AI消息后第一次打开面板会重新获取建议
### 骨架屏显示
- **骨架屏已集成到建议弹窗内部**,不再是独立组件
- 在API调用期间显示骨架屏提升用户体验
- 骨架屏固定显示2条建议的布局结构
### 分页机制
- **API一次性返回所有建议数据**,不是分页请求
- 每页显示2条建议
- 根据API返回的总数自动计算页数
- **点击左右切换只是前端切换显示,不会重新请求接口**
### 缓存策略
- 建议会被缓存避免重复API调用
- 只有检测到新的AI消息时才会清空缓存重新获取
- **自动刷新**当面板已打开且收到新AI消息时自动刷新建议
## API集成
已集成真实的AI建议API`genSupContentV2`),替换了之前的模拟数据。
## 后续扩展
- 添加建议个性化定制
- 支持更多建议类型
- 添加使用统计和优化
- 优化缓存策略和错误处理