您的位置:首页 > 教育 > 锐评 > 【NLP开发】Python实现聊天机器人(微信机器人)

【NLP开发】Python实现聊天机器人(微信机器人)

2024/7/3 14:01:38 来源:https://blog.csdn.net/hhy321/article/details/126945378  浏览:    关键词:【NLP开发】Python实现聊天机器人(微信机器人)
🍺NLP开发系列相关文章编写如下🍺:
1🎈【小沐学NLP】Python实现词云图🎈
2🎈【小沐学NLP】Python实现图片文字识别🎈
3🎈【小沐学NLP】Python实现中文、英文分词🎈
4🎈【小沐学NLP】Python实现聊天机器人(ELIZA))🎈
5🎈【小沐学NLP】Python实现聊天机器人(ALICE)🎈
6🎈【小沐学NLP】Python实现聊天机器人(微软Azure)🎈
7🎈【小沐学NLP】Python实现聊天机器人(微软小冰)🎈
8🎈【小沐学NLP】Python实现聊天机器人(钉钉机器人)🎈
9🎈【小沐学NLP】Python实现聊天机器人(微信机器人)🎈
10🎈【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)🎈
11🎈【小沐学NLP】Python实现聊天机器人(若干在线聊天机器人)🎈
12🎈【小沐学NLP】Python实现聊天机器人(ChatterBot,代码示例)🎈
13🎈【小沐学NLP】Python实现聊天机器人(ChatterBot,集成前端页面)🎈
14🎈【小沐学NLP】Python实现聊天机器人(ChatterBot,集成web服务)🎈

文章目录

  • 1、简介
  • 2、机器人配置
    • 2.1 群机器人添加入口
    • 2.2 移除群机器人入口
    • 2.3 发布机器人到公司
    • 2.4 添加/创建群机器人条件
    • 2.5 群机器人Webhook地址
    • 2.6 群机器人发送消息
    • 2.7 如何停用机器人
  • 3、机器人代码测试
    • 3.1 配置curl
    • 3.2 消息类型及数据格式
      • 3.2.1 文本类型
      • 3.2.2 markdown类型
      • 3.2.3 图片类型
      • 3.2.4 图文类型
      • 3.2.5 语音类型
    • 3.3 消息发送代码
      • 3.3.1 代码一
      • 3.3.2 代码二
  • 结语

1、简介

https://open.work.weixin.qq.com/help2/pc/14931?person_id=1&is_tencent=

https://hiflow.tencent.com/document/applications/wwx-robot/#%E7%AC%AC%E4%B8%80%E6%AD%A5-%E6%89%93%E5%BC%80%E6%9C%BA%E5%99%A8%E4%BA%BA%E6%8E%A5%E6%94%B6%E6%B6%88%E6%81%AF%E9%85%8D%E7%BD%AE%E9%A1%B5

通过接口实现在企业微信群里发送告警或提醒类的消息通知。

通过定时触发器,可以非常简单快速地建立一个企业微信机器人。我们可以用它来实现喝水、吃饭提醒等小功能,还能实现定时推送新闻、天气,甚至是监控告警的小功能。

通过腾讯云HiFlow场景连接器,可以零代码的设置企业微信机器人自动/定时发消息的规则,比如:每周五下午6点定时发送周报;收到新的销售线索/报表自动发送消息通知管理群等。
在这里插入图片描述

  • 发送群图文消息:发送图片+文本标题的消息样式到企业微信群,支持给图片设置跳转链接
  • 发送富文本消息:发送富文本消息到企业微信群,可以给文本添加样式,比如加粗、更改颜色、加超链接等
  • 发送文本消息:发送纯文本消息到企业微信群,并且可以@提醒指定用户

2、机器人配置

2.1 群机器人添加入口

  • 1、【电脑端内部群聊->右上方三个点->添加群机器人】,可以新建机器人或选择已发布到公司的机器人。
    在这里插入图片描述
  • 2、【手机端内部群聊->右上角三个点->添加群机器人】
    在这里插入图片描述

2.2 移除群机器人入口

【电脑端内部群聊->群成员->点击群机器人鼠标右键->移除机器人】
在这里插入图片描述
【手机端内部群聊->右上角三个点->群机器人->点击对应的机器人->右上角三个点->移除】
在这里插入图片描述

2.3 发布机器人到公司

在群聊选择需要发布的【机器人->鼠标右键“查看资料”->发布到公司】
在这里插入图片描述
在这里插入图片描述

2.4 添加/创建群机器人条件

1、目前内部群聊支持机器人,外部群暂不支持。(若内部群开启了“仅群主管理”,则成员无添加机器人入口)
2、管理员在管理后台未限制创建机器人,或在白名单内的成员,支持创建机器人。

在这里插入图片描述

2.5 群机器人Webhook地址

群机器人的创建人,可在查看机器人信息时,获取对应机器人的Webhook URL。
手机端可【进入群聊->右上角三个点->群机器人->点击对应机器人->Webhook地址】
在这里插入图片描述
电脑端可【进入群聊->群成员列表->右键对应机器人->查看资料->Webhook地址】
在这里插入图片描述

2.6 群机器人发送消息

1、目前暂不支持设置消息回调配置。支持设置机器人主动推送。
2、群聊可添加的机器人数量暂无上限。
3、Win端和手机端中的群机器人推送的消息气泡背景色为灰色,v3.1.6开始,Mac端中群机器人的消息气泡背景色为白色。
4、机器人发消息的频率:每个机器人发送的消息不能超过20条/分钟。
5、目前机器人支持推送文本消息、markdown格式、图片类型、文件类型、图文类型的消息。

注:文件大小在5B~20M之间;图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图 1068 × 455,小图150 × 150;图片(base64编码前)最大不能超过2M,支持JPG,PNG格式。

2.7 如何停用机器人

超级管理员支持在【管理后台->应用管理->自建->机器人】中停用/启用机器人应用和停用/启用机器人。
在这里插入图片描述

3、机器人代码测试

https://developer.work.weixin.qq.com/document/path/91770

在终端某个群组添加机器人之后,创建者可以在机器人详情页看到该机器人特有的webhookurl。开发者可以按以下说明向这个地址发起HTTP POST 请求,即可实现给该群组发送消息。下面举个简单的例子.
假设webhook是:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa

注意要将url替换成你的机器人webhook地址,content必须是utf8编码.
curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa' \-H 'Content-Type: application/json' \-d '{"msgtype": "text","text": {"content": "hello world"}}'
curl -X POST "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx" -H "Content-Type:application/json" -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"今天. 06/01:晴. 19~33°.\"}}"

3.1 配置curl

cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。

cURL支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。

  • 下载curl:
    https://curl.se/download.html
    在这里插入图片描述

https://curl.se/windows/
在这里插入图片描述

  • 查看curl版本
    在这里插入图片描述

3.2 消息类型及数据格式

当前自定义机器人支持文本(text)、markdown(markdown)、图片(image)、图文(news)、文件(file)、语音(voice)、模板卡片(template_card)七种消息类型。

3.2.1 文本类型

{"msgtype": "text","text": {"content": "广州今日天气:29度,大部分多云,降雨概率:60%","mentioned_list":["wangqing","@all"],"mentioned_mobile_list":["13800001111","@all"]}
}

3.2.2 markdown类型

{"msgtype": "markdown","markdown": {"content": "实时新增用户反馈<font color=\"warning\">132</font>,请相关同事注意。\n>类型:<font color=\"comment\">用户反馈</font>>普通用户反馈:<font color=\"comment\">117</font>>VIP用户反馈:<font color=\"comment\">15例</font>"}
}

3.2.3 图片类型

{"msgtype": "image","image": {"base64": "DATA","md5": "MD5"}
}

3.2.4 图文类型

{"msgtype": "news","news": {"articles" : [{"title" : "中秋节礼品领取","description" : "今年中秋节公司有豪礼相送","url" : "www.qq.com","picurl" : "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"}]}
}

3.2.5 语音类型

{"msgtype": "voice","voice": {"media_id": "MEDIA_ID"}
}

3.3 消息发送代码

3.3.1 代码一

"""
企业微信
-*- coding: utf-8 -*-@Author  : xxxxxxx@File    : WechatWebHook.py
"""import requestsclass WechatWebHook:"""企业微信消息推送"""@classmethoddef push_error_msg(cls, msg: str) -> None:webhook_uri = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxx""""错误日志直接推送至企业微信"""data = {"msgtype": "text","text": {"content": msg,"mentioned_mobile_list": ["13800000001"]}}requests.post(url=webhook_uri, headers={"Content-Type": "text/plain"}, json=data)if __name__ == '__main__':WechatWebHook.push_error_msg("当前气温18摄氏度,未来2小时不会下雨,出门佩戴口罩。")

3.3.2 代码二

curl '企业微信机器人地址' \-H 'Content-Type: application/json' \-d '{"msgtype": "text","text": {"content": "hello world"}}'
import os
import json
import urllib.requestdef main_handler(event, context):url = os.environ.get("url")data = {"msgtype": "markdown","markdown": {"content": "hello world",}}data = json.dumps(data).encode("utf-8")req_attr = urllib.request.Request(url, data)resp_attr = urllib.request.urlopen(req_attr)return resp_attr.read().decode("utf-8")

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com