🐛 问题描述
当前状况:
在AI助手面板(AIAssistantPanel)中与AI对话时,存在以下问题:
- 当AI回复是JSON Line格式时,能够正确显示为结构化卡片
- 当AI回复是普通文本格式时,无法显示为卡片,用户只能在历史对话记录中看到自己发送的问题,但看不到AI的回复以卡片形式展示
具体表现:
- 用户发送问题后,输入框清空
- 历史记录中会增加用户的问题记录
- 但AI的普通文本回复不会在面板中以卡片形式显示
- 只有JSON Line格式的AI回复才能正确显示为卡片
技术细节:
- 前端使用
/api/v1/content/{content_id}/completion-updated 端点
- 采用流式响应处理(Vercel AI SDK数据流协议)
- 当前的卡片构建逻辑(
buildAnalysisCards)和渲染逻辑(UniversalContentRenderer)理论上应该支持普通文本
- 但实际测试中,普通文本内容无法触发卡片显示
复现步骤:
- 打开任意内容的AI助手面板
- 发送一个普通问题(不要求JSON Line格式输出)
- 观察AI回复是否以卡片形式显示在面板中
预期结果:
AI的普通文本回复应该显示为卡片格式,就像JSON Line格式回复一样
实际结果:
普通文本回复不会显示为卡片,面板中看不到AI的回复
🎯 理想状态
我们希望实现的效果:
- 统一的卡片显示:无论AI回复是JSON Line格式还是普通文本,都应该以卡片形式显示
- 实时流式显示:AI回复过程中能够实时显示内容更新
- 一致的用户体验:用户不需要关心AI回复的格式,都能看到美观的卡片展示
- 完整的对话体验:用户发送问题后,能够立即在面板中看到AI的回复,而不是只能在历史记录中查看
具体需求:
- 普通文本回复应该显示为标题为"AI分析"的卡片
- 卡片内容使用MarkdownRenderer渲染普通文本
- 保持与JSON Line格式卡片一致的视觉样式和交互效果
- 支持流式显示,让用户能看到AI回复的实时更新过程
🔧 技术环境
- 前端:Next.js + React + TypeScript
- 后端:FastAPI + Python
- AI处理:使用completion-updated端点进行流式响应
- 当前工作的功能:JSON Line格式的AI回复能正确显示为卡片
📁 相关文件
frontend/components/ai/AIAssistantPanel.tsx - 主要的AI助手面板组件
frontend/components/ui/UniversalContentRenderer.tsx - 内容渲染器
backend/app/api/routes/content.py - completion-updated端点实现
🐛 问题描述
当前状况:
在AI助手面板(AIAssistantPanel)中与AI对话时,存在以下问题:
具体表现:
技术细节:
/api/v1/content/{content_id}/completion-updated端点buildAnalysisCards)和渲染逻辑(UniversalContentRenderer)理论上应该支持普通文本复现步骤:
预期结果:
AI的普通文本回复应该显示为卡片格式,就像JSON Line格式回复一样
实际结果:
普通文本回复不会显示为卡片,面板中看不到AI的回复
🎯 理想状态
我们希望实现的效果:
具体需求:
🔧 技术环境
📁 相关文件
frontend/components/ai/AIAssistantPanel.tsx- 主要的AI助手面板组件frontend/components/ui/UniversalContentRenderer.tsx- 内容渲染器backend/app/api/routes/content.py- completion-updated端点实现