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

这篇具有很好参考价值的文章主要介绍了wechaty撸一个属于自己的微信机器人(Python版接入文心一言)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

说明:

机器人的框架找了很久,由于很多框架都不能使用了或者封号率极高,最后选择了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 .env

docker 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 Wechaty


class 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 room
            await 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,如以下目录
wechaty,微信,机器人,python

Dockerfille


WORKDIR /bot

COPY requirements.txt requirements.txt

COPY Makefile Makefile

RUN make install

COPY . .

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 build
   make 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 即可部署上服务器

文心一言

第一步开通服务

打开千帆模型,选中左侧菜单计费管理,选择开通服务
wechaty,微信,机器人,python

选中预置服务 勾选前三个 点击下一步
wechaty,微信,机器人,python

根据提示直到开通成功

选择左边应用接入,创建应用,输入应用名称描述、创建
wechaty,微信,机器人,python

记住API Key和Secret Key 鉴权接口需要
wechaty,微信,机器人,python

第二步调用api

获取鉴权的token
鉴权文档
wechaty,微信,机器人,python

使用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,结合微信机器人就可以打造自动回复的微信机器人了文章来源地址https://www.toymoban.com/news/detail-767137.html

到了这里,关于wechaty撸一个属于自己的微信机器人(Python版接入文心一言)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 17行代码用python对接openai的微信对话机器人

    itchat python依赖下载 这里推荐这个。链接:衡天云

    2024年02月13日
    浏览(42)
  • 基于chatgpt-on-wechat的微信个人对话机器人搭建

    现在gpt很火,git中大佬们都创建了很多高星项目,我这里选用了chatgpt-on-wechat(项目地址:https://github.com/zhayujie/chatgpt-on-wechat),这个项目在扩展时也很舒服,大家可以去拉下来看看,学习源码才能方便后续的扩展 国内服务:前置条件需要走代理(这个不方便说,项目中也有对应的方案,大家

    2024年02月13日
    浏览(41)
  • 【ChatGPT】基于GO语言实现的微信聊天和图片生成机器人

    🎨基于GO语言实现的微信聊天和图片生成机器人🎨 个人微信接入ChatGPT,实现和GPT机器人互动聊天,同时支持基于文本生成图像。支持私聊回复和群聊艾特回复。 GitHub源代码地址 实现功能 GPT机器人模型热度可配置 提问增加上下文指令清空上下文 DreamStudio图像生成模型参数可

    2024年02月09日
    浏览(114)
  • 手把手教你搭建微信聊天机器人系列(三):搭建对接文心一言(ERNIE-Bot大模型)接口的微信聊天机器人

            上一章介绍了eggjs+wechaty搭建一个简单的微信聊天机器人,只是实现了简单的回复,这一章我们将对接ERNIE-Bot接口,实现智能回复。         我们在上一章代码基础上进行调整,首先我们要加入access_token的请求逻辑。第一章我们说过,请求需要使用应用对应的

    2024年02月03日
    浏览(60)
  • 如何建立自己的微信小程序,做一个微信小程序大概多少钱?

    如今,小程序的功能越来越强大,也越来越受欢迎,它不仅能帮助企业和商家做推广,还能给他们带来很多好处。所以,很多企业都开始建立自己的小程序。但是对于如何建立自己的微信小程序,以及做一个微信小程序大概多少钱,很多人并不是很清楚。下面我们就来了解一

    2024年02月11日
    浏览(54)
  • 2023年最新 wechaty 框架开发微信机器人详细 API 教程说明(NodeJs 版本)

    在使用 wechaty 相关 api 之前请大家先学习 wechaty 基础篇!!! 博主有话要说!!! 为什么要选择看博主的博文?因为 Wechaty 官方文档已经太久没有更新了,所以同学们学习 WeChaty 请使用博主的博客作为教程文档,博主都是自己研究测试整理出来的,所有的案例测试都是最新版

    2024年02月05日
    浏览(64)
  • 手把手自己制作一个飞书机器人

    飞书机器人 如果你想添加新的对话逻辑,你只需要在 ChatApi.py 中添加新的if条件判断语句即可。如果你能开发出新功能,请在仓库中提出Pull requests合并请求,我将感激不尽! 2023年9月1日更新 更新了对话机器人返回帮助界面功能,用户发送“帮助”,返回机器人使用说明 20

    2024年02月03日
    浏览(138)
  • 十分钟快速部署一个自己的AI聊天机器人

    个人名片: 🐼 作者简介:一名大二在校生,喜欢编程🎋 🐻‍❄️ 个人主页🥇: 落798. 🐼 个人WeChat:见文末 🕊️ 系列专栏:🖼️ 零基础学Java——小白入门必备 重识C语言——复习回顾 计算机网络体系———深度详讲 微信小程序开发——实战开发 🐓 每日一句:🍭

    2024年02月14日
    浏览(66)
  • python连接自己的机器人接口在微信聊天

    机器人有连接到数据库,所以可以长记忆对话,多线程可以使得机器人同时和几个好友聊天。将消息发送到远程API进行处理,并回复处理后的消息。脚本还允许为每个好友分配一个唯一的随机 ID,以便跟不同的好友聊天并维护聊天记忆。

    2024年02月09日
    浏览(42)
  • 一个开源免费功能强大的Chatgpt Web程序 搭建自己的Chatgpt机器人

    ChatGPT Web Midjourney Proxy 是我用过的几款ChatGPT Web程序当中我觉得最好用的一款,还支持midjourney的图片生成 ai换脸和很多的ChatGPT store。 ✅ 原chatgpt web 所有功能 ✅ chatgpt web 支持自定义api key、base_url ✅ midjourney 文生图 ✅ midjourney 垫图+文生图 ✅ midjourney 图变 U1到U4 、 V1到V4、重绘

    2024年03月23日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包