首頁 > 軟體

將ChatGPT接入微信實現智慧回覆功能

2023-02-25 06:01:40

ChatGPT近期以強大的對話和資訊整合能力風靡全網,可以寫程式碼、改論文、講故事,幾乎無所不能,這讓人不禁有個大膽的想法,能否用他的對話模型把我們的微信打造成一個智慧機器人,可以在與好友對話中給出意想不到的迴應,而且再也不用擔心女朋友影響我們 打遊戲 工作了。

本專案是基於ChatGPT的微信聊天機器人,通過 OpenAI 介面生成對話內容,使用 itchat 實現微信訊息的接收和自動回覆。

簡介

已實現特性

  • 文字對話: 接收私聊及群組中的微信訊息,使用ChatGPT生成回覆內容,完成自動回覆
  • 規則客製化化: 支援私聊中按指定規則觸發自動回覆,支援對群組設定自動回覆白名單
  • 多賬號: 支援多微信賬號同時執行
  • 圖片生成: 支援根據描述生成圖片,並自動傳送至個人聊天或群聊

Github地址:https://github.com/zhayujie/chatgpt-on-wechat

更新紀錄檔

2022.12.19: 引入 itchat-uos 替換 itchat,解決由於不能登入網頁微信而無法使用的問題,且解決Python3.9的相容問題

2022.12.18: 支援根據描述生成圖片並行送,openai版本需大於0.25.0

2022.12.17: 原來的方案是從 ChatGPT頁面 獲取session_token,使用 revChatGPT 直接存取web介面,但隨著ChatGPT接入Cloudflare人機驗證,這一方案難以在伺服器順利執行。 所以目前使用的方案是呼叫 OpenAI 官方提供的 API,回覆質量上基本接近於ChatGPT的內容,劣勢是暫不支援有上下文記憶的對話,優勢是穩定性和響應速度較好。

效果

個人聊天

群組聊天

圖片生成

快速開始

準備

1. OpenAI賬號註冊

前往 OpenAI註冊頁面 建立賬號,參考這篇 教學 可以通過虛擬手機號來接收驗證碼。建立完賬號則前往 API管理頁面 建立一個 API Key 並儲存下來,後面需要在專案中設定這個key。

專案中使用的對話模型是 davinci,計費方式是每1k字 (包含請求和回覆) 消耗 $0.02,圖片生成是每張消耗 $0.016,賬號建立有免費的 $18 額度,使用完可以更換郵箱重新註冊。

2.執行環境

支援 Linux、MacOS、Windows 系統(可在Linux伺服器上長期執行),同時要求安裝有 Python(版本需在 3.7.1~3.9.X 之間,Linux環境建議使用3.7.X)。

1.克隆專案程式碼:

git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/

2.安裝所需核心依賴:

pip3 install itchat-uos==1.5.0.dev0
pip3 install openai==0.25.0

設定

組態檔的模板在根目錄的config-template.json中,需複製該模板建立最終生效的 config.json 檔案:

cp config-template.json config.json

然後在config.json中填入自定義設定,各設定項含義如下:

# config.json檔案內容範例
{ 
  "open_ai_api_key": "YOUR API KEY"                           # 填入上面建立的 OpenAI API KEY
  "single_chat_prefix": ["bot", "@bot"],                      # 私聊時文字需要包含該字首才能觸發機器人回覆
  "single_chat_reply_prefix": "[bot] ",                       # 私聊時自動回覆的字首,用於區分真人
  "group_chat_prefix": ["@bot"],                              # 群聊時包含該字首則會觸發機器人回覆
  "group_name_white_list": ["ChatGPT測試群", "ChatGPT測試群2"], # 開啟自動回覆的群名稱列表
  "image_create_prefix": ["畫", "看", "找"]                    # 開啟圖片回覆的字首
}

設定說明:

  • 個人聊天中,需要以 "bot" 或 "@bot" 為開頭的內容觸發機器人,對應設定中的 single_chat_prefix;機器人回覆的內容會以 "[bot]" 作為字首, 以區分真人,對應的設定為 single_chat_reply_prefix
  • 群組聊天中,群名稱需設定在 group_name_white_list 中才能開啟群聊自動回覆,預設只要被@就會觸發機器人自動回覆,另外群聊天中只要檢測到以 "@bot" 開頭的內容,同樣會自動回覆,這對應設定 group_chat_prefix
  • 對於影象生成,在滿足個人或群組觸發條件外,還需要額外的關鍵詞,對應設定 image_create_prefix
  • 關於OpenAI對話及圖片介面的引數設定(內容自由度、回覆字數限制、圖片大小等),可以參考 對話介面 和 影象介面 檔案直接在 程式碼 botopenaiopen_ai_bot.py 中進行調整。

執行

執行

1.如果是開發機本地偵錯,直接在專案根目錄下執行:

python3 app.py

終端輸出二維條碼後,使用微信進行掃碼,當輸出 "Start auto replying" 時表示自動回覆程式已經成功執行了(注意:用於登入的微信需要在支付處已完成實名認證)。

2.如果是伺服器部署,則使用nohup命令在後臺執行:

touch nohup.out                                   # 首次執行需要新建紀錄檔檔案                     
nohup python3 app.py & tail -f nohup.out          # 後臺執行程式並輸出紀錄檔

同樣在掃碼後程式即可成功執行於伺服器後臺。

轉自連結:https://zhayujie.com/chatgpt-on-wechat.html

到此這篇關於將ChatGPT接入微信實現智慧回覆的文章就介紹到這了,更多相關ChatGPT接入微信實現智慧回覆內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com