3.3 KiB
3.3 KiB
Telegram详细内容
-
官方API参考内容
模块功能需求
消息通知
- 功能概述: 能够根据不同的消息来源, 操作TelegramBotAPI发送消息,消息来源如下:
- 接口暴露
- AI智能体
- 机器人功能
- 实现优先级: 高
接口暴露
- 通过GIN框架暴露接口,能够方便的进行消息通知
- 需要有强Token验证才行
- 设计握手式Token获取法
- 每个Token的有效期为6小时
消息通知范围
- 单对单消息
- 群组消息
通知消息体
- 通知等级
- 消息具备等级
- 不同等级的消息模板不一样
- 通知消息模板
- 服务器类-ProjectOctopus
- 金融类-ProjectTonyStack
通知时间
- 与通知等级匹配
- 正常通知时间
- 白天时间 8:00-23:00
- 紧急通知时间
- 全天
Telegram通知实现
- 向特定用户发送消息
- 向特定群组发送消息
机器人功能
- 模块描述: 按照预设的特定指令,执行操作
- 实现优先级: 低
- 该模块充分考虑功能拓展性,方便后续拓展其他的功能
定时提醒功能
- 机器人指令/notify
- 当输入指令之后,弹出时间选择窗口(参照iOS的提醒事项设计)
- 最下方 提醒内容输入框
- 上方显示 日期选项按钮,时间选项按钮,重复选项按钮
- 日期选项选中,可以以日历的形式选择提醒日期
- 时间按钮选中,默认勾选日期为今天,弹出时间选择
- 重复按钮选中,弹出重复提醒选项,每日 每周 每两周 每月 自定义(任意选择星期几)
- 显示提交按钮,点击后可以提交
- 机器人记录提醒时间及内容,按照设计的时间发送提醒内容到对应的聊天
- 提醒内容需要持久化保存
定时提醒查看清除功能
- 机器人执行 /notify-list
- 当输入指令后,弹出本人的全部定时提醒内容
- 按照如下的顺序显示
- 提醒频率(无则显示 单次提醒) 提醒日期 提醒时间 摘要显示提醒内容
- 最右侧显示删除按键,点击弹出确认删除此定时提醒窗口
- 确认删除后,项目删除此提醒事项
- 若无提醒事项
- 显示无提醒事项
智能体功能
- 模块描述: 响应@ 根据用户的上下文,给出AI智能解答
- 实现优先级: 低
- 消息回复需要引用被@的那条消息和之前的三条消息
AI来源
- 需要支持如下厂家来源的API
- OpenAI chatgpt
- Google Gemini
- xAI Grok
- openRouter
- 需要支持思考过程和流式响应
- 持续返回消息需要满足消息限制器的要求
基础架构设计
白名单功能
- 只能允许白名单内的用户或者群组访问此机器人
消息限制器
- TelegramAPI的消息频率有限制,请参考官方文档,设计相应的消息发送限制器
- 参照单例模式设计,所有与Telegram交互全部通过消息限制器发送
机器人网络代理
- Telegram机器人构建需要考虑到网络代理的情况,机器人请求TelegramAPI可以接受socks5和http代理
持久化保存
- 持久化信息采用sqlite保存
- windows保存至 \naughty_man\
- linux保存至 /usr/local/etc/naughty_man/