a bot application running on Tencent QQ that integrates GPT chatbot capabilities with AI painting.
一個運行於騰訊qq上的, 將gpt聊天能力與ai繪畫集成的機器人應用.
Due to limited personal energy, currently this project is mainly aimed at Chinese users. If I have time in the future, I may add more internationalization support. For English support, it should not be difficult to 0andable. code. You can also translate this readme file into English to help you understand this project. The core idea is to use prompts to guide the insertion of identifying text for the program to recognize and execute instructions. Similar grouproaches can the program to recoize and execute instructions. Similar app , and user image analysis(has been implemented by visual-chatgpt). If this project can inspire or help you, I would be honored.
有一個基於本專案修改, 新增了vits語音和圖像分析能力的衍生項目: https://github.com/AGuanDao/mix-chatgpt-and-ai-painting-and-vits
從selfhostedAI中任選一個專案啟動API ( 我僅測試了RWKV-Runner,推薦使用)
接著在config.py內,將use_selfhostedllm設為True,此時使用#gpt切換,切換為原本的GPT3模式,就會呼叫本地模型
show all ...
展開, windows一般使用windows_amd64.exe由於go-cqhttp宣布停止維護, 你現在可以使用https://github.com/LLOneBot/LLOneBot 作為替代, 在設定中啟用正向Websocket連線即可, 其餘內容照舊models/Stable-diffusion
目錄下python webui.py --medvram --deepdanbooru --xformers --api --enable-insecure-extension-access
, 注意必須帶有--api
參數, 如果你使用的是他人的整合包,可能需要自己手動在啟動腳本加上--api
參數, 參考上面的常见问题
一欄git clone https://github.com/josStorer/mix-chatgpt-and-ai-painting
, 並pip install -r requirements.txt
安裝依賴api_key
/ email,password
, master_id
, bot_id
, 建議考慮實際情況修改的變數為: use_chatgpt
, working_groups
, auth_vip_for_all , local_mode , auth_vip_for_all
, local_mode
, a local_all , local_de , local_de , local_all , local_de , local_de , local_de , local_de , local_de , local_de , local_de , local_de , local_de , local_de , local_de , local_all , local_all , local_de , local_all , local_all , local_de , a local_de , local_自行抉擇python main.py
啟動本項目win+tab
新建一個桌面幹別的事情, 讓你的電腦閒置時給群友玩耍吧AttributeError: 'Error' object has no attribute 'message'
"proxy": "你的代理地址"
, 如果你沒有代理, 請將use_chatgpt
設為False
,並填寫api_key
错误: 'images'
, 或错误: 404: {"detail":"Not Found"}
--api
參數, 如果你使用的是他人的整合包, 請找到相關啟動文件(一般是.bat後綴), 找到其中有參數的一行, 如--deepdanbooru
, --xformers
, 在後面加上一個--api
, 注意參數間空格, 如果有啟動器的, 請找到启用API
/暴露API
之類的選項勾選错误: [WinError 3] The system cannot find the path specified
HOME
環境變數為某個資料夾路徑, 用於儲存設定資訊git pull
拉取本專案的更新, 並注意使用pip install -r requirements.txt --upgrade
升級依賴函式庫device.json
, 打開並找到protocol
, 將值改為2
, 並重新啟動程序登錄main.py
末尾, 找到run_forever
, 把括號內的reconnect=3
刪掉main.py
內加入以下內容配置代理: proxy = { 'http' : "http://127.0.0.1:端口号" , 'https' : "http://127.0.0.1:端口号" }
openai . proxy = proxy
如有使用問題, 可加qq群283430436交流, 也可進行試玩
@机器人1号#上线
, 適用於群內有多個機器人的情況, 而直接使用警號指令則作用於所有機器人指令 | 範例 | 說明 |
---|---|---|
#gpt切換 | #gpt切換 | 在gpt3與chatgpt模式間切換 |
#上線 | #上線 | 令該群聊的機器人上線, 使其允許執行openai調用和ai繪畫 |
#下線 | #下線 | 令該群聊的機器人下線, 使其不允許執行openai調用和ai繪畫 |
#畫圖 | #畫圖512x512.girl | 令機器人在該群聊中畫圖, 例如: #画图girl , 使用點或分號分隔, 允許一些快捷操作, 使用花括號允許傳入細緻的json配置操作, 詳細請使用#帮助 查看 |
#d | #d 512x512.girl | vip清單內的使用者允許使用的快速畫圖操作, 效果同#画图 |
#撤回 | #撤回 | 撤回上一封由你觸發的機器人訊息 |
#黑 | #黑123456 | 禁止該用戶在該群組聊天中使用機器人 |
#解除 | #解除123456 | 解除對該用戶的封鎖 |
#vip | #vip 123456 | 將該使用者加入vip清單, vip清單內的使用者可以使用#d 指令, 也可以透過at呼叫機器人, 執行openai api對話 |
#unvip | #unvip 123456 | 將該使用者從vip清單中移除 |
#清理對話 | #清理對話 | 清理對話上下文(先前對話內容過長導致請求失敗時, 可以選擇清理) |
#幫助 | #幫助 | 顯示面向群內普通用戶的幫助資訊, 不含vip指令和master指令 |
#預設 | #預設 | 顯示#画图 的預設json配置, 你可以直接複製這些資訊自己修改, 然後再透過#画图{...} 傳回去調用 |
#黑名單 | #黑名單 | 顯示黑名單列表 |
#at切換 | #at切換 | 切換機器人回應模式, 預設總是需要at機器人以進行openai回复, 切換後可以直接對話, 對每句話都進行回复 |
#model | #model anything-v4 | 直接輸入#model 查看當前激活模型及所有可用模型列表, 輸入#model 模型名 進行模型切換, 模型名不需要完整, 只需要存在於目標模型名中即可, 不區分大小寫, 例如, 完整的模型名為anything-v4.0-pruned.safetensors , 可直接輸入#model v4 進行切換 |
#vae | #vae Anything-V3.0.vae.pt | 直接輸入#vae 查看目前使用的VAE, 輸入#vae VAE名称 進行VAE切換, 注意與模型切換不同, VAE切換必須完全符合檔案名稱 |
#餘額 | #餘額 | 顯示目前所用api key的餘額 |
修改main.py內的on_message函數, 及ws_wrapper.py, 以嘗試為QQ以外的其他程式開發機器人應用
這個專案一開始只是給沙雕群友們搞的玩具, 圖一樂來著, 最近搞真人模型的時候, 順便集成了gpt對話功能, 感覺效果還不錯, 就開源了
核心思路看config.py的prompt就懂了, 類似思路, 也可用於生成語音對話, 管理群聊等, 僅作拋磚引玉, 歡迎大夥fork改造
程式碼和git日誌很拉, 因為一開始就是個玩具專案, 直接一把梭做出來的, 而且記錄裡還有我自己的網域和key等隱私資訊, 所以直接新建了一個專案, 沒有log了