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