Flowise:本地部署、系统架构、技术实现和应用构建
Flowise 是开源的生成式人工智能开发平台,可用于构建智能体和大语言模型工作流。
Flowise 提供以下 6 个完整的解决方案:
- 可视化的构建过程
- 追踪和分析功能
- 应用评价体系
- 人为干预、修正
- 对外 API、命令行工具、SDK
- 团队和工作空间
本地部署
环境说明:
- macOS Tahoe 26.2
- Node v18.17.0
- pnpm 10.30.3
Node 版本太高,会导致后续 faiss-node 运行脚本失败和构建报错。
出于以下两个原因:
- 学习 Flowise 的开发技术
- 二次开发 Flowise
所以我采用下载源码部署的方式。
下载源码
| |
如果下载过慢,可以使用 gitee 的同步仓库:
| |
安装依赖
| |
上述命令在我电脑上报
CMake executable is not found,解决过程见 CMake executable is not found 。
构建项目
| |
构建时,又报了一堆 TypeScript 语法上的错误,实在难以改得动,好在有 TRAE 帮助,过程见 TypeScript 编译错误
复制配置文件
先都采用默认配置。
开启服务
| |
访问 http://localhost:8080 ,注册一个账号,登录后如下图:

系统架构
技术实现
应用构建
Flowise 支持构建两种智能体,分别是 Chatflow 和 Agentflow,两者的区别在于:
| / | Chatflow | Agentflow |
|---|---|---|
| 定位 | 单智能体,对话优先的工作流 | 多智能体协作,复杂工作流 |
| 本质 | 一个 LLM 走完整个工作流 | 多个具有独立 LLM/提示词/工具/记忆 的智能体 |
| 适用场景 | 聊天机器人,RAG 问答 | 多任务自动化,多角色协同,长时状态工作流 |
Chatflow
Flowise 本地化部署已经完成,试着搭建一个 Chatflow,示例相对简单,使用到了 3 个节点:
- Chat Models 下的 ChatOllama 节点
- Prompts 下的 Chat Prompt Template 节点
- Chains 下的 LLM Chain 节点
连接方式如下:

Ollama 的本地部署可以参看的我 Ollama:部署与使用 一文。
进行简单的问答,体验效果不是很好,主要是回复得非常慢,可能是本地版本或 Ollama 的问题,但起码有一次完整的问答过程,如下图:

接口实现
问答时,请求的接口是 /api/v1/internal-prediction,路由文件和控制器文件分别是:
- 路由文件:packages/server/src/routes/internal-predictions/index.ts
| |
- 控制器文件:packages/server/src/controllers/internal-predictions/index.ts
查看请求传参:
| |
服务器端最终调用的是 createAndStreamInternalPrediction 函数,产生流式的响应。
代码逻辑如下:
- 获取 App 实例的 sseStreamer 属性,SSEStreamer 用于管理 SSE 的连接信息、发送流式消息等功能
- 调用 sseStreamer.addClient 方法建立 chatId 和 response 的对应关系
- 设置 response 流式响应头
- 调用 utilBuildChatflow 函数,主要的逻辑在这一块
- 最终,解除 chatId 和 response 的关系,并消除相关信息
Agentflow
遇到问题
本小节罗列在使用 Flowise 过程中遇到的问题,因非重点,所以不做过多描述,仅记录解决问题的过程。
CMake executable is not found
编辑 ~/.zshrc,新增一行:
| |
TypeScript 编译错误
把终端的错误信息给到 TRAE,让其解决,主要添加了 Polyfill 和修改了代码书写方式。
