简介: 在本教程中,我们将了解如何利用聊天机器人来协助网络运营。随着我们向智能化运营迈进,另一个需要关注的领域是移动性。
作者:Melisha Dsouza
文章来源:微信公众号 数据派THU
翻译:吴金笛
校对:国相洁
本文约3000字,建议阅读10+分钟。
本文是创建聊天机器人实现网络运营的简单教程。
在本教程中,我们将了解如何利用聊天机器人来协助网络运营。随着我们向智能化运营迈进,另一个需要关注的领域是移动性。用一个脚本来进行配置,修复甚至故障检修是很好的,但它仍然需要有人在场来监督,启动甚至执行这些程序或脚本。
Nokia’s MIKA 是一个很好的聊天机器人例子,操作人员可以用它来进行网络故障排除和修复。根据 Nokia’s blog,MIKA会根据此单个网络的实际情况给出一个警报优先级信息,并将当前的情况与该网络和其他网络过去事件的整个服务历史进行比较,以确定当前问题的最佳解决方案。
Nokia’s MIKA
https://networks.nokia.com/services/digital-assistant-as-a-service
Nokia’s blog
https://www.nokia.com/blog/chatting-bots-home-work
让我们创建一个聊天机器人来协助网络运营。对于这个用例,我们将使用一个被广泛使用的聊天应用程序Slack。参考Splunk的智能数据分析能力,我们将看到一些用户与聊天机器人的互动,从而对环境有一些了解。
本教程摘自AbhishekRatan撰写的名为《Practical Network Automation – SecondEdition》的书。 这本书将向您介绍网络自动化的基本概念,并帮助您提高你的数据中心的稳健性和安全性。
可以在GitHub中找到本教程的代码:
Github链接:
https://github.com/PacktPublishing/Practical-Network-Automation-Second-Edition/tree/master/Chapter0
在我们部署web框架时,我们将利用相同的框架与Slack聊天机器人进行交互,后者又将与Splunk进行交互。它还可以直接与网络设备交互,所以我们可以发起一些复杂的聊天,例如在需要时从Slack重启路由器。这最终为工程师提供了移动性,工程师可以在任何地方(甚至是手机)处理任务,而不必被固定在某个地点或办公室。
要创建聊天机器人,以下是基本步骤:
- 在Slack上创建一个工作区(或帐户):
- 在你的工作区创建一个应用程序(在我们的例子中,我们创建了一个叫做mybot的应用程序):
- 以下是关于该应用程序的基本信息(App ID 和Client ID可以与唯一标识此应用程序的其他信息一起使用):
- 为此应用程序添加bot功能:
添加事件订阅并映射到将要发布消息的外部API。
事件订阅是指某人在聊天中键入对聊天机器人的引用,然后使用该聊天机器人与聊天中被输入的数据调用这个API:
这里,一个关键的步骤是,一旦我们输入了接受聊天消息的URL,就需要从Slack验证这个特定的URL。验证就是API端点以字符串或JSON的格式返回,与从Slack发送的响应相同的响应。如果我们收到相同的响应,Slack确认该端点是可信的并将其标记为已验证。这是一个一次性的过程,并且API URL中的任何更改都将导致此步骤的重复。
以下是Ops API框架中响应特定查询的Python代码:
1. import falcon 2. import json 3. def on_get(self,req,resp): 4. # Handles GET request 5. resp.status=falcon.HTTP_200 # Default status 6. resp.body=json.dumps({"Server is Up!"}) 7. def on_post(self,req,resp): 8. # Handles POST Request 9. print("In post") 10. data=req.bounded_stream.read() 11. try: 12. # Authenticating end point to Slack 13. data=json.loads(data)["challenge"] 14. # Default status 15. resp.status=falcon.HTTP_200 16. # Send challenge string back as response 17. resp.body=data 18. except: 19. # URL already verified 20. resp.status=falcon.HTTP_200 21. resp.body=""
这将验证,如果从Slack发出一个”challenge”,它将返回相同的”challenge”,这个值确认该端点是Slack频道发送聊天数据的正确端点。
- 安装此应用程序(或聊天机器人)到任何频道(这类似于在群聊中添加用户):
响应特定聊天信息的核心API框架代码执行以下操作:
- 确认任何发送到Slack的信息在三秒内响应200次。如果没有这样,Slack报告:endpoint not reachable.
- 确保任何从聊天机器人(不是来自任何真实用户)发出的信息不作为回复信息再次被发回。这可能会造成循环,因为从聊天机器人发送的消息将被视为Slack聊天中的新消息,然后它将被再次发送到URL。这最终会使聊天无法使用,从而导致聊天中出现重复的消息。
- 使用将被发送回Slack的令牌对响应进行身份验证,以确保来自Slack的响应来自经过身份验证的源。
原文标题:
Creating a chatbot to assist in network operations [Tutorial]
代码请查看原文链接:点击下方“了解更多”(因为内容较多,进行了部分删减,需要阅读全文的可以通过链接进行了解)
译者简介
吴金笛,雪城大学计算机科学硕士一年级在读。迎难而上是我最舒服的状态,动心忍性,曾益我所不能。我的目标是做个早睡早起的Cool Girl。
翻译组招募信息
工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。
你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。
其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。