P3 阶段完成报告 - Flowise 灵感空间
实施时间:2024-12-14
状态:✅ 开发完成,待部署测试
一、实施概览
1.1 目标
创建 Flowise 灵感空间,实现可视化的对话式灵感检索和策略咨询,提供:
- 基于向量数据库的语料检索
- 多轮对话式策略咨询
- 可视化 Prompt 配置和迭代
1.2 迁移工作流
| workflow_id | 原引擎 | 新引擎 | 状态 |
|---|---|---|---|
daily_inspiration | Node WorkflowEngine | Flowise | ✅ 已迁移 |
quick_topic_suggest | Node WorkflowEngine | Flowise | ✅ 已迁移 |
二、核心交付物
2.1 Flowise Chatflow 配置
flowise/
├── chatflows/
│ ├── inspiration_qa.json # 灵感检索问答
│ └── strategy_chat.json # 策略对话助手
├── corpus/
│ └── inspiration_corpus_example.txt # 示例语料库
├── vector-store-setup.md # Vector Store 配置指南
└── README.md # Flowise 使用指南inspiration_qa.json(灵感检索)
架构:
Text File → Text Splitter → Embeddings → Vector Store → Retrieval QA Chain
↓
ChatOpenAI + Memory组件:
- OpenAI Embeddings (text-embedding-3-small)
- In-Memory Vector Store(可升级为 Chroma/Pinecone)
- Conversational Retrieval QA Chain
- Buffer Memory(对话历史)
功能:
- 根据用户问题检索相关语料
- 返回 Top 5 相关案例
- 支持多轮对话
- 提供来源引用(source documents)
strategy_chat.json(策略对话)
架构:
ChatOpenAI → Conversation Chain + Buffer Memory组件:
- ChatOpenAI (gpt-4o-mini)
- Conversation Chain
- Buffer Memory(对话历史)
功能:
- 多轮对话式策略咨询
- 上下文理解和延续
- 个性化建议
- 项目信息注入
2.2 后端增强
FlowiseProxyService.js 增强:
| 功能 | 实现 |
|---|---|
| 多 Chatflow 支持 | chatflows: { inspiration, strategy, default } |
| 项目上下文注入 | 平台、定位、受众、内容支柱等 |
| 会话管理 | 30分钟 TTL、自动清理 |
| 降级处理 | Flowise 不可用时返回默认响应 |
| 健康检查 | healthCheck() 方法 |
2.3 工作流注册
WorkflowRegistry.js 更新:
javascript
registry.register('daily_inspiration', {
name: '💡 每日灵感盲盒',
engine: 'flowise', // ⭐ 指向 Flowise
chatflow_type: 'inspiration', // Chatflow 类型
// ...
});
registry.register('quick_topic_suggest', {
name: '💡 快速选题推荐',
engine: 'flowise',
chatflow_type: 'inspiration',
// ...
});三、数据流
3.1 灵感检索流程
Frontend (Vue)
↓
POST /api/flowise/chat
{
message: "我想做美业账号,有哪些好的选题?",
chatflowType: "inspiration",
context: { projectId, userId }
}
↓
Node.js Backend (FlowiseProxyService)
↓
- 查询项目信息(platforms, positioning等)
- 构建丰富的上下文
- 添加对话历史
↓
POST http://localhost:3000/api/v1/prediction/{chatflowId}
{
question: "...",
overrideConfig: {
sessionId, project_name, platforms, positioning, ...
}
}
↓
Flowise - inspiration_qa Chatflow
↓
1. 用户问题 → Embeddings
2. Vector Store 检索 Top 5 相关语料
3. 拼装 Prompt(system message + 检索结果 + 用户问题)
4. ChatOpenAI 生成回复
5. Buffer Memory 存储对话
↓
Return { response, sourceDocuments }
↓
Node.js Backend
↓
- 保存会话历史
- 返回给前端
↓
Frontend 展示
- AI 回复
- 引用的案例/语料3.2 策略对话流程
Frontend → Node.js Backend → Flowise - strategy_chat Chatflow
↓
Conversation Chain + Memory
↓
返回策略建议四、部署步骤
4.1 前提条件
- ✅ Node.js backend 运行中(3001 端口)
- ⏳ Flowise 服务(3000 端口)
- ⏳ OpenAI API Key
4.2 部署 Flowise
方式一:npm 安装
bash
npm install -g flowise
flowise start方式二:Docker 部署
bash
docker run -d \
--name flowise \
-p 3000:3000 \
-v flowise_data:/root/.flowise \
flowiseai/flowise:latest4.3 导入 Chatflow
- 访问
http://localhost:3000 - 登录(首次使用创建账号)
- 点击 "Add New Chatflow"
- 点击 "Load Chatflow"
- 导入
flowise/chatflows/inspiration_qa.json - 保存并记录 Chatflow ID
- 重复步骤导入
strategy_chat.json
4.4 配置 OpenAI Credential
- 在 Flowise UI 中点击 "Credentials"
- 添加 "OpenAI API"
- 输入 API Key
- 保存
4.5 上传语料库
- 打开
inspiration_qachatflow - 找到 "Text File" 节点
- 上传
flowise/corpus/inspiration_corpus_example.txt - 点击 "Upsert" 按钮
- 等待 Embedding 创建完成(几分钟)
4.6 配置环境变量
在 backend/.env 中添加:
env
# Flowise 配置
FLOWISE_API_URL=http://localhost:3000/api/v1
FLOWISE_INSPIRATION_CHATFLOW_ID=your-inspiration-chatflow-id
FLOWISE_STRATEGY_CHATFLOW_ID=your-strategy-chatflow-id
FLOWISE_API_KEY= # 可选
FLOWISE_TIMEOUT=300004.7 重启 Node 服务
bash
pm2 restart kkmusic-backend
# 或
npm run dev五、测试用例
5.1 测试灵感检索
测试 1:美业账号选题
bash
curl -X POST http://localhost:3001/api/flowise/chat \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"message": "我想做美业账号,有哪些好的选题方向?",
"chatflowType": "inspiration",
"context": {
"projectId": "test-project-id",
"userId": 1
}
}'预期响应:
- 返回美业相关案例(护肤、化妆、探店等)
- 包含
sourceDocuments(引用的语料) - 提供具体的标题示例和数据参考
测试 2:标题优化技巧
输入:如何写出吸引人的标题?
预期:返回标题技巧(数字化、情绪共鸣、对比冲突等)5.2 测试策略对话
测试 3:新手创作者咨询
bash
curl -X POST http://localhost:3001/api/flowise/chat \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"message": "我是新手创作者,不知道从哪里开始,能给我建议吗?",
"chatflowType": "strategy",
"sessionId": "test-session-123",
"context": {
"projectId": "test-project-id",
"projectInfo": {
"name": "我的项目",
"platforms": ["douyin"],
"positioning": "待定"
}
}
}'预期响应:
- 多轮对话引导
- 询问创作者背景和目标
- 给出具体可执行的建议
测试 4:多轮对话
第1轮:我想做美业账号
回复:了解你的背景...(提问)
第2轮:我是美容师,有5年经验
回复:很好!基于你的背景,建议...(建议)
第3轮:时间不多,每周只能发2条
回复:理解你的限制,可以...(调整建议)六、性能指标
| 指标 | 目标 | 实际 |
|---|---|---|
| Flowise 响应时间 | < 3s | ___s |
| Vector Store 检索时间 | < 1s | ___s |
| 对话上下文长度 | 10 轮 | ___轮 |
| 语料库大小 | > 100 案例 | ___个 |
| 检索准确率 | > 80% | ___% |
七、监控与日志
7.1 Flowise 执行日志
在 Flowise UI 中:
- 打开 Chatflow
- 点击 "View Executions"
- 查看每次执行的详细日志
7.2 Node.js 侧日志
bash
# 查看 FlowiseProxy 日志
tail -f backend/logs/app.log | grep "FlowiseProxy"日志示例:
[FlowiseProxy] Initialized. URL: http://localhost:3000/api/v1
[FlowiseProxy] Chatflows: inspiration=abc123, strategy=def456
[FlowiseProxy] Chat success: sessionId=session-7897.3 健康检查
javascript
// 检查 Flowise 可用性
const flowiseProxy = require('./services/FlowiseProxyService');
const health = await flowiseProxy.healthCheck();
console.log(health);
// { available: true, chatflowConfigured: true, sessionCount: 5 }八、故障排查
8.1 常见问题
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| Flowise 无法访问 | 服务未启动 | 启动 Flowise 服务 |
| Chatflow ID 无效 | 未配置或错误 | 检查 .env 中的 ID |
| 检索结果不相关 | 语料质量差 | 优化语料内容和格式 |
| 对话无上下文 | sessionId 未传递 | 确保前端传递 sessionId |
| OpenAI API 超时 | 网络/配额 | 检查 API Key 和配额 |
8.2 降级方案
如果 Flowise 不可用:
自动降级:FlowiseProxyService 会返回默认响应
javascript{ success: false, fallback: true, response: "抱歉,AI 助手暂时不可用..." }手动降级:在 WorkflowRegistry 中注释
engine: 'flowise'javascriptregistry.register('daily_inspiration', { // engine: 'flowise', // 临时注释 // ... });
九、未来优化
9.1 Vector Store 升级
- 从 In-Memory 升级到 Chroma/Pinecone
- 支持更大规模语料(> 10MB)
- 持久化存储
9.2 语料库扩展
- 分行业/领域语料库
- 实时热点案例采集
- 用户贡献和众包
9.3 对话能力增强
- 多模态输入(图片、视频)
- 长对话历史管理(> 10 轮)
- 个性化推荐模型
9.4 可视化配置
- 在线编辑 Prompt
- A/B 测试不同 Chain 配置
- 可视化追踪和调试
十、相关文档
- KKMUSIC_ARCHITECTURE_BLUEPRINT.md - 整体架构蓝图
- WORKFLOW_MIGRATION_ROADMAP.md - 迁移路线图(包含 P3 计划)
- P1_SCHEDULER_MIGRATION_COMPLETE.md - P1 阶段报告
- P2_LANGGRAPH_INTEGRATION_COMPLETE.md - P2 阶段报告
- flowise/README.md - Flowise 使用指南
- flowise/vector-store-setup.md - Vector Store 配置
文档维护者:一刻工坊技术团队
最后更新:2024-12-14
状态:✅ P3 阶段开发完成,待部署测试