Skip to content

P3 阶段完成报告 - Flowise 灵感空间

实施时间:2024-12-14
状态:✅ 开发完成,待部署测试

一、实施概览

1.1 目标

创建 Flowise 灵感空间,实现可视化的对话式灵感检索和策略咨询,提供:

  • 基于向量数据库的语料检索
  • 多轮对话式策略咨询
  • 可视化 Prompt 配置和迭代

1.2 迁移工作流

workflow_id原引擎新引擎状态
daily_inspirationNode WorkflowEngineFlowise✅ 已迁移
quick_topic_suggestNode WorkflowEngineFlowise✅ 已迁移

二、核心交付物

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:latest

4.3 导入 Chatflow

  1. 访问 http://localhost:3000
  2. 登录(首次使用创建账号)
  3. 点击 "Add New Chatflow"
  4. 点击 "Load Chatflow"
  5. 导入 flowise/chatflows/inspiration_qa.json
  6. 保存并记录 Chatflow ID
  7. 重复步骤导入 strategy_chat.json

4.4 配置 OpenAI Credential

  1. 在 Flowise UI 中点击 "Credentials"
  2. 添加 "OpenAI API"
  3. 输入 API Key
  4. 保存

4.5 上传语料库

  1. 打开 inspiration_qa chatflow
  2. 找到 "Text File" 节点
  3. 上传 flowise/corpus/inspiration_corpus_example.txt
  4. 点击 "Upsert" 按钮
  5. 等待 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=30000

4.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 中:

  1. 打开 Chatflow
  2. 点击 "View Executions"
  3. 查看每次执行的详细日志

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-789

7.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 不可用:

  1. 自动降级:FlowiseProxyService 会返回默认响应

    javascript
    {
      success: false,
      fallback: true,
      response: "抱歉,AI 助手暂时不可用..."
    }
  2. 手动降级:在 WorkflowRegistry 中注释 engine: 'flowise'

    javascript
    registry.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 配置
  • 可视化追踪和调试

十、相关文档


文档维护者:一刻工坊技术团队
最后更新:2024-12-14
状态:✅ P3 阶段开发完成,待部署测试

© 2024-2025 趣美丽 QuMeiLi · Powered by 刻流星引擎 KeLiuXing