FastGPT实习:HTTP插件改造为HTTP工具集
FastGPT实习:HTTP插件改造为HTTP工具集
项目概述
负责FastGPT开源项目中HTTP插件的重大架构升级,将原有的单一HTTP插件重构为灵活的HTTP工具集系统,提升了系统的可扩展性和用户体验。
核心工作内容
架构设计与重构
- 将原有的单一HTTP插件(httpPlugin)重构为HTTP工具集(httpToolSet)
- 支持在一个工具集中管理多个HTTP工具
全栈开发
- 独立完成前后端完整开发
- 包括React前端界面、Node.js后端API、数据库模型设计
工具集管理系统
- 实现HTTP工具的CRUD操作
- 支持OpenAPI规范解析,自动生成工具配置
灵活配置能力
- 支持自定义请求头、认证信息、超时设置等高级配置
- 满足企业级API集成需求
国际化支持
- 完整的中英文国际化实现
- 提升产品国际化水平
技术亮点
- 类型安全开发:采用TypeScript进行类型安全开发,确保代码质量
- 动态表单生成:基于JSON Schema实现动态表单生成,提升用户配置体验
- 状态管理优化:使用React Hook + Context模式进行状态管理,优化组件性能
- OpenAPI集成:实现OpenAPI规范自动解析,支持批量导入API工具
- 可复用架构:设计可复用的工具集架构,为后续MCP工具集奠定基础
技术实现细节
前端架构
- 使用React + TypeScript构建现代化前端界面
- 基于Chakra UI实现响应式设计,支持PC和移动端
- 采用Context + useContextSelector优化组件渲染性能
- 实现动态表单系统,支持JSON Schema驱动的配置界面
后端架构
- 设计RESTful API接口,支持工具集的完整CRUD操作
- 实现OpenAPI规范解析器,自动生成HTTP工具配置
- 集成MongoDB进行数据持久化,支持事务操作
- 添加完整的权限控制和团队隔离机制
核心功能模块
- HTTP工具集创建与管理:
/api/core/app/httpTools/create
- OpenAPI规范解析与工具生成
- 动态请求头和认证配置
- 工具执行引擎与结果处理
代码质量保障
- 完整的TypeScript类型定义
- 统一的错误处理机制
- 国际化支持(i18n)
- 组件化和可复用设计
项目影响
管理效率提升
- 提升了HTTP工具的管理效率
- 用户可在单个工具集中管理多个相关API
系统可扩展性
- 增强了系统的可扩展性
- 为企业级API集成提供了更强大的支持
用户体验优化
- 优化了用户体验
- 简化了HTTP工具的创建和配置流程
量化成果
- 代码贡献:新增约2000+行高质量TypeScript代码
- 功能覆盖:支持GET/POST/PUT/DELETE等全HTTP方法
- 配置灵活性:支持自定义请求头、认证、超时等10+配置项
- 用户体验:将HTTP工具创建流程从多步骤简化为一站式配置
技术栈
前端技术:TypeScript, React, Chakra UI, JSON Schema
后端技术:Node.js, MongoDB, RESTful API
开发工具:OpenAPI, 国际化, 组件化设计, 性能优化
这个项目展现了在全栈开发、架构设计、用户体验优化等多个方面的能力,特别是在开源项目中的贡献和对复杂业务场景的技术解决方案设计能力。
简历重点
- HTTP工具集的增删改查基本方法
设计restful api - openapi自动解析
外部包 + 手动处理 - 自定义请求头和鉴权配置
前端动态配置 + 后端存储 + 运行使用 - 前端还原figma设计稿
- 工具执行
封装HTTP请求类 - 节点相关
存储节点: 保存ui等信息, 便于渲染
运行时节点: 只保留运行时的相关配置, 加快运行速度 - 节点业务逻辑(太复杂了)
工具调用请求
↓
dispatchRunTools (Agent节点)
↓
LLM工具选择 + 参数解析
↓
runToolCall (工具调用循环)
↓
dispatchRunTool (具体工具执行)
↓
工具类型分发 (System/HTTP/MCP)
↓
结果处理 + 格式化
↓
返回给Agent继续对话
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Fish's Blog!