Files
docker-configs/discord_bot
2025-07-29 00:00:01 -05:00
..
2025-07-17 00:00:01 -05:00

Discord Bot MVP

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

🚀 快速开始

1. 初始化和测试

# 运行启动脚本(包含测试)
./start.sh --test

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

2. Docker部署

# 构建和启动
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 卷挂载路径

日志查看

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

# Docker日志
docker-compose logs -f discord_bot

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