# Discord Bot MVP

基于AI的终端控制系统，核心功能是 `/terminal` 命令，智能管理Docker服务器。

## 🚀 快速开始

### 1. 初始化和测试
```bash
# 运行启动脚本（包含测试）
./start.sh --test

# 或手动执行
python3 init_db.py    # 初始化数据库
python3 test_bot.py   # 测试功能
python3 main.py       # 启动bot
```

### 2. Docker部署
```bash
# 构建和启动
docker-compose up --build

# 后台运行
docker-compose up -d
```

## 📁 项目结构

```
discord_bot/
├── main.py                     # 主程序入口
├── tu_bot/                     # Tu Bot (主控制器)
│   └── bot.py                  # Discord Bot核心逻辑
├── slash_commands/             # Slash命令处理器
│   ├── terminal/               # /terminal命令
│   │   └── terminal_handler.py # Terminal处理器
│   ├── terminal_fin/           # /terminal_fin命令 (计划)
│   ├── fin/                    # 金融相关命令 (计划)
│   ├── db_operations/          # 数据库操作命令 (计划)
│   └── help/                   # 帮助命令 (计划)
├── ai_bots/                    # 多AI验证系统 (计划)
│   ├── ai_bot_1/
│   ├── ai_bot_2/
│   ├── ai_bot_3/
│   └── bot_template/
├── utils/                      # 工具类
│   ├── database.py             # 数据库管理器
│   └── token_reader.py         # Token读取器
├── databases/                  # SQLite数据库文件
│   └── discord_bot.db          # 主数据库
├── backups/                    # 备份文件
├── SlashCommandList.txt        # 命令列表(热更新)
├── requirements.txt            # Python依赖
├── Dockerfile                  # Docker配置
├── docker-compose.yml          # Docker Compose配置
├── init_db.py                  # 数据库初始化脚本
├── test_bot.py                 # 功能测试脚本
└── start.sh                    # 启动脚本
```

## 🤖 主要功能

### `/terminal` 命令
- **AI控制终端**: 通过Discord聊天控制Docker服务器
- **自然语言支持**: "查看Docker容器状态" 等自然语言命令
- **Shell命令**: `ls`, `docker ps`, `pwd` 等直接命令
- **安全限制**: 
  - 仅限 `~/docker/*` 目录
  - 禁止危险命令 (`rm -rf` 等)
  - 1小时会话超时
- **记忆管理**: 智能压缩对话历史，控制token消耗

### 术语字典系统
- **term_dic.db**: 存储自定义术语和命令
- **优先级**: term_dic定义 > AI默认知识
- **分类管理**: docker, finance, project等分类

### 数据库结构
- **toy_balance**: ALP交易确认记录
- **portfolio**: 投资组合数据
- **term_dic**: 术语字典
- **conversation_memory**: 对话记录
- **command_log**: 命令执行日志

## 🔧 配置要求

### Token文件 (`~/docker/tokens.txt`)
```
tu_discord_token=你的Discord_Bot_Token
claude_API=你的Claude_API_Key
gitea_token=你的Gitea_Token
# ... 其他配置
```

### 环境变量
- `DB_PATH`: 数据库文件路径
- `FR_DB_PATH`: FinancialReport数据库路径（只读）
- `TOKEN_PATH`: token文件路径
- `DISCORD_PREFIX`: Bot命令前缀

## 🛡️ 安全机制

- **工作空间隔离**: 限制在 `~/docker/*` 目录
- **命令黑名单**: 自动拒绝危险操作
- **权限分离**: MVP开发AI有sudo权限，生产环境无sudo
- **审计日志**: 记录所有重要操作

## 📊 使用示例

```
/terminal ls                    # 列出文件
/terminal docker ps             # 查看容器
/terminal 查看当前目录文件        # 自然语言
/terminal 启动nginx容器         # AI理解意图
/help                          # 显示帮助
```

## 🔄 开发状态

- ✅ **基础架构**: Docker配置、Python框架
- ✅ **数据库系统**: SQLite表结构、术语字典
- ✅ **/terminal命令**: AI控制、安全限制、记忆管理
- ⏸️ **多AI验证**: 3个AI bot + 讨论机制 (暂未实现)
- ⏸️ **金融命令**: /fin_portfolio, /fin_report (计划中)
- ⏸️ **数据库操作**: /db_* 系列命令 (计划中)

## 🐛 故障排除

### 常见问题
1. **Token错误**: 检查 `~/docker/tokens.txt` 格式
2. **权限问题**: 确保脚本有执行权限 `chmod +x start.sh`
3. **数据库错误**: 运行 `python3 init_db.py` 重新初始化
4. **Docker问题**: 检查 `docker-compose.yml` 卷挂载路径

### 日志查看
```bash
# 查看bot日志
tail -f bot.log

# Docker日志
docker-compose logs -f discord_bot
```

---

💡 **提示**: 这是MVP版本，重点实现 `/terminal` 核心功能。多AI验证系统作为开发工具暂时跳过。