refactor(browser_manager): 实现页面池机制以提升性能 refactor(image_manager): 添加模板缓存并集成页面池 refactor(bili_parser): 迁移到异步HTTP请求并实现会话复用 docs: 新增性能优化、架构设计和最佳实践文档 chore: 更新requirements.txt添加新依赖
77 lines
3.6 KiB
Markdown
77 lines
3.6 KiB
Markdown
# Calglau BOT by NEO Bot Framework
|
||
|
||
> **[INTERNAL USE ONLY]**
|
||
>
|
||
> 本仓库为 Calglau BOT 的内部开发版本,请遵守相关保密协议。
|
||
|
||
**Powered by NEO Bot Framework**
|
||
|
||
## 项目概述
|
||
|
||
**Calglau BOT** 是一个基于 NEO Bot Framework 构建的高性能 QQ 机器人。别指望这里有什么花里胡哨的废话,这就是一个为了解决实际问题而生的工具。我们用最硬核的技术栈,解决最麻烦的社群管理和自动化需求。
|
||
|
||
简单来说:它很快,很稳,而且不挑食。
|
||
|
||
### 核心特性
|
||
|
||
* **模块化插件架构**:所有功能都在 `plugins/` 目录里躺着。想加功能?写个 Python 文件扔进去就行。支持热重载,改完代码直接生效,不用重启,不用中断服务。
|
||
* **极致性能优化**:
|
||
* **Python 3.14 JIT**:我们直接上了最新的 Python 版本,开启 JIT 即时编译,速度起飞。
|
||
* **Mypyc 编译**:核心模块直接编译成 C 扩展,拒绝解释器的龟速。
|
||
* **Playwright 页面池**:浏览器页面预热池,渲染图片零等待。别再问为什么发图这么快了。
|
||
* **全局连接复用**:HTTP 和 Redis 连接池化管理,拒绝重复握手浪费时间。
|
||
* **开发者友好**:完整的类型提示,清晰的 API 设计。写代码就该是种享受,而不是在屎山里游泳。
|
||
* **集成 Redis 缓存**:能缓存的都缓存了。群信息、用户信息、帮助图片,绝不让数据库多喘一口气。
|
||
* **正向 WebSocket 连接**:保持最简单的连接方式,只要能上网就能跑,不需要公网 IP,不需要内网穿透。
|
||
|
||
### 技术栈
|
||
|
||
* **核心框架**: Python 3.14 (JIT Enabled) & NEO Bot Framework
|
||
* **编译优化**: Mypyc (C Extension)
|
||
* **异步核心**: `asyncio` + `uvloop` (Linux) / 原生 Loop (Windows)
|
||
* **网络通信**: `websockets` (OneBot v11), `aiohttp` (Shared Session)
|
||
* **浏览器引擎**: `Playwright` (Chromium) + Page Pool
|
||
* **数据序列化**: `orjson` (比标准库快 N 倍)
|
||
* **缓存**: `Redis`
|
||
* **日志**: `Loguru`
|
||
|
||
---
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
.
|
||
├── plugins/ # 插件目录,业务逻辑都在这
|
||
│ ├── admin.py # 管理员指令
|
||
│ ├── bili_parser.py # B站解析 (高性能版)
|
||
│ ├── code_py.py # 代码沙箱
|
||
│ ├── echo.py # 复读机
|
||
│ ├── forward_test.py # 合并转发测试
|
||
│ ├── jrcd.py # 今日运势
|
||
│ └── thpic.py # 东方图片
|
||
├── core/ # 框架核心,非请勿动
|
||
│ ├── api/ # OneBot API 封装
|
||
│ ├── managers/ # 各种管理器 (指令, 浏览器, 图片, 插件)
|
||
│ ├── utils/ # 工具函数
|
||
│ ├── ws.py # WebSocket 通信层 (已编译)
|
||
│ └── bot.py # Bot 实例
|
||
├── data/ # 数据存储
|
||
│ ├── admin.json # 管理员名单
|
||
│ └── permissions.json # 权限配置
|
||
├── templates/ # Jinja2 模板
|
||
├── setup_mypyc.py # 编译脚本
|
||
└── main.py # 启动入口
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
别废话,直接跑起来。
|
||
|
||
1. **装环境**: Python 3.14,Redis,还有个 OneBot 客户端 (推荐 NapCat)。
|
||
2. **装依赖**: `pip install -r requirements.txt`
|
||
3. **装浏览器**: `playwright install chromium`
|
||
4. **编译核心 (可选)**: `python setup_mypyc.py build_ext --inplace`
|
||
5. **启动**: `python -X jit main.py`
|
||
|
||
详细文档去 `docs/` 目录看,别什么都问我。
|