將ChatGPT接入微信實現(xiàn)智能回復(fù)功能
ChatGPT近期以強大的對話和信息整合能力風靡全網(wǎng),可以寫代碼、改論文、講故事,幾乎無所不能,這讓人不禁有個大膽的想法,能否用他的對話模型把我們的微信打造成一個智能機器人,可以在與好友對話中給出意想不到的回應(yīng),而且再也不用擔心女朋友影響我們 打游戲 工作了。
本項目是基于ChatGPT的微信聊天機器人,通過 OpenAI 接口生成對話內(nèi)容,使用 itchat 實現(xiàn)微信消息的接收和自動回復(fù)。
簡介
已實現(xiàn)特性
- 文本對話: 接收私聊及群組中的微信消息,使用ChatGPT生成回復(fù)內(nèi)容,完成自動回復(fù)
- 規(guī)則定制化: 支持私聊中按指定規(guī)則觸發(fā)自動回復(fù),支持對群組設(shè)置自動回復(fù)白名單
- 多賬號: 支持多微信賬號同時運行
- 圖片生成: 支持根據(jù)描述生成圖片,并自動發(fā)送至個人聊天或群聊
Github地址:https://github.com/zhayujie/chatgpt-on-wechat
更新日志
2022.12.19: 引入 itchat-uos 替換 itchat,解決由于不能登錄網(wǎng)頁微信而無法使用的問題,且解決Python3.9的兼容問題
2022.12.18: 支持根據(jù)描述生成圖片并發(fā)送,openai版本需大于0.25.0
2022.12.17: 原來的方案是從 ChatGPT頁面 獲取session_token,使用 revChatGPT 直接訪問web接口,但隨著ChatGPT接入Cloudflare人機驗證,這一方案難以在服務(wù)器順利運行。 所以目前使用的方案是調(diào)用 OpenAI 官方提供的 API,回復(fù)質(zhì)量上基本接近于ChatGPT的內(nèi)容,劣勢是暫不支持有上下文記憶的對話,優(yōu)勢是穩(wěn)定性和響應(yīng)速度較好。
效果
個人聊天
群組聊天
圖片生成
快速開始
準備
1. OpenAI賬號注冊
前往 OpenAI注冊頁面 創(chuàng)建賬號,參考這篇 教程 可以通過虛擬手機號來接收驗證碼。創(chuàng)建完賬號則前往 API管理頁面 創(chuàng)建一個 API Key 并保存下來,后面需要在項目中配置這個key。
項目中使用的對話模型是 davinci,計費方式是每1k字 (包含請求和回復(fù)) 消耗 $0.02,圖片生成是每張消耗 $0.016,賬號創(chuàng)建有免費的 $18 額度,使用完可以更換郵箱重新注冊。
2.運行環(huán)境
支持 Linux、MacOS、Windows 系統(tǒng)(可在Linux服務(wù)器上長期運行),同時要求安裝有 Python
(版本需在 3.7.1~3.9.X 之間,Linux環(huán)境建議使用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
中,需復(fù)制該模板創(chuàng)建最終生效的 config.json
文件:
cp config-template.json config.json
然后在config.json
中填入自定義配置,各配置項含義如下:
# config.json文件內(nèi)容示例 { "open_ai_api_key": "YOUR API KEY" # 填入上面創(chuàng)建的 OpenAI API KEY "single_chat_prefix": ["bot", "@bot"], # 私聊時文本需要包含該前綴才能觸發(fā)機器人回復(fù) "single_chat_reply_prefix": "[bot] ", # 私聊時自動回復(fù)的前綴,用于區(qū)分真人 "group_chat_prefix": ["@bot"], # 群聊時包含該前綴則會觸發(fā)機器人回復(fù) "group_name_white_list": ["ChatGPT測試群", "ChatGPT測試群2"], # 開啟自動回復(fù)的群名稱列表 "image_create_prefix": ["畫", "看", "找"] # 開啟圖片回復(fù)的前綴 }
配置說明:
- 個人聊天中,需要以 "bot" 或 "@bot" 為開頭的內(nèi)容觸發(fā)機器人,對應(yīng)配置中的
single_chat_prefix
;機器人回復(fù)的內(nèi)容會以 "[bot]" 作為前綴, 以區(qū)分真人,對應(yīng)的配置為single_chat_reply_prefix
- 群組聊天中,群名稱需配置在
group_name_white_list
中才能開啟群聊自動回復(fù),默認只要被@就會觸發(fā)機器人自動回復(fù),另外群聊天中只要檢測到以 "@bot" 開頭的內(nèi)容,同樣會自動回復(fù),這對應(yīng)配置group_chat_prefix
- 對于圖像生成,在滿足個人或群組觸發(fā)條件外,還需要額外的關(guān)鍵詞,對應(yīng)配置
image_create_prefix
- 關(guān)于OpenAI對話及圖片接口的參數(shù)配置(內(nèi)容自由度、回復(fù)字數(shù)限制、圖片大小等),可以參考 對話接口 和 圖像接口 文檔直接在 代碼
bot\openai\open_ai_bot.py
中進行調(diào)整。
運行
運行
1.如果是開發(fā)機本地調(diào)試,直接在項目根目錄下執(zhí)行:
python3 app.py
終端輸出二維碼后,使用微信進行掃碼,當輸出 "Start auto replying" 時表示自動回復(fù)程序已經(jīng)成功運行了(注意:用于登錄的微信需要在支付處已完成實名認證)。
2.如果是服務(wù)器部署,則使用nohup命令在后臺運行:
touch nohup.out # 首次運行需要新建日志文件 nohup python3 app.py & tail -f nohup.out # 后臺運行程序并輸出日志
同樣在掃碼后程序即可成功運行于服務(wù)器后臺。
轉(zhuǎn)自鏈接:https://zhayujie.com/chatgpt-on-wechat.html
到此這篇關(guān)于將ChatGPT接入微信實現(xiàn)智能回復(fù)的文章就介紹到這了,更多相關(guān)ChatGPT接入微信實現(xiàn)智能回復(fù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
大數(shù)據(jù)HelloWorld-Flink實現(xiàn)WordCount
這篇文章主要介紹了大數(shù)據(jù)HelloWorld-Flink實現(xiàn)WordCount的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08centos搭建code-server配置HTTPS登錄頁自定義實現(xiàn)步驟
這篇文章主要為大家介紹了centos搭建code-server及配置HTTPS、登錄頁自定義實現(xiàn)步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05軟件測試之使用Fiddler實現(xiàn)弱網(wǎng)測試
我們在做運維測試中會使用到到很多軟件測試工具,本篇文章給大家分析一下軟件測試,教大家在軟件測試時來使用Fiddler實現(xiàn)弱網(wǎng)測試2021-08-08踩坑記錄關(guān)于"authentication failed "的解決方法
今天給大家分享我的踩坑記錄關(guān)于報錯 authentication failed,這個報錯的原因是“身份驗證失敗”,本文給大家分享我的解決方法,感興趣的朋友跟隨小編一起看看吧2023-01-01