stream-ai-answer — 通用流式AI检索问答技能
本skill为开发者提供一套可复用的AI检索问答交互范式,适用于任意行业的知识库产品。
核心价值
将AI搜索框从「输入→等待→结果」升级为「输入→实时思考可视化→带来源的完整回答」
用户清晰看到AI在思考什么,答案有来源可查、可点击、可信度提升。
四步流程(通用版)
| 步骤 | 状态 | 图标 | 适用场景说明 |
|---|
| ① 理解问题意图 | 🔍 | 理解意图 | 所有场景,识别用户真正想查什么 |
| ② 检索知识库/数据库 | 🗄️ | 检索内容 | 有结构化知识库时启用;无知识库可跳过 |
| ③ 深度分析 & 生成 | 🧠 | 深度分析 | 所有场景,模型推理+内容生成 |
| ④ 来源标记 & 完成 | 📚 | 来源标记 | 有外部引用时启用;无来源则标注"综合知识回答" |
组件视觉结构
┌─────────────────────────────────────────┐
│ 🤖 AI 智能回答 🔥 实时生成 │
├─────────────────────────────────────────┤
│ 🔍 理解问题意图... ✅ │
│ 🗄️ 检索知识库内容... ⏳ │ ← 根据步骤数动态显示
│ 🧠 深度分析与生成... ○ │
│ 📚 来源标记... ○ │
├─────────────────────────────────────────┤
│ ⭐ [模型名称] · 结合N条知识库内容 │ ← 底部来源统计
└─────────────────────────────────────────┘
↓ 流式展开
┌─────────────────────────────────────────┐
│ [流式生成的回答正文,带关键词高亮] │
├─────────────────────────────────────────┤
│ 📚 参考来源: │
│ ① [标题] · [来源平台] · [可点击链接] │
│ ② [标题] · [来源平台] │
└─────────────────────────────────────────┘
状态视觉规则
| 状态 | 视觉 | CSS类 |
|---|
pending | 灰圆圈 ○ | text-gray-400 |
active | 蓝色旋转 + 脉冲 | text-blue-500 animate-spin |
done | 绿色勾 ✅ | text-green-500 |
error | 红色叉 ❌ | text-red-500 |
行业适配指南
医疗健康
- 步骤:🔍→🗄️(检索医学文献)→🧠→📚
- 来源格式:PubMed DOI / 临床指南 / NCCN / CMA
- Prompt风格:需强提醒"不作为诊断依据"
- 典型项目:患者教育平台、医生继续教育、科研助手
法律
- 步骤:🔍→🗄️(检索法规条文)→🧠→📚
- 来源格式:法律条文编号 / 判决书 / 司法解释
- Prompt风格:明确"仅供参考,不构成法律意见"
- 典型项目:法律咨询平台、企业合规助手
金融/财税
- 步骤:🔍→🗄️(检索政策文件)→🧠→📚
- 来源格式:财政部/税务局公告 / 法规链接
- Prompt风格:明确"不构成投资建议"
- 典型项目:财报解读、政策问答、理财咨询
通用企业知识库
- 步骤:🔍→🗄️(检索内部文档)→🧠
- 来源格式:内部文档名称 / Confluence链接
- Prompt风格:简洁专业,直接给答案
- 典型项目:内部问答机器人、客服辅助、CRM AI助手
实施流程
Step 1:判断场景复杂度
| 场景 | 步骤数 | 是否检索知识库 |
|---|
| 简单问答(FAQ类) | 2步(🔍→🧠) | 否,直接生成 |
| 知识库检索 | 3步(🔍→🗄️→🧠) | 是,RAG检索 |
| 专业领域(医疗/法律) | 4步(🔍→🗄️→🧠→📚) | 是,强引用 |
| 深度报告生成 | 5步(🔍→🗄️→🧠→📚→⚡) | 多源聚合 |
Step 2:设计步骤配置
// 通用3步(企业知识库)
const steps = [
{ key: 'understand', label: '理解问题意图', status: 'pending' },
{ key: 'retrieve', label: '检索知识库内容', status: 'pending' },
{ key: 'generate', label: '深度分析与生成', status: 'pending' },
];
// 专业4步(医疗/法律/金融)
const steps = [
{ key: 'understand', label: '理解问题意图', status: 'pending' },
{ key: 'retrieve', label: '检索专业数据库', status: 'pending' },
{ key: 'analyze', label: '深度分析证据', status: 'pending' },
{ key: 'generate', label: '生成回答', status: 'pending' },
];
Step 3:接入API(见 references/frontend-pattern.md)
Step 4:行业Prompt定制(见 references/prompts.md)
Step 5:来源解析配置(见 references/frontend-pattern.md)
文件说明
| 文件 | 用途 | 何时读取 |
|---|
references/frontend-pattern.md | React组件代码 + 流式实现 | 开发时 |
references/prompts.md | 各行业系统Prompt模板 | Prompt设计时 |
assets/AIAnalysisCard.tsx | 可直接复制的React组件 | 组件开发时 |
快速接入路径
React项目(Vite + TypeScript)
- 复制
assets/AIAnalysisCard.tsx → src/components/common/
- 修改
references/frontend-pattern.md 中的API端点
- 在目标页面引入并替换原有loading状态
非React项目
- 参考
references/frontend-pattern.md 中的纯函数封装 streamAI()
- 按UI框架(Vue/Svelte/Angular)自行实现
AIAnalysisCard
依赖要求
- React 18+(或任意UI框架)
- TypeScript(支持TSX)
- TailwindCSS(使用现有颜色变量)
- 支持
stream: true 的LLM API
- ✅ MiniMax / DeepSeek / OpenAI / Azure OpenAI / 百度千帆
- ✅ 本地模型(Ollama + SSE)