|
|
6 dní pred | |
|---|---|---|
| .claude | 1 týždeň pred | |
| apps | 6 dní pred | |
| docs | 6 dní pred | |
| ui | 6 dní pred | |
| zhagentos | 2 týždňov pred | |
| .editorconfig | 2 týždňov pred | |
| .gitignore | 6 dní pred | |
| .python-version | 2 týždňov pred | |
| Dockerfile | 1 týždeň pred | |
| LICENSE | 2 týždňov pred | |
| README.md | 1 týždeň pred | |
| build-frontend.sh | 1 týždeň pred | |
| convert_logo.py | 2 týždňov pred | |
| docker-compose.dev.yml | 1 týždeň pred | |
| docker-compose.yml | 6 dní pred | |
| main.py | 2 týždňov pred | |
| nginx.conf | 6 dní pred | |
| pyproject.toml | 2 týždňov pred | |
| startTools.bat | 2 týždňov pred | |
| stop-all.bat | 2 týždňov pred | |
| uv.lock | 2 týždňov pred | |
| 启动说明.md | 1 týždeň pred |
企业级智能体平台 —— 强大易用的 AI Agent 构建与管理系统。
| 层级 | 技术 |
|---|---|
| 后端 | Python 3.11 + Django 5.2 + DRF |
| 前端 | Vue 3 + TypeScript + Vite 6 + Element Plus |
| 数据库 | PostgreSQL 17 + pgvector |
| 缓存 | Redis 7 |
| 任务队列 | Celery + Redis |
| 包管理 | uv (Python) + npm (Node.js) |
项目前端分为三个独立的 SPA,共享同一套后端 API 和前端代码库:
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Admin 管理端 │ │ Builder 构建端 │ │ Chat 访问端 │
│ /admin/ │ │ /builder/ │ │ /chat/ │
│ 端口 3000 │ │ 端口 3002 │ │ 端口 3001 │
└────────┬────────┘ └────────┬─────────┘ └────────┬────────┘
│ │ │
└───────────────────────┼────────────────────────┘
│
┌────────────▼────────────┐
│ Django REST API │
│ :8080 │
└────────────┬────────────┘
│
┌──────────────────┼──────────────────┐
│ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
│ PostgreSQL │ │ Redis │ │ Celery │
│ :5433 │ │ :6379 │ │ Worker │
└───────────┘ └───────────┘ └───────────┘
/admin/)平台管理员使用,负责系统级管理:
/builder/)智能体开发者使用,负责资源构建:
/chat/)终端用户使用,访问发布的智能体:
zhagent/
├── main.py # 后端入口(start/dev/upgrade_db/collect_static)
├── config.yml # 运行时配置(DB、Redis、语言等)
├── pyproject.toml # Python 依赖(uv 管理)
├── startTools.bat # Windows 服务管理菜单
├── apps/ # Django 后端
│ ├── maxkb/ # 项目核心(settings、urls、wsgi)
│ ├── users/ # 用户管理
│ ├── application/ # 智能体/应用管理 + 工作流引擎
│ ├── knowledge/ # 知识库(向量搜索、文档处理)
│ ├── models_provider/ # 模型供应商集成(20+ 供应商)
│ ├── tools/ # 工具管理
│ ├── chat/ # 聊天 API
│ ├── trigger/ # 触发器系统
│ ├── oss/ # 文件存储
│ ├── system_manage/ # 系统管理
│ ├── folders/ # 文件夹管理
│ ├── common/ # 公共模块(认证、缓存、中间件等)
│ └── static/ # 构建产物(collect_static 输出)
└── ui/ # Vue 前端(三端完全独立)
├── package.json # 便捷脚本集合
├── admin/ # 管理端(完全独立)
│ ├── package.json # 管理端依赖
│ ├── admin.html # 入口 HTML
│ ├── vite.config.ts # Vite 构建配置
│ ├── env/.env # 环境变量(port 3000)
│ └── src/ # 管理端源代码
│ ├── main.ts # 入口文件
│ ├── App.vue # 根组件
│ ├── router/ # 路由(system 模块)
│ ├── views/ # 页面(system, login, error)
│ ├── api/ # API 客户端
│ ├── stores/ # 状态管理
│ ├── components/ # 共享组件副本
│ ├── styles/ # 样式副本
│ ├── locales/ # 国际化副本
│ ├── utils/ # 工具函数副本
│ └── ...
├── builder/ # 构建端(完全独立)
│ ├── package.json # 构建端依赖
│ ├── builder.html # 入口 HTML
│ ├── vite.config.ts # Vite 构建配置
│ ├── env/.env # 环境变量(port 3002)
│ └── src/ # 构建端源代码
│ ├── builder.ts # 入口文件
│ ├── App.vue # 根组件
│ ├── router/ # 路由(application, knowledge, tool, model, trigger)
│ ├── views/ # 页面(application, knowledge, tool, model 等)
│ ├── api/ # API 客户端
│ ├── stores/ # 状态管理
│ ├── workflow/ # 工作流编辑器
│ ├── components/ # 共享组件副本
│ ├── styles/ # 样式副本
│ ├── locales/ # 国际化副本
│ ├── utils/ # 工具函数副本
│ └── ...
└── chat/ # 访问端(完全独立)
├── package.json # 访问端依赖
├── chat.html # 入口 HTML
├── vite.config.ts # Vite 构建配置
├── env/.env # 环境变量(port 3001)
└── src/ # 访问端源代码
├── chat.ts # 入口文件
├── App.vue # 根组件
├── router/ # 路由(chat 模块)
├── views/ # 页面(chat 对话界面)
├── api/ # API 客户端
├── stores/ # 状态管理(chat-user)
├── components/ # 共享组件副本
├── styles/ # 样式副本
├── locales/ # 国际化副本
├── utils/ # 工具函数副本
└── ...
| 依赖 | 版本 | 说明 |
|---|---|---|
| Python | 3.11+ | 推荐用 uv 管理 |
| Node.js | 18+ | npm 管理前端依赖 |
| PostgreSQL | 14+ | 需要 pgvector 扩展 |
| Redis | 6+ | 缓存 + Celery broker |
git clone <repo-url> zhagent
cd zhagent
uv sync
cd ui && npm install && cd ..
复制配置模板并编辑:
cp config_example.yml config.yml
编辑 config.yml:
DB_HOST: 127.0.0.1
DB_PORT: 5432 # PostgreSQL 端口
DB_USER: postgres
DB_PASSWORD: your_password
DB_NAME: maxkb
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
REDIS_PASSWORD: ''
REDIS_DB: 0
DEBUG: true
LANGUAGE_CODE: zh-CN
确保 PostgreSQL 已启动并创建了数据库:
CREATE DATABASE maxkb;
CREATE EXTENSION IF NOT EXISTS vector;
# 终端 1:Celery Worker
python main.py dev celery
# 终端 2:Django Web(端口 8080)
python main.py dev web
# 终端 3:管理端(端口 3000)
cd ui && npm run dev
# 终端 4:构建端(端口 3002)
cd ui && npm run builder
# 终端 5:访问端(端口 3001)
cd ui && npm run chat
或者使用 Windows 服务管理菜单:
startTools.bat
# 选择 1 启动全部服务
http://localhost:3000/admin/http://localhost:3002/builder/http://localhost:3001/chat/<accessToken>默认账号:admin@zhagent.com
默认密码:ZhAgent@980123
# 1. 构建前端
bash build-frontend.sh
# 2. 启动全部服务
docker compose up -d
# 3. 查看日志
docker compose logs -f
# 4. 停止服务
docker compose down
数据持久化目录(挂载到本地磁盘):
./data/postgresql — PostgreSQL 数据./data/redis — Redis 数据./data/uploads — 上传文件修改默认密码:创建 .env 文件
DB_PASSWORD=your_secure_password
# 启动 PostgreSQL + Redis
docker compose -f docker-compose.dev.yml up -d
# 启动后端
python main.py dev celery # 终端 1
python main.py dev web # 终端 2
# 启动前端
cd ui && npm run dev:all
# 构建前端
cd ui && npm run install:all
npm run build:admin
npm run build:builder
npm run build:chat
# 收集静态文件到 Django
python main.py collect_static
# 启动生产服务(gunicorn + celery)
python main.py start all
三个 SPA 各自独立,拥有完整的代码副本:
ui/admin/ — 管理端(系统管理、用户管理、角色权限)ui/builder/ — 构建端(智能体、知识库、工具、模型、工作流)ui/chat/ — 访问端(对话界面、用户登录)# 安装依赖
cd ui && npm run install:all
# 启动单个端
cd ui && npm run dev:admin # 管理端 :3000
cd ui && npm run dev:builder # 构建端 :3002
cd ui && npm run dev:chat # 访问端 :3001
# 同时启动三端
cd ui && npm run dev:all
ui/admin/src/router/modules/system.tsui/builder/src/router/modules/ 对应的模块ui/chat/src/router/chat/routes.ts每个端通过 window.MaxKB.prefix 动态设置 API 基础路径:
/admin/api/builder/api/chat/api由于三端代码完全独立,修改共享代码(如组件、样式、工具函数)时需要同步修改三个目录。建议:
| App | 路径前缀 | 用途 |
|---|---|---|
| users | /admin/api/ |
用户管理 |
| system_manage | /admin/api/ |
系统管理 |
| application | /builder/api/ |
智能体管理 |
| knowledge | /builder/api/ |
知识库管理 |
| tools | /builder/api/ |
工具管理 |
| models_provider | /builder/api/ |
模型管理 |
| trigger | /builder/api/ |
触发器 |
| chat | /chat/api/ |
聊天 API |
| oss | 共用 | 文件存储 |
apps/ 下创建 app 目录apps/maxkb/settings/base/web.py 的 INSTALLED_APPSapps/maxkb/urls/web.py 中注册路由到对应的 API 前缀python main.py upgrade_db 创建数据库表配置优先级:
MAXKB_*(需设置 MAXKB_CONFIG_TYPE=ENV)config.yml > config.yaml > config_example.yml)apps/maxkb/conf.py 中 Config.defaults)支持 20+ 模型供应商,位于 apps/models_provider/impl/:
OpenAI、Anthropic、DeepSeek、Gemini、Qwen、Ollama、Azure、AWS Bedrock、阿里云百炼、火山引擎、腾讯云、SiliconFlow、Kimi、文心一言、讯飞星火、本地模型、vLLM、Xinference、Docker AI、Regolo
MIT License