145 lines
3.4 KiB
Markdown
145 lines
3.4 KiB
Markdown
# Bot V3 架构设计
|
|
|
|
## 核心原则
|
|
1. 模块化设计 - 每个功能独立模块
|
|
2. 清晰的数据流 - 用户输入 → AI分析 → 按钮选择 → 执行 → 结果展示 → 可返回
|
|
3. 完整的错误处理 - 每一步都有降级方案
|
|
4. 所有bytes正确处理 - 统一转换为hex字符串存储
|
|
|
|
## 模块划分
|
|
|
|
### 1. SessionManager (会话管理)
|
|
```python
|
|
class SessionManager:
|
|
- 管理用户会话状态
|
|
- 存储AI分析结果
|
|
- 存储用户选择历史
|
|
- 支持返回上一步
|
|
```
|
|
|
|
### 2. AIAnalyzer (AI意图分析)
|
|
```python
|
|
class AIAnalyzer:
|
|
- 调用Claude API分析用户输入
|
|
- 生成3-5个搜索建议
|
|
- 提取关键词和命令
|
|
- 返回结构化数据
|
|
```
|
|
|
|
### 3. ButtonGenerator (按钮生成器)
|
|
```python
|
|
class ButtonGenerator:
|
|
- 根据AI建议生成按钮
|
|
- 为搜索结果添加控制按钮
|
|
- 统一管理callback_data
|
|
```
|
|
|
|
### 4. SearchExecutor (搜索执行器)
|
|
```python
|
|
class SearchExecutor:
|
|
- 转发搜索到目标bot
|
|
- 接收并处理结果
|
|
- 正确处理bytes类型
|
|
- 触发后台翻页
|
|
```
|
|
|
|
### 5. CacheManager (缓存管理器)
|
|
```python
|
|
class CacheManager:
|
|
- 所有bytes转hex存储
|
|
- 读取时hex转bytes
|
|
- 统一的存取接口
|
|
```
|
|
|
|
## 用户交互流程
|
|
|
|
```
|
|
用户发送: "我想找德州扑克群"
|
|
↓
|
|
[AI分析器] 分析意图
|
|
↓
|
|
生成建议:
|
|
🔍 按名称搜索"德州扑克群"
|
|
💬 搜索讨论"德州扑克"的群
|
|
🎯 搜索"扑克"相关内容
|
|
✍️ 手动输入命令
|
|
↓
|
|
用户点击: "搜索讨论德州扑克的群"
|
|
↓
|
|
[搜索执行器] 执行 /text 德州扑克
|
|
↓
|
|
展示结果 + 底部控制按钮:
|
|
[...搜索结果...]
|
|
[下一页] [上一页]
|
|
─────────────
|
|
[🔙 返回重选] [🔄 优化搜索]
|
|
↓
|
|
用户点击: "返回重选"
|
|
↓
|
|
返回建议列表(从会话恢复)
|
|
```
|
|
|
|
## 数据结构
|
|
|
|
### 用户会话
|
|
```python
|
|
{
|
|
"user_id": 123,
|
|
"stage": "suggestions" | "searching" | "browsing",
|
|
"history": [
|
|
{
|
|
"step": "input",
|
|
"content": "我想找德州扑克群",
|
|
"timestamp": "..."
|
|
},
|
|
{
|
|
"step": "analysis",
|
|
"suggestions": [...],
|
|
"timestamp": "..."
|
|
},
|
|
{
|
|
"step": "selected",
|
|
"command": "/text",
|
|
"keyword": "德州扑克",
|
|
"timestamp": "..."
|
|
}
|
|
],
|
|
"can_go_back": True
|
|
}
|
|
```
|
|
|
|
### AI建议
|
|
```python
|
|
{
|
|
"explanation": "根据您的需求,我推荐以下搜索方式",
|
|
"suggestions": [
|
|
{
|
|
"command": "/text",
|
|
"keyword": "德州扑克",
|
|
"description": "搜索讨论德州扑克的群组",
|
|
"icon": "💬",
|
|
"priority": 1
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## 文件结构
|
|
|
|
```
|
|
telegram-bot/
|
|
├── bot_v3.py # 主程序
|
|
├── modules/
|
|
│ ├── __init__.py
|
|
│ ├── session_manager.py # 会话管理
|
|
│ ├── ai_analyzer.py # AI分析
|
|
│ ├── button_generator.py # 按钮生成
|
|
│ ├── search_executor.py # 搜索执行
|
|
│ └── cache_manager.py # 缓存管理
|
|
├── utils/
|
|
│ ├── __init__.py
|
|
│ ├── bytes_helper.py # bytes工具函数
|
|
│ └── logger.py # 日志封装
|
|
└── config.py # 配置文件
|
|
```
|