开篇问题
前面几篇文章里,我们已经多次遇到三个包:
@fastgpt/global @fastgpt/service @fastgpt/web它们是 FastGPT 开源主应用最核心的共享层。主应用projects/app依赖它们,代码沙盒和 MCP 服务也会依赖其中一部分。读懂这三个包的边界,基本就抓住了 FastGPT 工程结构的骨架。
但第一次读源码时,这三个包也很容易混淆:
- 为什么工作流节点类型放在
global,但节点执行器放在service? - 为什么知识库 schema 有的在
global,有的在service? - 为什么
web可以依赖global,但不应该依赖service? - 新增 API 时,schema、controller、页面请求函数分别应该放在哪里?
- 新增工作流节点时,为什么要同时改前端协议、后端 dispatch 和 UI 配置?
这篇文章专门回答这些问题。
三个共享包的定位
先给出结论:
| 包 |
|---|