219 lines
8.7 KiB
Markdown
219 lines
8.7 KiB
Markdown
# Qihu-AIFlow V1 项目记录
|
||
|
||
> **记录时间**: 2026-06-07
|
||
> **首次完整检查**: ✅ 已完成
|
||
> **当前状态**: 代码已上传服务器(/www/wwwroot/Qihu-aiflow),Docker已安装但**容器尚未启动**
|
||
|
||
## 一、项目概览
|
||
|
||
| 项目 | 内容 |
|
||
|:----|:-----|
|
||
| **项目名称** | Qihu-AIFlow 智能自动化PaaS平台 |
|
||
| **当前版本** | v2.0.1 |
|
||
| **构建日期** | 2026-06-02 |
|
||
| **开发平台** | https://code.tokenpony.cn/ (前期开发) |
|
||
| **服务器** | 210.16.161.214 (root/XHR521yhf) |
|
||
| **程序路径** | `/www/wwwroot/Qihu-aiflow` |
|
||
| **外网域名** | https://bot.qihuyun.com |
|
||
| **Git** | ✅ 已初始化但暂无远端仓库 |
|
||
|
||
### 一句话定位
|
||
|
||
一套私有化部署、面向个人及小微企业的AI自动化SOP一站式PaaS平台。用户无需编码即可落地全流程AI自动化业务,支持AI对话、知识管理、技能市场、Token计费、会员订阅等完整闭环体验。
|
||
|
||
## 二、技术栈
|
||
|
||
| 层级 | 技术 |
|
||
|:----|:-----|
|
||
| **前端** | React 18 + TypeScript + Vite |
|
||
| **后端** | Python 3.11 + FastAPI + SQLAlchemy ORM |
|
||
| **数据库** | MySQL 8.0 (SQLAlchemy ORM, QueuePool 20~40) |
|
||
| **缓存** | Redis 7 (requirepass: pwd2026, AOF持久化) |
|
||
| **容器化** | Docker (v29.5.2) + Docker Compose |
|
||
| **Web服务器** | Nginx 1.30.1 (容器内监听8080, BT面板Nginx监听888) |
|
||
|
||
### 端口映射(docker-compose)
|
||
|
||
| 服务 | 容器端口 | 宿主机端口 |
|
||
|:----|:--------:|:----------:|
|
||
| 前端 (Nginx) | 8080 | **12888** |
|
||
| 后端 (Uvicorn) | 18080 | **18080** |
|
||
| MySQL | 3306 | 3306 |
|
||
| Redis | 6379 | 6379 |
|
||
|
||
## 三、文件结构(核心)
|
||
|
||
```
|
||
/www/wwwroot/Qihu-aiflow/
|
||
├── run.sh # 一键启动脚本(Docker + 本地双模式)
|
||
├── docker-compose.yml # 服务编排(aiflow + mysql + redis)
|
||
├── Dockerfile # 镜像构建
|
||
├── nginx.conf # Nginx配置(SPA路由 + API代理)
|
||
├── .env # 环境变量
|
||
├── VERSION # v2.0.1
|
||
├── CHANGELOG.md # 变更日志
|
||
├── migrations/ # 15个SQL迁移脚本 (001-015)
|
||
├── frontend/
|
||
│ ├── dist/ # 已构建产物(1.6M)
|
||
│ ├── src/
|
||
│ │ ├── api/index.ts # API接口封装
|
||
│ │ ├── pages/front/ # 13个前台页面
|
||
│ │ ├── pages/admin/ # 10个后台页面
|
||
│ │ ├── components/layout/ # AdminLayout + FrontLayout
|
||
│ │ ├── contexts/AuthContext.tsx
|
||
│ │ ├── types/index.ts
|
||
│ │ └── mock/data.ts
|
||
│ └── package.json
|
||
└── backend/python/
|
||
├── main.py # 入口 (214行)
|
||
├── requirements.txt # 19个依赖
|
||
└── app/
|
||
├── config.py # 配置(3级域名防护)
|
||
├── database.py # DB连接(QueuePool)
|
||
├── models.py # 数据模型 (937行, 35+ 表)
|
||
├── auth.py # JWT认证
|
||
├── pipeline.py # 进化Pipeline
|
||
├── event_bus.py # Redis事件总线
|
||
├── platform_adapter.py # 适配器基类
|
||
├── message_session.py # 消息会话
|
||
├── message_components.py # 消息组件
|
||
├── services/ # 业务服务层
|
||
├── platform_adapters/ # 6个IM平台适配器
|
||
├── middleware/ # 日志中间件
|
||
└── api/ # 10个API模块 + 9个admin子模块
|
||
```
|
||
|
||
**统计**: 后端45个py文件 + 前端51个源文件 = **96个源代码文件**
|
||
|
||
## 四、功能模块清单
|
||
|
||
### 前台功能(8+ 模块)
|
||
|
||
| 模块 | 状态 | 说明 |
|
||
|:----|:----:|:----|
|
||
| AI智能对话 | ✅ | 多模型切换、Agent/技能调用、知识库关联、会话管理 |
|
||
| 频道接入IM | ✅ | 飞书/微信/钉钉/WhatsApp/Telegram/Slack,统一Webhook |
|
||
| 知识库管理 | ✅ | 文档上传/解析、知识图谱(LLM实体关系提取)、Canvas可视化 |
|
||
| 应用市场 | ✅ | Skill/Agent/MCP应用发布、安装/卸载、搜索去重 |
|
||
| Token驾驶舱 | ✅ | Token消耗统计、CSV导出、排行榜、余额管理 |
|
||
| 付费中心 | ✅ | 会员订阅(月/季/年)、优惠券、微信/支付宝支付、实名认证 |
|
||
| 资产管理 | ✅ | 文件上传/分类/预览(Office/PDF)、AI生成图片管理 |
|
||
| AI进化系统 | ✅ | 进化Pipeline自动监控、知识图谱构建、自动恢复 |
|
||
| 个人中心 | ✅ | 用户资料、密码修改、API Key管理 |
|
||
| 消息通知 | ✅ | 系统公告、续费提醒、订单通知 |
|
||
|
||
### 后台管理(10 大模块)
|
||
|
||
| 模块 | 状态 | 说明 |
|
||
|:----|:----:|:----|
|
||
| 平台驾驶舱 | ✅ | 用户/模型/订单/Token统计概览 |
|
||
| 用户管理 | ✅ | 用户CRUD、角色管理、封禁/激活 |
|
||
| 大模型库管理 | ✅ | 模型供应商管理、模型配置、全局默认模型 |
|
||
| 网站基础设置 | ✅ | 站点信息、邮件/SMTP/SMS/AI文案生成 |
|
||
| 支付渠道配置 | ✅ | 微信支付、支付宝商户配置 |
|
||
| 增值服务管理 | ✅ | 服务定价、上下架 |
|
||
| 会员订阅体系 | ✅ | 会员等级、订阅计划、自动化规则 |
|
||
| 广告位管理 | ✅ | Banner图片上传、AI图像生成 |
|
||
| 应用市场审核 | ✅ | 应用审批、优惠券管理 |
|
||
| 日志与风控 | ✅ | 操作日志、API调用日志、付费日志审计 |
|
||
|
||
## 五、数据库概览(35+ 表)
|
||
|
||
models.py 937行,包含完整数据模型:
|
||
- 用户体系(users, roles, api_keys, login_logs等)
|
||
- 对话管理(conversations, chat_messages, session_contexts等)
|
||
- 模型管理(model_providers, models, default_models等)
|
||
- 知识库(knowledge_bases, documents, chunks, graph_nodes等)
|
||
- 应用市场(apps, app_categories, app_purchases等)
|
||
- 频道(channels, channel_oauth_states等)
|
||
- 支付(orders, subscriptions, transactions等)
|
||
- Token(token_usage, token_balance等)
|
||
- 资产(assets, asset_categories等)
|
||
- 日志(operation_logs, audit_logs, api_call_stats等)
|
||
- 广告(ad_banners)
|
||
- 进化(evolution_pipelines, build_records)
|
||
|
||
**迁移脚本**: 15个 (001_init ~ 015_production_fixes)
|
||
|
||
## 六、配置信息
|
||
|
||
| 配置项 | 值 |
|
||
|:------|:----|
|
||
| APP_ACCESS_URL | https://bot.qihuyun.com |
|
||
| MYSQL_USER/PASSWORD | root / pwd2026 |
|
||
| MYSQL_DATABASE | aiflow |
|
||
| REDIS_PASSWORD | pwd2026 |
|
||
| SECRET_KEY | aiflow-secret-key-change-in-production-2026 |
|
||
| DEBUG | false |
|
||
|
||
## 七、已知技术亮点
|
||
|
||
1. **统一Webhook架构** — 借鉴AstrBot,通过适配器模式统一处理多平台IM消息
|
||
2. **Redis事件总线** — 支持跨服务异步通信
|
||
3. **Pipeline自动恢复** — 系统重启后自动恢复运行中的进化Pipeline
|
||
4. **Canvas知识图谱** — 节点拖拽、悬停高亮、点击详情面板
|
||
5. **日志防删除** — 数据库层禁止DELETE操作日志
|
||
6. **智能SSL参数检测** — run.sh自动检测MySQL SSL兼容性
|
||
7. **智能密码检测** — 仅在哈希无效时重置admin密码
|
||
8. **三级域名防护** — 自动检测临时域名并覆盖为正式域名
|
||
9. **Office/PDF在线预览** — 文件类型映射和预览
|
||
|
||
## 八、当前服务器环境
|
||
|
||
| 环境 | 状态 |
|
||
|:----|:----|
|
||
| 操作系统 | Linux (BT面板管理) |
|
||
| BT面板 | ✅ 监听888端口 |
|
||
| Docker | ✅ v29.5.2 |
|
||
| Nginx (BT) | ✅ v1.30.1 监听888端口 |
|
||
| Docker容器 | ❌ 尚未运行 |
|
||
| MySQL | ❌ 待Docker部署 |
|
||
| Redis | ❌ 待Docker部署 |
|
||
| 后端服务 :18080 | ❌ 不可达 |
|
||
| 前端页面 :12888 | ❌ 不可达 |
|
||
| Git远端仓库 | ⚠️ 未设置 |
|
||
| 域名 bot.qihuyun.com | ⚠️ 已指向但服务未启动 |
|
||
|
||
### 端口占用
|
||
| 端口 | 用途 |
|
||
|:---:|:----|
|
||
| 22 | SSH |
|
||
| 53 | systemd-resolve DNS |
|
||
| 888 | BT面板 Nginx |
|
||
| 18521 | BT面板 |
|
||
|
||
## 九、检查状态清单
|
||
|
||
| 检查项 | 状态 | 备注 |
|
||
|:------|:----:|:----|
|
||
| 源码完整性 | ✅ | 后端45py + 前端51src + 15SQL |
|
||
| 前端构建产物 | ✅ | dist/ 1.6M 存在 |
|
||
| Dockerfile | ✅ | 存在 |
|
||
| docker-compose.yml | ✅ | 3服务编排完整 |
|
||
| nginx.conf | ✅ | SPA路由+API代理正确 |
|
||
| .env 配置 | ✅ | 正式域名已配置 |
|
||
| run.sh 启动脚本 | ✅ | 智能检测+自动迁移 |
|
||
| CHANGELOG | ✅ | 完整记录 |
|
||
| VERSION | ✅ | v2.0.1 |
|
||
| README | ✅ | 完整文档 |
|
||
| 服务运行 | ❌ | 容器未启动 |
|
||
| 数据库 | ❌ | 待Docker部署 |
|
||
| Git远端 | ⚠️ | 已初始化未设置远端 |
|
||
|
||
## 十、首次启动(待执行)
|
||
|
||
```bash
|
||
cd /www/wwwroot/Qihu-aiflow
|
||
docker compose up -d --build
|
||
|
||
# 验证
|
||
curl http://localhost:18080/app/api/health
|
||
curl http://localhost:12888/
|
||
docker compose logs -f aiflow
|
||
```
|
||
|
||
> 首次启动MySQL容器初始化约30-60秒,aiflow容器等待MySQL健康后才开始。
|
||
|
||
---
|
||
|
||
*V1 记录完毕。部署运行并验证功能后更新至 V1.1 或 V2。* |