欢迎来到 Sakura-Bot 开发者文档中心!这里提供了完整的技术文档,帮助开发者了解系统架构、参与贡献代码。
| 文档 | 说明 | 难度 |
|---|---|---|
| 开发快速开始 | 开发环境配置和本地运行 | ⭐ |
| 架构设计 | 系统架构和模块设计 | ⭐⭐ |
| 文档 | 说明 | 难度 |
|---|---|---|
| Ruff 脚本指南 | 代码检查和格式化工具 | ⭐ |
| 文档 | 说明 | 难度 |
|---|---|---|
| 模块拆分总结 | 代码模块化重构 | ⭐⭐ |
| 代码重构总结 | 重构改进说明 | ⭐⭐ |
| 错误处理增强 | 错误处理机制 | ⭐⭐ |
| 文档 | 说明 | 难度 |
|---|---|---|
| 问答 Bot 实施 | AI 功能实施文档 | ⭐⭐⭐ |
| RAG 技术文档 | RAG 技术实现详解 | ⭐⭐⭐ |
| 文档 | 说明 | 难度 |
|---|---|---|
| CI/CD 工作流 | 持续集成配置 | ⭐⭐ |
推荐阅读顺序:
推荐阅读顺序:
推荐阅读:
推荐阅读:
- 🚀 CI/CD 工作流 - 工作流配置
Sakura-Bot 使用以下技术栈:
- Python 3.11+ - 主要编程语言
- Telethon - Telegram MTProto API 客户端
- python-telegram-bot - Telegram Bot API 封装
- SQLite - 轻量级关系数据库(WAL 模式)
- aiosqlite - 异步 SQLite 操作
- ChromaDB - 向量数据库(RAG 功能)
- OpenAI API - LLM 推理
- SiliconFlow - Embedding 和 Reranker
- BGE 模型 - 中文语义理解
- Ruff - 代码检查和格式化
- pytest - 单元测试
- pre-commit - Git 钩子
- Docker - 容器化部署
- GitHub Actions - 持续集成
- Docker Compose - 多容器编排
Sakura-Bot/
├── core/ # 核心模块
│ ├── ai_client.py # AI 客户端
│ ├── config.py # 配置管理
│ ├── database.py # 数据库操作
│ ├── conversation_manager.py # 会话管理
│ ├── intent_parser.py # 意图解析
│ ├── memory_manager.py # 记忆管理
│ ├── qa_engine_v3.py # 问答引擎
│ ├── vector_store.py # 向量存储
│ ├── reranker.py # 重排序
│ └── telegram/ # Telegram 相关
│ ├── client.py # 客户端
│ ├── messaging.py # 消息处理
│ └── poll_handlers.py # 投票处理
├── tests/ # 测试代码
├── data/ # 数据文件
├── wiki/ # 项目文档
├── main.py # 主程序入口
├── qa_bot.py # 问答 Bot 入口
└── requirements.txt # 依赖列表
运行测试:
# 运行所有测试
pytest
# 运行特定测试
pytest tests/test_ai_client.py
# 查看覆盖率
pytest --cov=core --cov-report=html测试覆盖率目标:≥ 90%
# 检查代码
python run_ruff.py
# 自动修复
python run_ruff.py --fix
# 格式化代码
python run_ruff.py --format
# 一键完成
python run_ruff.py --all# 安装钩子
pre-commit install
# 手动运行
pre-commit run --all-files- Fork 项目 - 创建您的分支
- 克隆代码 -
git clone https://github.com/YOUR_USERNAME/Sakura-Bot.git - 创建分支 -
git checkout -b feature/your-feature - 编写代码 - 遵循代码规范
- 运行测试 - 确保测试通过
- 提交代码 -
git commit -m "feat: 添加功能" - 推送分支 -
git push origin feature/your-feature - 创建 PR - 在 GitHub 上创建 Pull Request
详细指南请参考 CONTRIBUTING.md
- 遵循 PEP 8 规范
- 使用类型提示
- 添加文档字符串(Google 风格)
- 保持函数简洁(< 50 行)
- 使用自定义异常类
- 记录详细错误信息
- 提供有意义的错误消息
- 使用重试机制处理临时错误
- 为新功能编写单元测试
- 测试覆盖率 ≥ 90%
- 使用 pytest fixtures
- 模拟外部依赖
- 更新相关文档
- 添加代码注释
- 更新 CHANGELOG.md
- 保持文档同步
- Wiki 首页 - 返回文档中心
- 用户文档 - 用户相关文档
- 项目 README - 项目概述
- 贡献指南 - 如何贡献
- GitHub Issues - 问题跟踪
如果您在开发过程中遇到问题:
- 📖 查阅上述文档
- 🔍 搜索 GitHub Issues
- 💬 参与 GitHub Discussions
- 📧 发送邮件至 sakura520222@outlook.com