ChatGPT近期以強大的對話和資訊整合能力風靡全網,可以寫代碼、改論文、講故事,幾乎無所不能,這讓人不禁有個大膽的想法,能否用他的對話模型把我們的微信打造成一個智能機器人,可以在與好友對話中給出意想不到的回應,而且再也不用擔心女朋友影響我們
打游戲作業了,
本專案是基于ChatGPT的微信聊天機器人,使用Python實作,通過 OpenAI 介面生成對話內容,使用 itchat 實作微信訊息的接收和自動回復,
簡介
已實作特性
- 基礎功能: 接收私聊及群組中的微信訊息,使用ChatGPT生成回復內容,完成自動回復
- 規則定制化: 支持私聊中按指定規則觸發自動回復,支持對群組設定自動回復白名單
- 多賬號: 支持多微信賬號同時運行
Github地址:https://github.com/zhayujie/chatgpt-on-wechat
更新日志
2022.12.17: 原來的方案是從 ChatGPT頁面 獲取session_token,使用 revChatGPT 直接訪問web介面,但隨著ChatGPT接入Cloudflare人機驗證,這一方案難以在服務器順利運行, 所以目前使用的方案是呼叫 OpenAI 官方提供的 API,回復質量上基本接近于ChatGPT的內容,劣勢是暫不支持有背景關系記憶的對話,優勢是穩定性和回應速度較好,
效果
個人聊天

群組聊天

快速開始
準備
1.網頁版微信
本方案中實作微信訊息的收發依賴了網頁版微信的登錄,可以嘗試登錄 https://wx.qq.com/,如果能夠成功登錄就可以開始后面的步驟了,
2. OpenAI賬號注冊
前往 OpenAI注冊頁面 創建賬號,參考這篇 博客 可以通過虛擬手機號來接收驗證碼,創建完賬號則前往 API管理頁面 創建一個 API Key 并保存下來,后面需要在專案中配置這個key,
專案中使用的對話模型是 davinci,計費方式是每1k字 (包含請求和回復) 消耗 $0.02,賬號創建有免費的 $18 額度,使用完可以更換郵箱重新注冊,
3.運行環境
支持運行在 Linux、MacOS、Windows 作業系統上,需安裝 Python3.6 及以上版本,推薦使用Linux服務器,可以托管在后臺長期運行,
克隆專案代碼:
https://github.com/zhayujie/chatgpt-on-wechat
安裝所需核心依賴:
pip3 install itchat
pip3 install openai
配置
組態檔在根目錄的 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"] # 開啟自動回復的群名稱串列
}
配置說明:
- 個人聊天中,會以 "bot" 或 "@bot" 為開頭的內容觸發機器人,對應配置中的
single_chat_prefix;機器人回復的內容會以 "[bot]" 作為前綴, 以區分真人,對應的配置為single_chat_reply_prefix - 群組聊天中,群名稱需配置在
group_name_white_list中才能開啟群聊自動回復,默認只要被@就會觸發機器人自動回復,另外群聊天中只要檢測到以 "@bot" 開頭的內容,同樣會自動回復,這對應配置group_chat_prefix - 關于OpenAI對話介面的引數配置,可以參考 介面檔案 直接在代碼
bot\openai\open_ai_bot.py中進行調整
運行
1.如果是開發機本地除錯,直接在專案根目錄下執行:
python3 app.py
終端輸出二維碼后,使用微信進行掃碼,當輸出 "Start auto replying" 時表示自動回復程式已經成功運行了,
2.如果是服務器部署,則使用nohup命令在后臺運行:
touch nohup.out # 首次運行需要新建日志檔案
nohup python3 app.py & tail -f nohup.out # 后臺運行程式并輸出日志
同樣在掃碼后程式即可成功運行于服務器后臺,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/540203.html
標籤:其他
上一篇:Graph Neural Network——圖神經網路
下一篇:高可用系列文章之一 - 概述
