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

歡迎訪問 生活随笔!

生活随笔

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

ChatGpt

动手做个 AI 机器人,帮我回消息

發布時間:2023/12/29 ChatGpt 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动手做个 AI 机器人,帮我回消息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是魚皮,自從做了知識分享,我的微信就沒消停過,平均每天會收到幾百個消息,大部分都是學編程的朋友向我咨詢編程問題。

但畢竟我只有一個人,沒法所有消息都一個個回復,所以也是很愧疚和無力吧;另外我發現,大家的很多問題是重復的,而且大多數我都專門寫文章來回答過。

所以,我決定自制一個 AI 問答機器人,幫我自動回復大家的常見問題,減少重復工作。

結果沒想到,制作過程中被 Bug 坑慘了,鬧了不少笑話,感興趣的朋友可以看看視頻哈哈:

地址:https://www.bilibili.com/video/BV1Vq4y1B7zu/

由于制作方法實在太簡單,所以給大家分享下完整的教程,讓大家也能輕松制作自己的 AI 機器人。

自制 AI 機器人教程

預計整個制作過程 10 分鐘

先描述下需求:做一個能夠自動回答微信消息的機器人。

要實現這個需求,有兩個要點:

  • 如何讓程序接收到微信發來的消息?
  • 如何根據消息來回復對應的內容?
  • 這兩個問題,如果沒有一定的專業知識,是很難自行解決的。但如今是開源的時代,我們可以站在巨人的肩膀上,用現成的技術來解決這些問題。

    接受消息

    可以使用開源的 wechaty 庫來實現對微信的自動化操作,比如收發消息、通過好友、拉群等。

    使用方法很簡單,在 wechaty 倉庫的項目介紹文件中,有最簡單的入門示例代碼,只需要 6 行代碼 ,就能啟動一個幫你接受消息的機器人!

    wechaty 支持幾乎所有主流的編程語言,其中 JavaScript 的入門代碼如下:

    import { WechatyBuilder } from 'wechaty' // 啟動 WechatyBuilder.build().on('scan', (qrcode, status) => console.log(`Scan QR Code to login: ${status}\nhttps://wechaty.js.org/qrcode/${encodeURIComponent(qrcode)}`)).on('login', user => console.log(`User ${user} logged in`)).on('message', message => console.log(`Message: ${message}`)).start()

    解釋一下上述代碼,你會發現,wechaty 中定義了很多事件,比如掃碼、用戶登錄、接受消息、接受好友請求等。你不需要關心事件是如何被它觸發的,只需要針對不同事件來編寫處理方法就好,比如收到消息后自動回復同樣的消息,示例代碼如下:

    // 初始化機器人 const bot = WechatyBuilder.build({name: 'yupi-wxrobot',// 用于兼容不同 IM 協議,不用關心puppet: 'wechaty-puppet-wechat', }) // 處理消息 bot.on('message', async function (msg) {// 獲取消息發送人const contact = msg.talker()// 獲取消息內容const text = msg.text()// 獲取群聊信息const room = msg.room()// 是私聊if (contact && text) {// 回復相同內容msg.say(text, contact);} }

    但是,大家 千萬不要 直接運行上述代碼!因為一旦你啟動了機器人、又沒有限制回復者昵稱的話,它會對所有給你發消息的人生效!

    我剛開始沒注意,就被坑了。。。

    所以,如果你只想自動回復某人或某群聊的消息,記得在代碼中補充相應的過濾邏輯,比如:

    // 處理消息 bot.on('message', async function (msg) {// 獲取消息發送人const contact = msg.talker()// 獲取消息內容const text = msg.text()// 獲取群聊信息const room = msg.room()// 不處理自己的消息if (msg.self()) {return}// 群聊還是私聊if (room) {if(room.topic() === '魚皮群') {// 回復}} else {if(contact.name() === '小號') {// 回復}} }

    OK,使用上述代碼,就能實現接受消息和自動回復啦!

    那么你是否好奇,wechaty 是如何接受到微信消息的呢?其實原理很簡單,執行 wechaty 程序時,它會利用無頭瀏覽器技術悄悄打開一個網頁版微信,然后在你運行程序的控制臺彈出微信網頁版的登錄二維碼,在你掃碼登錄后,程序只需要監聽頁面元素的變化、或者自動觸發點擊事件即可。

    其實道理很簡單,就是把我們能對網頁進行的人工操作轉化為后臺自動化執行。

    智能回復

    第一個問題解決了,那么如何根據不同的問題給出不同的回復呢?

    很多同學肯定上來就說 AI,那都是被我用的 “智能” 一次帶偏了。其實如果只是簡單的自動回復,問題規則可收斂、可枚舉的情況下,直接用 if ... else ... 就能解決了!

    if(/你好/.test(text)) {msg.say('好的'); } else if (/謝謝/.test(text)) {msg.say('不客氣'); } else if (/加群/.test(text)) {msg.say('公眾號[程序員魚皮],回復[加群]'); } else {msg.say('我不懂'); }

    不是說人工智能的本質就是 if else 么哈哈,只不過是讓機器來幫你去做 if else 而已。

    但現實是,我的讀者對于同一個問題也會有不同的表達方式,比如 “怎么學 Java?”、“我想學 Java,怎么學?” 等等。因此,還是需要人工智能登場了。

    到哪里去搞人工智能呢?

    我們可以直接利用 微信對話開放平臺 提供的強大能力,一行代碼都不用寫,就能免費實現智能對話!

    地址:https://openai.weixin.qq.com/

    登錄后先創建一個機器人:


    然后可以為機器人添加技能,你可以自定義技能,向機器人灌輸指定的問題和回答;也可以直接使用平臺提供的默認技能,比如聽歌、聊天、百科等:

    我的需求是自動回答讀者的編程相關問題,因此需要創建一個新技能。在這里,可以靈活地自定義題目、不同的問法以及回答,全部用界面操作即可,輕松打造你的專屬機器人:

    配置好之后,就可以發布和使用機器人了。我們可以將機器人和公眾號 / 小程序綁定,自動回復讀者消息;可以直接在 H5 網頁中接入智能客服;還可以在程序中調用開放接口來使用智能對話能力:

    此處我們希望在 wechaty 程序中自動獲得回復,所以要使用 開放接口 的方式,也很簡單,就是用個請求庫去調用接口,示例代碼如下:

    // 獲取 API 簽名,2小時過期 // token 需從平臺獲取 const url = `https://openai.weixin.qq.com/openapi/sign/${token}`; const {signature} = (await axios.post(url, {userid: 'test' })).data;// 調用 AI 接口,獲取答案 async function getAnswer(userid, text) {const apiUrl = `https://openai.weixin.qq.com/openapi/aibot/${token}`;return (await axios.post(apiUrl, {"signature": signature,"userid": userid,"query": text,})).data?.answer; }

    大概就是這樣,又簡單又實用,感興趣的同學可以用它來做出很多有趣的功能~


    我是魚皮,肝文不易,有幫助的話還希望能給個 點贊 支持下,謝謝大家。

    總結

    以上是生活随笔為你收集整理的动手做个 AI 机器人,帮我回消息的全部內容,希望文章能夠幫你解決所遇到的問題。

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