上海市场监督管理局网站,云南网站优化哪家好,上海房产信息网官网,网站建设成本包含哪些方面文章目录 背景1 创建机器人2 与机器人的会话3 调用API让机器人发送消息 背景
在训练深度学习模型时#xff0c;除了粗略估计外#xff0c;很难预测训练何时结束。此外#xff0c;我们可能还想随时随地查看训练情况#xff0c;如果每次都需要登录回服务器的话并不方便。因此… 文章目录 背景1 创建机器人2 与机器人的会话3 调用API让机器人发送消息 背景
在训练深度学习模型时除了粗略估计外很难预测训练何时结束。此外我们可能还想随时随地查看训练情况如果每次都需要登录回服务器的话并不方便。因此为我们的训练设置自动通知会大有裨益。
相关的插件和库其实很多例如而knockknock、dinglingling但是存在着以下缺点
依赖第三方服务dinglingling依赖于ServerChan在微信端发送通知是需要付费订阅会员的。需要添加装饰器代码可读性下降。自定义能力差仅仅起到通知作用。
基于此个人认为比较好的方式是直接能使用免费的服务给自己发送消息我比较推荐使用telegram电报因为飞书、钉钉、企业微信等都或多或少在逐步限缩个人版的机器人使用以后可能会成为付费专属功能。
在可以正常使用telegram的情况下可以按照下面的步骤操作。
1 创建机器人
电报的机器人是我们可以自己创建的一个聊天对象表现形式和添加的好友一样只是名字需要以 bot 结尾不区分大小写。
要使用机器人发消息给自己或群组先得有一个机器人创建一个属于自己的机器人很简单添加BotFather这个账号依次发送以下内容即可
/start/newbotYourNameBot (给机器人取名字以 bot 结尾不区分大小写直接发送过去即可如果重名了会提示重新输入)创建成功后BotFather会返回一个token这是用来调用API接口的后面会用到。
2 与机器人的会话
上面我们创建了“YourNameBot”这个机器人要与之对话在任意聊天窗口发送 “YourNameBot” 然后点击这条消息即可打开与YourNameBot的聊天。
如果你需要机器人发送消息给群组还需要把机器人拉入到群组中。
特别注意我们需要先与机器人之间创建会话主动给它发一次消息机器人才能给我们发消息否则机器人无法主动发送消息。
通过发送第一条消息我们可以访问
https://api.telegram.org/botYourBOTToken/getUpdates这个链接把token替换成刚刚我们获得的机器人的token就可以查看机器人的会话信息因为我们向机器人主动发了消息所以我们可以获取以message为key下面的[‘chat’][‘id’]这就是我们需要的chat_id消息室的标识。
3 调用API让机器人发送消息
现在我们有了token、chat_id接下来我们只需要组建我们的message就可以发送了这个接口是
https://api.telegram.org/botYourBOTToken/sendMessage我们可以使用python的requests库来发送post请求。写了个简易的代码大家可以根据自己的需求进行修改。
import requests
import jsondef telegram_notification(epoch, avg_test_scalars):Send notification to telegramparamsepoch: intavg_test_scalars: dictreturn: None# chat id of userCHAT_ID: int 1234567# telegram bot tokenTOKEN1234567url https://api.telegram.org/bot{}/sendMessage.format(TOKEN)headers {Content-Type: application/json}# main texttext Epoch: {} has completed!\n.format(epoch)text json.dumps(avg_test_scalars)# pack datadata {chat_id: {}.format(CHAT_ID),text: text}# send requestresponse requests.post(urlurl, headersheaders, jsondata)returnif __name__ __main__:telegram_notification(1, {a: 1, b: 2})效果如图