日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

利用公众号 + WeRoBot开发一款AI应用

發布時間:2025/1/21 ChatGpt 85 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用公众号 + WeRoBot开发一款AI应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方“AI搞事情”關注我們


WeRoBot是個啥

WeRoBot 是一個基于Python的微信機器人框架,采用MIT協議發布。
git地址:https://github.com/offu/WeRoBot
文檔地址:https://werobot.readthedocs.org/zh_CN/latest/

安裝

pip install werobot

WeRoBot咋用呀

前提你得申請一個公眾號,其次會簡單的Python編程,更重要的是得有一個服務器。這些都準備好了的話,那就可以開始搭建你的對話機器人了。

* 后臺配置

公眾號后臺進行基礎配置,

其中,AppID是公眾號為你分配的開發識別碼,配合開發者密碼便擁有調用公眾號的接口能力;服務器配置是我們需要配置的后臺服務器地址(如果服務器只有一個微信后臺服務,必須使用80端口!如果是https,必須使用443端口!,當然也可以利用Nginx進行反向代理),以及自定義的Token(后面需要在代碼里關聯),同時,有關素材的操作是需要access_token的,不過在werobot模塊里,將APP_ID和APP_SECRET就好了,access_token是會自動獲取。最后,不要忘了將云服務器公網IP加入IP白名單,否則也會報錯。

完成配置以后,點擊提交,提示提交成功,說明咱們已經完成了第一步驟的配置。

* 程序開發

WeRoBot 是一個基于Python的框架,我們需要具備一定Python能力便能進行后續程序的開發,首先來一個hello world。

import werobotrobot = werobot.WeRoBot(token='tokenhere') robot.config["APP_ID"] = "你的APP_ID" robot.config["APP_SECRET"] = "你的APP_SECRET"@robot.handler def hello(message):return 'Hello World!'# 讓服務器監聽在 0.0.0.0:80 robot.config['HOST'] = '0.0.0.0' robot.config['PORT'] = 80 robot.run()

從上面代碼我們需要知道:

  • @為Python中裝飾器的用法,具備裝飾、修改函數功能的函數。接受一個函數作為輸入參數,并返回一個具備額外功能函數。

  • WeRoBot 會解析微信服務器發來的消息,并將消息轉換成成 Message 或者是 Event 。
    Message 表示用戶發來的消息,如文本消息、圖片消息;
    Event 則表示用戶觸發的事件, 如關注事件、掃描二維碼事件。
    在消息解析、轉換完成后, WeRoBot 會將消息轉交給 Handler 進行處理,并將 Handler 的返回值返回給微信服務器。
    當然, 你也可以編寫一些只能處理特定消息的 Handler。比如常見的有:

    • @robot.text 修飾的 Handler 只處理文本消息

    • @robot.image 修飾的 Handler 只處理圖片消息

    • @robot.subscribe 修飾的 Handler 只處理訂閱后的信息

    • @robot.voice 修飾的 Handler 只處理語音信息

    • @robot.filter 修飾的 Handler 處理有指定關鍵詞的信息

  • 回復信息種類
    TextReply:文本消息
    ImageReply:圖片消息
    VoiceReply:語音消息
    VideoReply:視頻消息
    ArticlesReply:圖文消息
    MusicReply:音樂消息
    TransferCustomerServiceReply:將消息轉發到多客服
    SuccessReply:微信服務器回復 “success”
    更多關于WeRoBot的使用可以參考官方文檔。

  • import random import time import requests import werobot from werobot.replies import ArticlesReply, Article, ImageReply, TextReply, MusicReply from cogview_python import gen_imagerobot = werobot.WeRoBot(token='fahaihahaha') robot.config["APP_ID"] = "wxbfe73a1c91810e38" robot.config["APP_SECRET"] = "c8414918aa9aa714b6416190b4892437"# 訂閱后的回復 @robot.subscribe def subscribe():return "***歡迎關注公眾號[愉快][愉快][愉快]***\n" \"***輸入任意內容開始與我聊天!\n" \"***輸入'博客'關注我的博客!\n" \"***輸入'音樂'為小主送上舒緩的歌曲!\n"# 關鍵字 博客 回復 @robot.filter('博客') def blog(message):reply = ArticlesReply(message=message)article = Article(title="AI搞事情",description="我的個人博客",img="https://werobot.readthedocs.io/zh_CN/latest/_static/qq.png",url="https://www.cnblogs.com/fahaihappy/")reply.add_article(article)return reply# 用戶發送圖片 @robot.image def blog(message, session):# print("msg", message.img)# print(type(message))# print(type(message.img))# print(message.__dict__)print("\n" + message.MediaId)changdu = str(len(session))session[changdu] = message.MediaIdreply = ImageReply(message=message, media_id=message.MediaId)return reply# 隨機一首音樂 def music_data():music_list = [['童話鎮', '陳一發兒', 'https://e.coka.la/wlae62.mp3', 'https://e.coka.la/wlae62.mp3'],['都選C', '縫紉機樂隊', 'https://files.catbox.moe/duefwe.mp3', 'https://files.catbox.moe/duefwe.mp3'],['精彩才剛剛開始', '易烊千璽', 'https://e.coka.la/PdqQMY.mp3', 'https://e.coka.la/PdqQMY.mp3']]num = random.randint(0, 2)return music_list[num]# 匹配 音樂 回復一首歌 @robot.filter('音樂') def music(message):# reply = TextReply(message=message, content=music_data())# reply = MusicReply(message=message,source='https://www.kugou.com/song/#hash=D4EB517A405FCDF0286AA9A4487BBCE1&album_id=10409377')return music_data()# return reply# 文字智能回復 生成圖片(依賴悟道文字生成圖片的api) @robot.text def replay(msg):print(msg.content)img = gen_image(msg.content)if img is not None:return_json = robot.client.upload_media("image", img)mediaid = return_json['media_id']reply = ImageReply(message=msg, media_id=mediaid)return replyreturn "神奇圖博士也不知道這是啥呀!!!"# 讓服務器監聽在 0.0.0.0:80 robot.config['HOST'] = '0.0.0.0' robot.config['PORT'] = 8000 robot.run()

    * 服務部署

    如果服務器只有werobot應用,則只需要開放80(http)端口或者443端口(https),由于我服務器還有其他應用,則通過Nginx進行了方向代理,配置方式如下:

    http {log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;include /etc/nginx/mime.types;default_type application/octet-stream;client_max_body_size 500m;client_header_timeout 1m;client_body_timeout 1m;proxy_connect_timeout 60s;proxy_read_timeout 1m;proxy_send_timeout 1m;proxy_cache_path /var/imgcachetest levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=1g;server {# 端口和域名listen 80;server_name ip或者域名;# 日志access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;location /werobot/ {# 需要添加的代碼proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_http_version 1.1;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $host;proxy_pass http://127.0.0.1:4802; }}}events {worker_connections 1024; ## Default: 1024 }

    另外,Werobot還提供了和Python后端框架Django、Flask、Bottle和Tornado的集成使用方式。
    部署方式還可以結合docker進行容器化部署。

    * 效果展示

    通過上面的流程,我們就可以通過公眾號和后臺進行交互,涵蓋文字、圖片、語音、視頻等信息,再結合各種算法,如圖像處理、OCR、目標檢測,文本生成、智能對話等便能開發一款基于公眾號的智能應用。
    下圖為通過輸入文本,后臺返回生成的圖片,感興趣的可以嘗試一下。

    長按二維碼關注我們

    有趣的靈魂在等你

    總結

    以上是生活随笔為你收集整理的利用公众号 + WeRoBot开发一款AI应用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。