跳转到主要内容

项目简介

BuildingAI 是一款面向 AI 开发者、AI 创业者和先进组织打造的企业级开源智能体搭建平台。通过可视化配置界面(Do It Yourself)零代码搭建具备以下能力的原生企业智能体应用。

核心能力

能力说明
🤖 AI 智能体具备记忆、目标和工具使用能力的自主任务执行
🔧 MCP 协议支持 SSE/StreamableHTTP 方式调用 MCP 工具
📚 RAG 管道知识库构建、向量检索与 RAG 增强生成
🧠 大模型聚合统一接入主流 LLM 提供商,标准化 API 调用
💡 上下文工程智能对话管理、提示词优化、参数调优
💰 商业闭环用户注册、会员订阅、算力计费、支付集成

核心特性

BuildingAI 具备以下核心特性,为企业提供完整的 AI 智能体解决方案:
特性说明
Monorepo 架构基于 Turbo + pnpm 的高效现代化架构
全栈 TypeScript前后端统一类型安全保障
模块化设计高内聚低耦合,可扩展性强
企业级安全JWT 认证、RBAC 权限、数据加密
生产就绪Docker 一键部署、PM2 进程管理、完善监控
国际化支持多语言界面,全球化适配

快速开始

系统要求

在安装 BuildingAI 之前,请确保您的设备满足以下最低配置要求:
资源最低要求推荐配置
CPU≥2 核≥4 核
内存≥4GB RAM≥8GB RAM
存储≥5GB 空闲空间≥20GB 空闲空间
Node.js≥22.20.x < 2322.20.x LTS
数据库PostgreSQL 17.xPostgreSQL 17.6
缓存Redis 6.x+Redis 8.2.2

Docker 部署(推荐)

使用 Docker 部署是最简单、稳定的部署方案。
确保已安装 DockerDocker Compose
部署步骤:
  1. 克隆项目
    git clone https://github.com/BidingCC/BuildingAI.git
    cd BuildingAI
    
  2. 复制环境变量配置文件
    cp .env.example .env
    
  3. 修改配置(生产环境必须修改) 编辑 .env 文件,修改以下关键配置:
    • APP_DOMAIN:你的域名
    • DB_PASSWORD:数据库密码
    • REDIS_PASSWORD:Redis 密码
    • JWT_SECRET:JWT 密钥
  4. 启动服务
    docker compose up -d
    
首次启动需要拉取镜像和构建项目,通常需要 5-10 分钟(取决于网络和设备性能)
启动成功后,访问 http://localhost:4090/install 进入初始化安装界面,按照向导完成系统配置。

本地开发部署

适合需要进行二次开发或调试的场景。
# 1. 安装依赖(使用 pnpm)
pnpm install

# 2. 复制环境变量
cp .env.example .env

# 3. 配置数据库和 Redis
# 确保本地已安装并启动 PostgreSQL 和 Redis
# 修改 .env 中的数据库连接信息

# 4. 初始化数据库
pnpm buildingai db:init

# 5. 启动开发服务器
pnpm dev

生产环境部署

# 1. 构建项目
pnpm build

# 2. 使用 PM2 启动
pnpm start

# 3. 查看运行状态
pnpm pm2:status
更多部署方式请参阅 《部署文档》

核心功能

AI 对话系统

  • 智能对话 - 基于 LLM 模型的自然语言对话,支持流式/阻塞响应
  • 多模态支持 - 支持文本、图像等多模态输入输出
  • 上下文管理 - 智能会话上下文管理,支持长对话记忆
  • 消息流处理 - 实时流式输出,提升用户体验
  • 对话历史 - 完整的对话记录管理和导出功能

AI 智能体(Agent)

  • 自主任务执行 - 具备记忆、目标和工具使用能力
  • 工具调用 - 支持动态工具加载和 Function Calling
  • 多智能体协作 - 支持多个智能体协同工作
  • 智能体发布 - 一键发布为公开服务,支持 API Key 调用
  • 配置管理 - 可视化配置角色提示、参数、工具等
  • 使用统计 - 详细的使用数据和性能分析

知识库与 RAG

  • 文档管理 - 支持多种格式文档上传(PDF、Word、Markdown 等)
  • 向量化处理 - 自动文档分块和向量化存储
  • 向量检索 - 基于语义相似度的知识检索
  • RAG 增强生成 - 知识库内容增强 AI 回答准确性
  • 引用溯源 - 自动标注知识来源和引用信息
  • 批量导入 - 支持批量文档导入和更新

MCP 工具集成

  • MCP 协议支持 - 完整实现 Model Context Protocol
  • 双通信模式 - 支持 SSE 和 StreamableHTTP 两种通信方式
  • 工具管理 - MCP 服务器和工具的可视化管理
  • 自动连接 - 智能连接和断线重连机制
  • 工具映射 - 自动将 MCP 工具转换为 OpenAI Function 格式
  • 自定义 Header - 支持自定义 HTTP 请求头

大模型管理

  • 多提供商支持 - 统一接入 OpenAI、Claude、通义千问等主流 LLM
  • 模型配置 - 灵活的模型参数配置(temperature、top_p、max_tokens 等)
  • 密钥管理 - 安全的 API Key 存储和管理
  • 负载均衡 - 支持多密钥轮询和故障转移
  • 使用监控 - 实时监控模型调用量和成本
  • 自定义端点 - 支持自定义 API 端点和私有部署

扩展系统

  • 插件机制 - 灵活的扩展插件系统
  • 应用扩展 - 支持独立应用扩展(Application Extensions)
  • 功能扩展 - 支持功能增强扩展(Functional Extensions)
  • 版本兼容 - 自动检测和管理扩展版本兼容性
  • 热加载 - 支持扩展的动态加载和卸载
  • 独立路由 - 扩展拥有独立的前后端路由和布局

商业化功能

  • 用户管理 - 完整的用户注册、登录、权限管理
  • 会员系统 - 灵活的会员套餐配置
  • 充值计费 - 支持余额充值和按量计费
  • 支付集成 - 集成主流支付方式
  • 订单管理 - 完整的订单和交易记录
  • 财务中心 - 账户余额、消费统计、财务报表

系统管理

  • 权限控制 - 基于 RBAC 的精细化权限管理
  • 菜单管理 - 动态菜单配置和权限绑定
  • 角色管理 - 灵活的角色定义和权限分配
  • 系统配置 - 可视化系统参数配置
  • 日志审计 - 完整的操作日志和审计追踪
  • 监控告警 - 系统健康监控和异常告警

项目架构

技术栈

  • 框架: NestJS 11.x - 企业级 Node.js 框架
  • 语言: TypeScript 5.x - 类型安全保障
  • 数据库: PostgreSQL 17.x - 生产级关系型数据库
  • ORM: TypeORM 0.3.x - 强大的 ORM 工具
  • 缓存: Redis 8.x - 高性能缓存和会话存储
  • 队列: BullMQ - 可靠的任务队列系统
  • 进程管理: PM2 - 生产环境进程管理

Monorepo 结构

BuildingAI/
├── packages/                    # 核心包目录
│   ├── @buildingai/            # BuildingAI 核心包
│   │   ├── ai-sdk/             # AI SDK - LLM 调用、MCP 集成
│   │   ├── base/               # 基础服务类
│   │   ├── cache/              # 缓存管理
│   │   ├── config/             # 配置管理
│   │   ├── constants/          # 常量定义
│   │   ├── db/                 # 数据库实体和工具
│   │   ├── decorators/         # 装饰器集合
│   │   ├── di/                 # 依赖注入
│   │   ├── dict/               # 字典管理
│   │   ├── dto/                # 数据传输对象
│   │   ├── errors/             # 错误处理
│   │   ├── extension-sdk/      # 扩展 SDK
│   │   ├── logger/             # 日志系统
│   │   ├── pipe/               # 管道处理
│   │   ├── types/              # 类型定义
│   │   ├── upgrade/            # 升级脚本
│   │   ├── utils/              # 工具函数
│   │   └── wechat-sdk/         # 微信 SDK
│   ├── api/                    # 后端 API 服务
│   │   └── src/
│   │       ├── modules/        # 业务模块
│   │       │   ├── ai/         # AI 相关(智能体、对话、模型、数据集、MCP)
│   │       │   ├── auth/       # 认证授权
│   │       │   ├── user/       # 用户管理
│   │       │   ├── role/       # 角色管理
│   │       │   ├── permission/ # 权限管理
│   │       │   ├── menu/       # 菜单管理
│   │       │   ├── finance/    # 财务管理
│   │       │   ├── pay/        # 支付管理
│   │       │   ├── extension/  # 扩展管理
│   │       │   └── ...
│   │       ├── common/         # 公共模块
│   │       └── core/           # 核心功能
│   ├── core/                   # 核心业务逻辑
│   │   └── src/modules/
│   │       ├── billing/        # 计费系统
│   │       ├── extension/      # 扩展系统
│   │       ├── queue/          # 队列系统
│   │       ├── secret/         # 密钥管理
│   │       └── upload/         # 文件上传
│   ├── cli/                    # 命令行工具
│   │   └── bin/
│   │       ├── cli.js          # CLI 入口
│   │       ├── start.js        # 启动脚本
│   │       └── predeploy.js    # 预部署脚本
│   ├── desktop/                # 桌面应用(Tauri)
│   └── web/                    # 前端包
│       ├── @buildingai/        # BuildingAI 前端核心包
│       │   ├── designer/       # 可视化设计器
│       │   ├── hooks/          # Vue Hooks
│       │   ├── http/           # HTTP 请求封装
│       │   ├── i18n-config/    # 国际化配置
│       │   ├── layouts/        # 布局组件(前台/后台)
│       │   ├── nuxt/           # Nuxt 配置预设
│       │   ├── service/        # API 服务层
│       │   ├── stores/         # Pinia 状态管理
│       │   ├── storybook/      # 组件文档
│       │   ├── ui/             # UI 组件库
│       │   └── web-config/     # Web 配置
│       └── buildingai-ui/      # 主应用
│           ├── pages/          # 页面组件
│           ├── layouts/        # 布局模板
│           ├── middleware/     # 路由中间件
│           ├── composables/    # 组合式函数
│           └── ...
├── extensions/                 # 扩展插件目录
│   ├── buildingai-simple-blog/ # 示例博客扩展
│   │   ├── src/
│   │   │   ├── api/           # 后端 API
│   │   │   └── web/           # 前端页面
│   │   ├── build/             # 构建产物
│   │   └── manifest.json      # 扩展清单
│   └── extensions.json        # 扩展配置
├── public/                    # 静态资源
├── scripts/                   # 构建脚本
├── docker/                    # Docker 配置
├── .env.example               # 环境变量示例
├── docker-compose.yml         # Docker Compose 配置
├── turbo.json                 # Turbo 配置
├── pnpm-workspace.yaml        # pnpm 工作空间配置
└── ecosystem.config.js        # PM2 配置

核心模块说明


核心包说明

BuildingAI 的核心包提供了完整的模块化能力,以下是主要核心包的说明:

@buildingai/ai-sdk

AI 能力的核心 SDK,提供:
  • 统一的 LLM 调用接口
  • MCP 协议完整实现(SSE/HTTP)
  • 工具调用和 Function Calling
  • 流式响应处理
  • 多提供商适配

@buildingai/db

数据库管理核心包:
  • TypeORM 实体定义
  • 数据库迁移脚本
  • Seeds 数据初始化
  • 查询构建器封装
  • 事务管理

@buildingai/ui

Vue 3 UI 组件库:
  • 富文本编辑器(TipTap)
  • 图表组件(ECharts)
  • 文件上传组件
  • 日期时间选择器
  • 表单组件
  • 布局组件

@buildingai/service

API 服务层封装:
  • 统一的 HTTP 请求封装
  • 前台 API(webapi/)
  • 后台 API(consoleapi/)
  • TypeScript 类型定义
  • 请求/响应拦截

CLI 工具

命令行管理工具:
  • buildingai setup - 项目初始化
  • buildingai db:init - 数据库初始化
  • buildingai pm2:* - PM2 进程管理
  • buildingai update - 系统升级

开发指南

环境准备

# 安装 Node.js 22.20.x
# 推荐使用 nvm 管理 Node.js 版本
nvm install 22.20.0
nvm use 22.20.0

# 安装 pnpm
npm install -g pnpm@10.20.0

# 安装 PostgreSQL 17.x
# 安装 Redis 8.x

本地开发

# 1. 克隆项目
git clone https://github.com/BidingCC/BuildingAI.git
cd BuildingAI

# 2. 安装依赖
pnpm install

# 3. 配置环境变量
cp .env.example .env
# 编辑 .env 配置数据库和 Redis 连接

# 4. 初始化数据库
pnpm buildingai db:init

# 5. 启动开发服务器
pnpm dev
# 或分别启动
pnpm dev:api   # 启动后端 API (http://localhost:4090)
pnpm dev:web   # 启动前端 (http://localhost:3000)

项目构建

# 构建所有包
pnpm build

# 构建特定包
pnpm build:api
pnpm build:web

代码规范

# 代码检查
pnpm lint

# 自动修复
pnpm lint:fix

# 格式化代码
pnpm format

# 类型检查
pnpm typecheck

开发扩展

创建新扩展的完整步骤:
  1. 在 extensions/ 目录创建扩展文件夹
    mkdir extensions/my-extension
    
  2. 创建 manifest.json
    {
      "identifier": "my-extension",
      "name": "My Extension",
      "type": "application",
      "version": "0.0.1",
      "description": "My custom extension",
      "author": {
        "name": "Your Name",
        "homepage": "https://yoursite.com"
      },
      "engine": {
        "buildingai": ">=25.1.0"
      }
    }
    
  3. 创建扩展结构
    my-extension/
    ├── src/
    │   ├── api/          # 后端代码
    │   └── web/          # 前端代码
    ├── build/            # 构建产物
    └── manifest.json     # 扩展清单
    
  4. 同步扩展配置
    pnpm buildingai setup
    

API 文档

后台管理 API

路由前缀: /consoleapi
模块路由说明
认证授权/consoleapi/auth/*用户认证和授权
用户管理/consoleapi/users/*用户 CRUD 操作
角色管理/consoleapi/roles/*角色权限管理
权限管理/consoleapi/permissions/*权限配置
智能体管理/consoleapi/ai/agents/*智能体 CRUD
模型管理/consoleapi/ai/models/*LLM 模型配置
知识库管理/consoleapi/ai/datasets/*知识库管理
MCP 服务器/consoleapi/ai/mcp-servers/*MCP 服务器管理
扩展管理/consoleapi/extensions/*扩展管理

前台用户 API

路由前缀: /api
模块路由说明
用户认证/api/auth/*用户登录注册
智能体使用/api/ai/agents/*智能体调用
对话管理/api/ai/conversations/*对话历史管理
对话接口/api/ai/chat对话(流式/阻塞)
充值相关/api/recharge/*账户充值

智能体公开 API

路由前缀: /consoleapi/ai/agent-v1 鉴权方式: API Key (Bearer Token)

对话接口

请求示例(流式对话):
curl -X POST http://localhost:4090/consoleapi/ai/agent-v1/chat?response_mode=streaming \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "user", "content": "你好"}
    ]
  }'
请求参数:
参数类型必填说明
response_modestring响应模式:streamingblocking
messagesarray消息列表
messages[].rolestring角色:userassistant
messages[].contentstring消息内容

截图展示

以下是 BuildingAI 的主要界面截图:
智能体对话智能体配置
对话界面智能体配置
知识库管理后台管理
知识库后台管理

贡献指南

我们非常欢迎社区贡献!无论是报告 Bug、提出新功能建议,还是提交代码,都是对项目的巨大帮助。

贡献方式

  1. 报告 Bug
    • GitHub Issues 提交 Bug 报告
    • 提供详细的复现步骤和环境信息
  2. 功能建议

完整文档请参阅 BuildingAI 官方文档