跳转到正文

Sakura 智能问答Bot 使用指南 ​

📖 简介 ​

Sakura 智能问答Bot 是一个独立的Telegram Bot,专门用于查询频道历史总结。它支持自然语言交互,让你像对话一样轻松获取频道信息。

✨ 核心特点 ​

  • 🎯 自然语言查询 - 无需命令前缀,直接提问
  • 🧠 智能意图识别 - 自动理解你的查询意图
  • 📊 上下文感知 - 基于频道画像生成更精准的回答
  • 🔍 多维度检索 - 支持时间、关键词、主题等多条件过滤
  • 🎫 使用配额管理 - 防止滥用,保障服务稳定性

🚀 快速开始 ​

1. 创建问答Bot ​

访问 @BotFather,创建一个新的Bot:

  • 使用 /newbot 命令
  • 按提示设置Bot名称和用户名
  • 重要:必须与主Bot(总结Bot)使用不同的Bot Token

2. 配置环境变量 ​

在 data/.env 文件中添加以下配置:

env
# ===== 问答Bot配置 =====
# 问答Bot的Token(从@BotFather获取,必须与主Bot不同)
QA_BOT_TOKEN=your_qa_bot_token_here

# 是否启用问答Bot(True/False)
QA_BOT_ENABLED=True

# 问答Bot使用限制配置
# 每个用户每日限额(默认3次)
QA_BOT_USER_LIMIT=3

# 每日总限额(默认200次)
QA_BOT_DAILY_LIMIT=200

3. 启动问答Bot ​

bash
# 独立运行问答Bot
python qa_bot.py

# 或使用Docker Compose(需要修改docker-compose.yml)
docker-compose up qa_bot

4. 开始使用 ​

在Telegram中找到你创建的问答Bot,发送 /start 命令开始使用!


💬 使用示例 ​

基础查询 ​

👤 用户: 频道上周发生了什么?
🤖 Bot: [分析历史总结,提取关键事件...]

👤 用户: 最近有什么关于AI的讨论?
🤖 Bot: [搜索AI相关内容,生成总结...]

时间范围查询 ​

• "今天有什么新动态?"
• "昨天发生了什么?"
• "本周有哪些更新?"
• "上周有哪些重要事件?"
• "最近7天有什么讨论?"

关键词搜索 ​

• "查找所有提到GPT-4的总结"
• "最近有什么技术讨论?"
• "关于Python的内容"
• "区块链相关的话题"

统计查询 ​

• "系统有多少条总结?"
• "统计频道数据"
• "各个频道的总结数量"

配额查询 ​

• "我的配额还剩多少?"
• "还能问几次?"
• "今日使用状态"

🎯 查询类型 ​

问答Bot支持以下查询类型:

1. 总结查询 ​

示例:

  • "上周发生了什么?"
  • "今天有什么更新?"
  • "本周有什么重要事件?"

特点:

  • 基于时间范围查询历史总结
  • AI智能提取关键事件并生成连贯回答
  • 支持多频道综合查询

2. 关键词查询 ​

示例:

  • "提到GPT-4的内容"
  • "技术讨论相关"
  • "Python相关话题"

特点:

  • 在总结文本和元数据中搜索关键词
  • 返回相关度最高的总结
  • 支持多个关键词组合查询

3. 主题查询 ​

示例:

  • "有什么技术讨论?"
  • "最近有什么新闻?"
  • "关于更新的内容"

特点:

  • 基于预定义主题标签检索
  • AI自动识别总结主题
  • 支持主题过滤和时间范围

4. 统计查询 ​

示例:

  • "系统统计"
  • "有多少条总结?"
  • "频道排名"

特点:

  • 返回统计数据和排名
  • 支持多频道对比
  • 实时更新

5. 状态查询 ​

示例:

  • "配额状态"
  • "还能问几次?"
  • "今日使用量"

特点:

  • 查看个人配额使用情况
  • 显示系统总配额状态
  • 实时更新

⚙️ 使用限制 ​

配额管理 ​

普通用户 ​

  • 每日限额:3次
  • 说明:
    • 每日00:00(UTC)自动重置
    • 配额用尽后需等待次日重置
    • 返回配额状态提示

殡理员 ​

  • 每日限额:无限制
  • 说明:
    • 管理员ID在 data/.env 中配置
    • 不受配额限制
    • 可随时使用

系统总限额 ​

  • 每日总限额:200次
  • 说明:
    • 所有用户的总使用次数
    • 达到总限额后,非管理员用户无法使用
    • 每日00:00自动重置

配额查询命令 ​

/status - 查看你的配额使用状态

🔧 技术原理 ​

系统架构 ​

┌─────────────────────────────────────────────────────┐
│  主Bot(总结Bot)                                      │
│  - 频道监控和总结                                      │
│  - 投票功能                                          │
│  - 管理员命令                                         │
└──────────┬──────────────────────────────────────────┘
           │
           │ 共享数据库(MySQL)
           │
           ↓
┌─────────────────────────────────────────────────────┐
│  问答Bot(智能助手)                                  │
│  - 自然语言对话接口                                    │
│  - 意图解析器                                         │
│  - 记忆管理器                                         │
│  - 问答引擎                                           │
│  - 配额管理器                                         │
└─────────────────────────────────────────────────────┘

核心模块 ​

1. 意图解析器(IntentParser) ​

识别用户查询意图:

  • 时间范围提取(今天、上周、最近7天等)
  • 关键词提取(AI、GPT、Python等)
  • 主题识别(技术、新闻、讨论等)
  • 查询类型判断(总结、统计、状态等)

2. 记忆管理器(MemoryManager) ​

管理和检索频道信息:

  • 频道画像(Channel Profile)
  • 关键词和主题索引
  • 时间范围过滤
  • 智能搜索

3. 问答引擎(QAEngine) ​

生成回答的核心引擎:

  • 检索相关总结
  • AI理解上下文
  • 生成连贯回答
  • 降级方案(直接返回摘要)

4. 配额管理器(QuotaManager) ​

管理使用配额:

  • 用户配额检查
  • 总配额控制
  • 自动重置机制
  • 管理员豁免

数据流 ​

用户查询 → 意图解析 → 配额检查 → 记忆检索 → AI生成 → 返回回答

🛠️ 故障排除 ​

常见问题 ​

1. Bot无响应 ​

可能原因:

  • Bot未启动
  • Token配置错误
  • 网络连接问题

解决方法:

bash
# 检查Bot是否运行
docker-compose ps qa_bot

# 查看日志
docker-compose logs qa_bot

# 重启Bot
docker-compose restart qa_bot

2. 配额不足 ​

提示信息:

⚠️ 今日配额已用尽(3/3),请明天再试。
💡 每日00:00自动重置

解决方法:

  • 等待次日自动重置
  • 联系管理员申请豁免
  • 考虑部署独立实例

3. 未找到相关总结 ​

提示信息:

🔍 未找到相关总结。

💡 提示:尝试调整关键词或时间范围。

解决方法:

  • 扩大时间范围
  • 调整关键词
  • 确认频道有总结数据

4. AI生成失败 ​

提示信息:

❌ 处理查询时出错,请稍后重试。

解决方法:

  • 稍后重试(降级方案会直接返回摘要)
  • 检查AI API配置
  • 查看日志排查问题

📊 性能优化 ​

数据库优化 ​

  • WAL模式:支持多进程并发读写
  • 索引优化:关键字段建立索引
  • 查询缓存:热点数据缓存

AI优化 ​

  • 提示词优化:精简高效的提示词
  • 温度控制:平衡创造性和准确性
  • 降级方案:AI失败时直接返回摘要

配额管理 ​

  • 自动重置:每日00:00自动重置
  • 并发控制:MySQL 连接池和跨进程队列支持
  • 灵活配置:支持调整限额

🔒 安全与隐私 ​

数据安全 ​

  • 数据库加密:支持数据库文件加密
  • 访问控制:用户仅能访问总结数据
  • 敏感信息:不存储用户敏感信息

配额保护 ​

  • 防滥用:配额限制防止恶意使用
  • 监控告警:异常使用自动告警
  • 管理员特权:管理员无配额限制

隐私保护 ​

  • 数据最小化:仅收集必要数据
  • 匿名化处理:用户ID匿名存储
  • 数据保留:可配置数据保留策略

📝 配置参考 ​

环境变量 ​

变量说明默认值必需
QA_BOT_TOKEN问答Bot的Token-是
QA_BOT_ENABLED是否启用问答BotTrue否
QA_BOT_USER_LIMIT每用户每日限额3否
QA_BOT_DAILY_LIMIT每日总限额200否

Docker部署 ​

修改 docker-compose.yml:

yaml
services:
  qa_bot:
    build: .
    command: python qa_bot.py
    environment:
      - QA_BOT_TOKEN=${QA_BOT_TOKEN}
      - QA_BOT_ENABLED=${QA_BOT_ENABLED:-True}
      - QA_BOT_USER_LIMIT=${QA_BOT_USER_LIMIT:-3}
      - QA_BOT_DAILY_LIMIT=${QA_BOT_DAILY_LIMIT:-200}
    volumes:
      - ./data:/app/data
    restart: unless-stopped

启动服务:

bash
docker-compose up -d qa_bot

🚀 未来规划 ​

Phase 5: 高级特性(待实施) ​

  • [ ] 向量数据库集成(ChromaDB/FAISS)
  • [ ] 语义搜索能力
  • [ ] 多轮对话支持
  • [ ] 上下文记忆
  • [ ] 个性化推荐
  • [ ] Web Dashboard
  • [ ] API接口

社区贡献 ​

欢迎贡献代码和想法!请查看:


📞 支持 ​


Made with ❤️ by Sakura520222

基于 AGPL-3.0 许可证发布