Files
abot/README.MD

188 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ABOT
ABOT 是一个基于插件体系构建的微信机器人项目包含消息处理主链路、管理后台、MySQL/Redis 存储、定时任务与多类 AI / 内容插件能力。当前仓库更适合有一定 Python 与部署基础的维护者进行二次开发、私有部署与功能扩展。
## 项目定位
- 面向“可持续迭代的机器人平台”,不是一次性脚本
- 核心能力包括消息接入、插件化处理、后台管理、数据归档与 AI 扩展
- 当前默认假设你具备 MySQL、Redis、Docker、环境变量配置的基础经验
## 当前主要能力
- 微信消息接入与机器人主循环
- 插件加载、启停、热更新与后台管理
- MySQL + Redis 双存储
- AI 自动回复、消息总结、成员画像等能力
- 签到、积分、排行榜、内容推送、媒体处理等业务插件
## 快速开始
### 方式一Docker Compose
适合第一次快速跑通部署骨架。
1. 复制 Docker 环境变量示例
```bash
cp .env.docker.example .env
```
Windows PowerShell
```powershell
Copy-Item .env.docker.example .env
```
2. 按实际环境修改 `.env` 中的数据库密码、`WECHAT_SERVER_URL``WECHAT_SERVER_TYPE` 等参数
3. 启动服务
```bash
docker compose up -d --build
```
更多说明见 [docs/Docker部署说明.md](/d:/learn/abot/docs/Docker部署说明.md:1)。
### 方式二:本地直跑
1. 准备 Python 3.10+
2. 准备 MySQL、Redis
3. 复制配置文件
```bash
cp config.example.yaml config.yaml
cp .env.example .env
```
Windows PowerShell
```powershell
Copy-Item config.example.yaml config.yaml
Copy-Item .env.example .env
```
4. 安装依赖
```bash
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
pip install pysilk-mod
```
5. 启动主程序
```bash
python main.py
```
## 配置说明
### 全局配置
项目支持从 `.env` 自动加载环境变量,并在 [config.example.yaml](/d:/learn/abot/config.example.yaml:1) / `config.yaml` 中使用:
- `${ENV_NAME}`
- `${ENV_NAME:默认值}`
示例:
- `${ABOT_DB_PASSWORD}`:必须提供
- `${ABOT_DB_HOST:127.0.0.1}`:可缺省时回退
### wechat_ipad 配置
现在 `wechat_ipad` 的静态连接参数已经统一走 `.env` / `config.yaml`
- `WECHAT_SERVER_URL`
- `WECHAT_SERVER_IP`
- `WECHAT_SERVER_PORT`
- `WECHAT_SERVER_TYPE`
登录后的 `wxid / device_id / device_name` 不再要求你手工维护,它们会自动写入本地状态文件:
- 默认路径:`temp/wechat_ipad/config.toml`
- 可通过 `WECHAT_STATE_FILE` 覆盖
- 启动时会自动兼容历史 `wechat_ipad/config.toml` 中已有的登录态
## 目录结构
```text
abot/
├── admin/ # 管理后台
├── base/ # 插件基础接口与管理能力
├── db/ # 数据库访问层与迁移脚本
├── docs/ # 部署、设计、使用文档
├── plugins/ # 业务插件
├── utils/ # 通用工具与服务
├── wechat_ipad/ # 微信相关客户端与 server 对接代码
├── Dockerfile
├── docker-compose.yml
├── config.example.yaml
├── .env.example
└── main.py
```
## 管理后台
- 默认端口:`8888`
- 配置文件:[`admin/dashboard/config.toml`](/d:/learn/abot/admin/dashboard/config.toml:1)
- 公开仓库中的账号密码与 webhook token 已改为占位值,部署前务必自行修改
## Docker 化现状
本仓库现在提供的是“开源友好”的基础部署骨架:
- 应用、MariaDB、Redis 已拆分为独立服务
- 提供 `docker-compose.yml``.dockerignore``.env.docker.example`
- 静态连接配置统一通过 `.env` 注入,更适合开源仓库和多环境部署
- wechat 登录态缓存单独落到 `temp/wechat_ipad/config.toml`
当前仍建议你在正式生产前继续补充:
- HTTPS / 反向代理
- 备份策略
- CI/CD
- 监控与告警
## 开源说明
### License 要不要改
当前主代码仍按 MIT License 分发,通常不必为了“开源”单独换许可证。
但你需要额外关注:
- 字体文件的再分发许可
- `wechat_ipad/ipad859go` 二进制来源与授权
- `resource/` 下业务资料是否适合公开
- 第三方前端静态资源的许可证保留
详情见 [THIRD_PARTY_LICENSES.md](/d:/learn/abot/THIRD_PARTY_LICENSES.md:1)。
### 不建议公开提交的内容
- `.env`
- `config.yaml`
- `temp/wechat_ipad/config.toml` 中的真实 `wxid` / `device_id`
- 真实数据库密码、LLM API Key、Webhook Token
## 路线图
当前更优先的方向不是继续无上限堆新功能,而是继续补工程底座:
- Docker 化与部署规范
- 文档与回归清单
- 插件治理
- 可观测性与任务中心
- 开源边界与资产合规
已整理的工程 backlog 见 [docs/工程优化与Feature清单.md](/d:/learn/abot/docs/工程优化与Feature清单.md:1)。
## 贡献与使用说明
- 欢迎基于自己的场景二次开发
- 提交前请避免把本地私有配置、运行日志、登录态一并提交
- 涉及平台接口、内容抓取、自动推送等能力时,请自行评估目标平台规则与当地法律要求