前言

说明:

机器人的框架找了很久,由于很多框架都不能使用了或者封号率极高,最后选择了wewechaty,wechaty是可以使用ipad协议,主要是以node写的,因为打算机器人接入爬虫项目,所以特意用了python版本,对于python版网上教程太少且模糊且时间过于久远,所做以此文为采坑记录。

前期准备:

token:
padlocal (新用户可以免费领取七天)

百度智能云:千帆模型 (不需要接入文心一言的可以绕过)

可能用到的网站:

wechaty中文文档 :node版本可以查看相关语法与使用,大致python差不多

python-wechaty:python文档没有node版本齐全 大致也能搭建

快速搭建

提示:本文默认都对Docker的基本使用有所了解的基础下进行

总体来说分为两步:

1.Docker启动Padlocal网关服务的容器(固定)

2.Docker启动自己的python服务的容器连接启动的网关服务(自己的机器人代码)

第一步:

新建SH文件 start.sh

export WECHATY_LOG="verbose"
export WECHATY_PUPPET="wechaty-puppet-padlocal"
export WECHATY_PUPPET_PADLOCAL_TOKEN="puppet_padlocal_51d6b6a6a60546a7b33a5041c1e44a72"
export WECHATY_PUPPET_SERVER_PORT="8004"
export WECHATY_TOKEN="0c7b8f97-f3cc-40a5-a537-d492fd689801"
sed -i s/token=.*/token=$WECHATY_TOKEN/g .envdocker run -ti \--name wechaty_puppet_service_token_gateway \--rm \-e WECHATY_LOG \-e WECHATY_PUPPET \-e WECHATY_PUPPET_PADLOCAL_TOKEN \-e WECHATY_PUPPET_SERVER_PORT \-e WECHATY_TOKEN \-p "$WECHATY_PUPPET_SERVER_PORT:$WECHATY_PUPPET_SERVER_PORT" \wechaty/wechaty:0.65

主要参数说明:

WECHATY_PUPPET:协议标识 这里我们使用wechaty-puppet-padlocal作为ipd协议

WECHATY_PUPPET_PADLOCAL_TOKEN:上文中提到的申请的token,必填必正常否则无法使用

WECHATY_PUPPET_SERVER_PORT :端口号,需要服务器开放该端口,供python服务调用

WECHATY_TOKEN:随机生成UUID,避免服务被他人窃取 可用import uuid;print(uuid.uuid4())或者在线生成uuid

其余参数可以不变

运行该文件,启动Padlocal网关,启动后如提示信息为微信登录图片,可复制到浏览器扫码登录。

第二步:

新增python项目,bot.py文件,以下为官方示例删减后代码,主要图一个方便理解

import asyncio, os
from wechaty import Wechatyclass MyBot(Wechaty):async def on_message(self, msg):from_contact = msg.talker()text = msg.text()room = msg.room()if text == 'ding':conversation = from_contact if room is None else roomawait conversation.ready()await conversation.say('dong')os.environ['TOKEN'] = "1fe5f846-3cfb-401d-b20c-XXXXX"
os.environ['WECHATY_PUPPET_SERVICE_ENDPOINT'] = "127.0.0.1:9001"
bot = MyBot()#bot.on('scan', lambda status, qrcode, data: print(
#    'Scan QR Code to login: {}\nhttps://wechaty.js.org/qrcode/{}'.format(status, qrcode)))
#bot.on('login', lambda user: print('User {} logged in'.format(user)))
#bot.on('message', lambda message: print('Message: {}'.format(message)))

主要说一下作用:收到消息为ding的消息,回复dong

msg.talker() 获取消息的发送者

msg.text() 获取消息内容

msg.room() 群里消息,如果消息不是来自群聊, 则返回None 特别注意:如果是群里对象msg.talker()也会有值,值为当前群里发送消息的人

conversation.ready() 当所有数据加载完成时发出(如果是个人使用主体为talker()回复,如是群使用主体为room())

conversation.say() 发送消息(同上如果是个人使用主体为talker()回复,如是群使用主体为room()),
如果是群聊发送指定人则填入第二个参数即可,第二个参数为:msg.talker().contact_id

os.environ['TOKEN'] 填入之前生成的随机数uuid

os.environ['WECHATY_PUPPET_SERVICE_ENDPOINT']刚部署的服务器地址 端口需要与之前第一步设定的一致

bot.on方法

监听事件:

例如scan事件:当需要扫码登录时触发,还有比如login登录成功后触发,room-join加入群聊触发更多详情可建文档

还需要注意的几个重要方法:

1.msg.is_self() 是否自己(机器人)发出的消息,机器人发的消息也会进入当前函数

2.msg.type() 判断消息类型,注意:比如加入群聊或者退出群里都会进入当期函数

更多可见文档

本地运行的话就可以实现一个简单的机器人,向其发送ding则会收到dong的回复

至此,微信机器人搭建,可根据个性需求回复个性内容。

如需要部署到服务器还需要构建docker镜像,以下为懒人办法创建Dockerfille,Makefile,requirements.txt,如以下目录

Dockerfille


WORKDIR /botCOPY requirements.txt requirements.txtCOPY Makefile MakefileRUN make installCOPY . .CMD [ "make", "run"]

基于python3.8的环境

Makefile

P=$(shell pwd).PHONY: build
build: docker build -t py-wechaty-template-bot:latest ..PHONY: dockerrun
dockerrun:docker run -it -d -v $(P):/bot --name bot -p 8005:8005 py-wechaty-template-bot:latest.PHONY: bot
bot:make buildmake dockerrun.PHONY: install
install:pip install -r requirements.txt.PHONY: run
run:python bot.py

注意端口不能与之前的服务端口重复

requirements.txt

wechaty
wechaty-plugin-contrib
quart
python-dotenv
docker
apscheduler
dataclasses-json
urllib3 == 1.26
pymysql

特别注意:urllib3最好安装1.26版本本人经过几次失败后总结

在当前目录运行 make bot 即可部署上服务器

文心一言

第一步开通服务

打开千帆模型,选中左侧菜单计费管理,选择开通服务

选中预置服务 勾选前三个 点击下一步

根据提示直到开通成功

选择左边应用接入,创建应用,输入应用名称描述、创建

记住API Key和Secret Key 鉴权接口需要

第二步调用api

获取鉴权的token
鉴权文档

使用ERNIE-Bot模型 文档地址:https://cloud.baidu.com/doc/WENXINWORKSHOP/s/jlil56u11

重点说一下messages参数格式

messages是一个聊天上下文信息,一个成员代表单轮对对话,数组长度必须为奇数

例如:

 messages=[{"role": "user","content": "你好"},{"role": "assistant","content": "你好!"},{"role": "user","content": "你叫什么名字"}]

role:user: 表示用户 assistant: 表示对话助手

content:对话内容

每次为奇数也就是代表用户最后的提问,如果长度为1那么就是一次新的回话

接下来封装api,结合微信机器人就可以打造自动回复的微信机器人了

wechaty撸一个属于自己的微信机器人(Python版接入文心一言)相关推荐

  1. 集度CEO夏一平:汽车机器人将融合百度文心一言的全面能力

    2月14日,集度"ROBOVERSE三里屯体验中心启动会"在北京举办,正式发布集度数字宇宙体验计划ROBOVERSE(汽车机器人宇宙),将面向用户打造一系列具有开创性的数字化体验. ...

  2. 手撸一个仿蚂蚁森林微信小程序

    每天逛逛CSDN,看看大牛们的技术文章,查找自己想了解的知识,是我必做的事情. 每天到支付宝看看自己的余额,看看自己的33块钱还在吗?顺便到蚂蚁森林收下自己和好友的能量是我必做的事.看着自己的能量又被 ...

  3. 微信机器人高级版常见问题汇总

    下面列出微信机器人高级版可能碰到的一些问题和解决方案,以便大家碰到类似的问题的时候能够快速找到答案并修正,本文也会长期更新 1. 如何安装和升级 安装:上传到 wp-content/plugins/ ...

  4. 微软或将于下周推出GPT-4;百度将在3月16日发布文心一言;小i机器人成功登陆纳斯达克丨每日大事件...

    ‍ ‍数据智能产业创新服务媒体 --聚焦数智 · 改变商业 企业动态 百度计划于3月16日14时召开新闻发布会,主题围绕文心一言 3月10日,据百度官方微博消息,百度计划于3月16日14时在北京总部召 ...

  5. 微信支付python版2.0_刷卡支付-翟东平-专题视频课程

    微信支付python版2.0_刷卡支付-244人已学习 课程介绍         微信支付系列课程将讲解"刷卡支付"."扫码支付"."公众号支付&qu ...

  6. 微信机器人网页版接口详解

    微信网页版接口详解 本系列会讲述微信机器人技术的实现,第一讲主要了解微信网页版给我们提供的http接口,这一步是做一个基于微信网页版机器人的基础和难点. 本讲将微信网页版的主要接口罗列出,并给出了入参 ...

  7. java微信机器人_Java版微信机器人代码

    Java版微信机器人代码 (2014-07-31 09:47:58) 标签: 软件测试 java 上海泽众软件 package com.eiyoung.wechat.web.controller; i ...

  8. 用javascript教你打造一个免费的PC微信机器人《二》

    发送消息的后台逻辑 从手机微信,PC微信,发送文本消息.图片消息.语音等消息,首要的一步:选择你要发送消息的具体对象,实际就是选择你通讯录里面的好友(包括好友,群).但真正微信后台的处理,是用到了微信 ...

  9. ABAP推送企业微信机器人6-模版卡片类型<转载>

    原文链接:https://blog.51cto.com/u_15291229/4905465 效果展示 Demo Code * PARAMETERS:P_FILE TYPE STRING.DATA:L ...

  10. zabbix之微信告警(python版):微信个人报警,微信企业号告警脚本

    微信个人告警脚本 微信个人告警:使用个人微信,发送到微信群组,微信好友 两个脚本执行: 1)能连接网络 2)先执行server.py,扫描登录微信,登录之后没有报错,打开新终端查看端口是否起来了 3) ...

最新文章

  1. 一个有意思的项目,快上车!
  2. CBNetV2:北大提出的复合主干网络,COCO成绩60.1%
  3. 阿里云服务centOS7下安装rabbitmq
  4. .net IL 指令速查
  5. CentOS 6.4 Heartbeat+mysql+nfs实现高可用的mysql集群
  6. 【LeetCode - 1254】统计封闭岛屿的数目(dfs,连通块)
  7. github private链接访问_将github配置为图床+PicGo配置
  8. 搜狐视频怎么设置自动连播
  9. 服务器上在哪修改my.in,wordpress plugin的SVN使用方法
  10. 历时3个月,我们是如何为一个开源项目集资300万美元的?
  11. oracle怎么定位效率,oracle查询效率,该怎么解决
  12. c#程序设计实训报告心得体会_C#实训总结报告
  13. 台式计算机和台式机,台式电脑i5和i7的区别_台式机i5和i7的区别有多大
  14. 搜狗输入html,搜狗输入法:回家的路
  15. 2021朋友圈都在传的10本书,找到了
  16. 浅谈JS转换字符串为数字
  17. UnityVR--小程序4--第一人称控制器
  18. python大数据毕业设计题目100例
  19. 【题海算法】趣味算命
  20. 笔记本电脑出现“正在锁定”,然后就自动关机的解决方案

热门文章

  1. 嫦娥奔月html+css
  2. 程序员的帝路应该是肉身成圣
  3. ERP实施成功的8条因素(zt)
  4. vue实现腾讯地图组件
  5. 0.2、Vue 开发工具 HbuilderX
  6. 记录 SDL硬件渲染(AVFrame)
  7. 2019年全国声学大会,西安安泰电子诚邀您来参展
  8. VSCODE里调试go
  9. 【计算机毕业设计】179大学生创新创业平台项目管理子系统
  10. java计算机毕业设计医院新型冠状病毒疫苗接种管理系统源码+数据库+系统+lw文档+部署