一步一步教你用wechaty+百度云主机打造一个带你穿越星际的微信机器人

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 一步一步教你用wechaty+百度云主机打造一个带你穿越星际的微信机器人

一、一步一步教你用wechaty+百度云主机打造一个带你穿越星际的微信机器人


  • wechaty呢,就是一个神奇得能够沟通各种聊天工具得中间件包括但不限于微信(这样严谨不?)
  • 百度云呢是用得它得主机,速度很快
  • 走你!

image.png


二、搞定服务器


1.活动地址


百度云地址cloud.baidu.com/campaign/bc…

找到新人免费上云活动,然后开始!!!

image.png


2.注册


到手!!!image.png


3.修改管理密码


控制台修改密码就不说了,改完后ssh连接


三、wechaty配置


1.tocken申请


免费token申请地址: pad-local.com(温馨提示: 免费的token有效期为7天,如需使用有效期更长的token,请访问wechaty官网: wechaty.js.org/)


2.docker下载及配置


在终端里输入以下指令

apt update
 apt install docker.io
 docker pull wechaty/wechaty:latest
 export WECHATY_LOG="verbose"
 export WECHATY_PUPPET="wechaty-puppet-wechat"
 export WECHATY_PUPPET_SERVER_PORT="8080"
 export WECHATY_TOKEN="puppet_padlocal_xxxxxx" # 这里输入你自己的token
 docker run -ti --name wechaty_puppet_service_token_gateway --rm -e WECHATY_LOG -e WECHATY_PUPPET -e WECHATY_TOKEN -e WECHATY_PUPPET_SERVER_PORT -p "$WECHATY_PUPPET_SERVER_PORT:$WECHATY_PUPPET_SERVER_PORT" wechaty/wechaty:latest


3.启动docker以后输出如下


image.png

微信扫描二维码即可登录,登陆成功有提示


4.注意事项


获取docker镜像比较慢,有两种办法

  • 1.切换国内docker mirror点
  • 2.直接 docker pull wechaty/wechaty:latest& 后台下载,不用管它


四、本地配置


1.wechaty环境配置


!pip install wechaty==0.7dev17


2.demo示例


  • 注意区分操作系统
  • 注意token不用双引号(此坑踩了会)


3各平台配置


3.1 linux


export WECHATY_PUPPET=wechaty-puppet-service
export WECHATY_PUPPET_SERVICE_TOKEN=puppet_padlocal_*************


3.2 win


set WECHATY_PUPPET=wechaty-puppet-service
set WECHATY_PUPPET_SERVICE_TOKEN=puppet_padlocal_*************
import os
import asyncio
import paddlehub as hub
import cv2
import time
from wechaty import (
    Contact,
    FileBox,
    Message,
    Wechaty,
    ScanStatus,
)
model = hub.Module(name="humanseg_lite")
def img_koutu():
    img_path = r'dongman/dongman.jpg'
    # 图片转换后存放的路径
    img_new_path = os.path.join('humanseg_output', 'dongman' + '.png')
    print(img_new_path)
    if os.path.exists('humanseg_output/dongman.png'):
        os.remove('humanseg_output/dongman.png')
    res = model.segment(
        paths=[os.path.join(img_path)],
        visualization=True,
        output_dir='humanseg_output')
    # 返回新图片的路径
    while not os.path.exists(img_new_path):
        time.sleep(1)
    return img_new_path
def merge (img_path):
    # import cv2
    # cv2.namedWindow("person")  # 定义一个窗口
    back_img_path='background.jpg'
    new_img_path = r'merge/result.png'
    frame = cv2.imread(back_img_path, cv2.IMREAD_COLOR)  # 捕获图像1
    frame = cv2.resize(frame, (1000,600))
    print('background shape: ',frame.shape)
    # IMREAD_UNCHANGED  If set, return the loaded image as is (with alpha channel, otherwise it gets cropped).
    # 因此Png必须是4通道的IMREAD_UNCHANGED
    person = cv2.imread(img_path, cv2.IMREAD_UNCHANGED)
    # person=cv2.resize(person, (300, 600))
    rows, cols, channels = person.shape
    print('person shape: ',rows, cols, channels )
    dx, dy = 120, 150
    roi = frame[dx:dx + rows, dy:dy + cols]
    print(roi.shape)
    for i in range(rows):
        for j in range(cols):
            if not (person[i, j][3] == 0):  # 透明的意思
                roi[i, j][0] = person[i, j][0]
                roi[i, j][1] = person[i, j][1]
                roi[i, j][2] = person[i, j][2]
    frame[dx:dx + rows, dy:dy + cols] = roi
    cv2.imwrite(new_img_path, frame)
    return new_img_path
def dongman(img_path, img_name):
    # 图片转换后存放的路径
    img_new_path = r'dongman/dongman.jpg'
    print(img_new_path)
    model = hub.Module(name='animegan_v2_shinkai_33')
    result = model.style_transfer(images=[cv2.imread(img_path)], visualization=True,
                                  output_dir='dongman')
    cv2.imwrite(img_new_path, result[0])
    return img_new_path
async def on_message(msg: Message):
    if msg.text() == 'ding':
        await msg.say('这是自动回复: dong dong dong')
    if msg.text() == 'hi' or msg.text() == '你好':
        await msg.say('这是自动回复: 机器人目前的功能是\n- 收到"ding", 自动回复"dong dong dong"\n- 收到"图片", 自动回复一张图片')
    if msg.text() == '图片':
        url = 'https://ai.bdstatic.com/file/403BC03612CC4AF1B05FB26A19D99BAF'
        # 构建一个FileBox
        file_box_1 = FileBox.from_file('xx.jpg', name='今天做作业了吗?')
        await msg.say(file_box_1)
    # 如果收到的message是一张图片
    if msg.type() == Message.Type.MESSAGE_TYPE_IMAGE:
        # 将Message转换为FileBox
        file_box_2 = await msg.to_file_box()
        # 获取图片名
        img_name = file_box_2.name
        # 图片保存的路径
        img_path = './image/' + img_name
        # 将图片保存为本地文件
        await file_box_2.to_file(file_path=img_path)
        # 调用图片风格转换的函数
        img_new_path = dongman(img_path, img_name)
        print(img_new_path)
        img_new_path = img_koutu()
        print(img_new_path)
        img_new_path = merge(img_new_path)
        print(img_new_path)
        # 从新的路径获取图片
        file_box_3 = FileBox.from_file(img_new_path)
        await msg.say(file_box_3)
async def on_scan(
        qrcode: str,
        status: ScanStatus,
        _data,
):
    print('Status: ' + str(status))
    print('View QR Code Online: https://wechaty.js.org/qrcode/' + qrcode)
async def on_login(user: Contact):
    print(user)
async def main():
    # 确保我们在环境变量中设置了WECHATY_PUPPET_SERVICE_TOKEN
    if 'WECHATY_PUPPET_SERVICE_TOKEN' not in os.environ:
        print('''
            Error: WECHATY_PUPPET_SERVICE_TOKEN is not found in the environment variables
            You need a TOKEN to run the Python Wechaty. Please goto our README for details
            https://github.com/wechaty/python-wechaty-getting-started/#wechaty_puppet_service_token
        ''')
    bot = Wechaty()
    bot.on('scan', on_scan)
    bot.on('login', on_login)
    bot.on('message', on_message)
    await bot.start()
    print('[Python Wechaty] Ding Dong Bot started.')
asyncio.run(main())


4.本地开发运行


python main.py

image.png


五、星际穿越的流程


计划在本机上开发赋能,程序测试完成OK后,再上服务器,敬请期待2天

image.png


1.动漫画


image.png


2.抠图


image.png


3.科幻海报合成


3.1 背景


image.png


3.2结果


image.png


六、linux服务器部署


1.安装paddlepaddle


pip install paddlepaddle


2.安装paddlehub


pip install paddlehub


3.环境变量设置


export WECHATY_PUPPET=wechaty-puppet-service
export WECHATY_PUPPET_SERVICE_TOKEN = "puppet_padlocal_换成你的key"


4.启动docker


docker run -ti --name wechaty_puppet_service_token_gateway --rm -e WECHATY_LOG -e WECHATY_PUPPET -e WECHATY_TOKEN -e WECHATY_PUPPET_SERVER_PORT -p "$WECHATY_PUPPET_SERVER_PORT:$WECHATY_PUPPET_SERVER_PORT" wechaty/wechaty:latest


5.后台运行程序


python main.py &


目录
相关文章
|
12月前
|
机器人 数据安全/隐私保护 Python
企业微信自动回复软件,企业微信自动回复机器人,python框架分享
企业微信机器人包含完整的消息处理流程,支持文本消息自动回复、事件处理、消息加密解密等功能
|
12月前
|
机器人 数据安全/隐私保护 Python
微信自动转发机器人,微信群自动发消息机器人,微信全自动群发软件
展示一个使用Python进行基础网页自动化的示例代码,仅供学习自动化技术原理使用。
|
11月前
|
域名解析 人工智能 机器人
AppFlow:企业微信支持流式群聊机器人
企业微信近日更新,新增群聊机器人功能,支持与自定义大模型对话。通过@机器人,可实现流式输出,提升交互效率。只需简单配置,即可将AI能力集成至群聊,完成即时消息解析与业务联动。
3155 1
AppFlow:企业微信支持流式群聊机器人
|
人工智能 机器人 API
搞定!微信接入DeepSeek打造聊天机器人,1行代码就行!
程序员晚枫分享了一个有趣的Python项目,将DeepSeek大模型接入微信,实现自动聊天。通过PyOfficeRobot库,仅需1行代码即可完成接入,打造AI聊天机器人。该项目基于Windows API操作微信,目前仅支持Windows系统。用户需填写好友名称和API Key,轻松体验AI对话。此外,PyOfficeRobot还支持其他大模型如阿里通义、智谱等。欢迎尝试并参与改进开源项目。
2505 81
搞定!微信接入DeepSeek打造聊天机器人,1行代码就行!
|
消息中间件 NoSQL 安全
WePush 一款基于模拟点击实现的微信消息推送机器人,安全稳定不封号
WePush 是一个基于微信 Windows 客户端开发的消息推送系统,采用模拟人工点击技术实现消息发送,具有安全稳定、零封号风险的特点。系统通过 HTTP API 接收消息请求并利用 Redis 消息队列异步处理任务,支持群聊和个人消息推送。依赖 FastAPI、wxauto 和 Redis,适用于系统监控提醒等场景,需使用指定版本微信客户端运行。
2190 60
|
12月前
|
JSON 机器人 API
微信机器人自动回复插件,vx自动回复机器人脚本助手,python框架分享
这个微信机器人系统包含三个主要模块:主程序基于itchat实现微信消息监听和自动回复功能
|
人工智能 开发框架 机器人
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
9279 38
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
12月前
|
监控 机器人 数据安全/隐私保护
免费微信群管理机器人, 微信群机器人软件, 微信群机器人软件
这个微信群机器人包含主程序、配置文件和工具模块,实现了自动登录、消息监控、违规检测
|
12月前
|
机器人 数据安全/隐私保护
微信群聊机器人插件,微信机器人聊天工具,微信群自动聊天脚本
代码说明:这个微信机器人系统包含主程序、群管理模块和多个插件。主程序基于itchat库实现微信登录和消息处理
|
JSON 机器人 API
gewe微信机器人搭建教程
GeWe开放平台是基于 微信开放平台的二次封装API服务,开发者可以使用本服务来处理微信中的各种事件,并可以通过后台调用对应的 API 来驱动微信自动执行任务,如自动收发消息、自动化应答、自动群邀请、群管理等,封装了 RPA技术流程,简化开发者二次开发难度,提供了开发者与微信对接的能力,使用简单,操作快捷,支持多种语言接入。
972 17

热门文章

最新文章