chatgpt-on-wechat(簡稱CoW)項目是基於大模型的智能對話機器人,支持微信公眾號、企業微信應用、飛書、釘釘接入,可選擇GPT3.5/GPT4.0/Claude/Gemini/ LinkAI/ChatGLM/KIMI/文心一言/訊飛星火/通義千問/LinkAI,能處理文本、語音和圖片,通過插件訪問操作系統和互聯網等外部資源,支持基於自有知識庫定制企業AI應用。
最新版本支持的功能如下:
DEMO視頻:https://cdn.link-ai.tech/doc/cow_demo.mp4
添加小助手微信加入開源項目交流群:
LinkAI 是面向企業和開發者的一站式AI應用平台,聚合多模態大模型、知識庫、Agent 插件、工作流等能力,支持一鍵接入主流平台並進行管理,支持SaaS、私有化部署多種模式。
LinkAI 目前已在私域運營、智能客服、企業效率助手等場景積累了豐富的AI 解決方案, 在電商、文教、健康、新消費、科技製造等各行業沉澱了大模型落地應用的最佳實踐,致力於幫助更多企業和開發者擁抱AI 生產力。
企業服務和產品諮詢可聯繫產品顧問:
2024.10.31: 1.7.3版本程序穩定性提升、數據庫功能、Claude模型優化、linkai插件優化、離線通知
2024.09.26: 1.7.2版本和1.7.1版本文心,訊飛等模型優化、o1 模型、快速安裝和管理腳本
2024.08.02: 1.7.0版本新增訊飛4.0 模型、知識庫引用來源展示、相關插件優化
2024.07.19: 1.6.9版本新增gpt-4o-mini 模型、阿里語音識別、企微應用渠道路由優化
2024.07.05: 1.6.8版本和1.6.7版本,Claude3.5, Gemini 1.5 Pro, MiniMax模型、工作流圖片輸入、模型列表完善
2024.06.04: 1.6.6版本和1.6.5版本,gpt-4o模型、釘釘流式卡片、訊飛語音識別/合成
2024.04.26: 1.6.0版本,新增Kimi 接入、gpt-4-turbo版本升級、文件總結和語音識別問題修復
2024.03.26: 1.5.8版本和1.5.7版本,新增GLM-4、Claude-3 模型,edge-tts 語音支持
2024.01.26: 1.5.6版本和1.5.5版本,釘釘接入,tool插件升級,4-turbo模型更新
2023.11.11: 1.5.3版本和1.5.4版本,新增通義千問模型、Google Gemini
2023.11.10: 1.5.2版本,新增飛書通道、圖像識別對話、黑名單配置
2023.11.10: 1.5.0版本,新增
gpt-4-turbo,dall-e-3,tts模型接入,完善圖像理解&生成、語音識別&生成的多模態能力
2023.10.16:支持通過意圖識別使用LinkAI聯網搜索、數學計算、網頁訪問等插件,參考插件文檔
2023.09.26:插件增加文件/文章鏈接一鍵總結和對話的功能,使用參考:插件說明
2023.08.08:接入百度文心一言模型,通過插件支持Midjourney 繪圖
2023.06.12:接入LinkAI 平台,可在線創建領域知識庫,打造專屬客服機器人。使用參考接入文檔。
更早更新日誌查看: 歸檔日誌
快速開始詳細文檔:項目搭建文檔
快速安裝腳本,詳細使用指導:一鍵安裝啟動腳本
bash <( curl -sS https://cdn.link-ai.tech/code/cow/install.sh )項目默認使用OpenAI接口,需前往OpenAI註冊頁面創建賬號,創建完賬號則前往API管理頁面創建一個API Key 並保存下來,後面需要在項目中配置這個key。接口需要海外網絡訪問及綁定信用卡支付。
默認對話模型是openai 的gpt-3.5-turbo,計費方式是約每1000tokens (約750個英文單詞或500漢字,包含請求和回复) 消耗$0.002,圖片生成是Dell E模型,每張消耗$0.016。
項目同時也支持使用LinkAI 接口,無需代理,可使用Kimi、文心、訊飛、GPT-3.5、GPT-4o 等模型,支持定制化知識庫、聯網搜索、MJ繪圖、文檔總結、工作流等能力。修改配置即可一鍵使用,參考接入文檔。
支持Linux、MacOS、Windows 系統(可在Linux服務器上長期運行),同時需安裝Python 。
建議Python版本在3.7.1~3.9.X 之間,推薦3.8版本,3.10及以上版本在MacOS 可用,其他系統上不確定能否正常運行。
注意:Docker 或Railway 部署無需安裝python環境和下載源碼,可直接快進到下一節。
(1) 克隆項目代碼:
git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/注: 如遇到網絡問題可選擇國內鏡像https://gitee.com/zhayujie/chatgpt-on-wechat
(2) 安裝核心依賴(必選):
能夠使用
itchat創建機器人,並具有文字交流功能所需的最小依賴集合。
pip3 install -r requirements.txt(3) 拓展依賴(可選,建議安裝):
pip3 install -r requirements-optional.txt如果某項依賴安裝失敗可註釋掉對應的行再繼續
配置文件的模板在根目錄的config-template.json中,需複制該模板創建最終生效的config.json文件:
cp config-template.json config.json然後在config.json中填入配置,以下是對默認配置的說明,可根據需要進行自定義修改(注意實際使用時請去掉註釋,保證JSON格式的完整):
# config.json文件内容示例
{
" model " : " gpt-3.5-turbo " , # 模型名称, 支持 gpt-3.5-turbo, gpt-4, gpt-4-turbo, wenxin, xunfei, glm-4, claude-3-haiku, moonshot
" open_ai_api_key " : " YOUR API KEY " , # 如果使用openAI模型则填入上面创建的 OpenAI API KEY
" open_ai_api_base " : " https://api.openai.com/v1 " , # OpenAI接口代理地址
" proxy " : " " , # 代理客户端的ip和端口,国内环境开启代理的需要填写该项,如 "127.0.0.1:7890"
" single_chat_prefix " : [ " bot " , " @bot " ], # 私聊时文本需要包含该前缀才能触发机器人回复
" single_chat_reply_prefix " : " [bot] " , # 私聊时自动回复的前缀,用于区分真人
" group_chat_prefix " : [ " @bot " ], # 群聊时包含该前缀则会触发机器人回复
" group_name_white_list " : [ " ChatGPT测试群" , " ChatGPT测试群2 " ], # 开启自动回复的群名称列表
" group_chat_in_one_session " : [ " ChatGPT测试群" ], # 支持会话上下文共享的群名称
" image_create_prefix " : [ "画" , "看" , "找" ], # 开启图片回复的前缀
" conversation_max_tokens " : 1000, # 支持上下文记忆的最多字符数
" speech_recognition " : false, # 是否开启语音识别
" group_speech_recognition " : false, # 是否开启群组语音识别
" voice_reply_voice " : false, # 是否使用语音回复语音
" character_desc " : "你是基于大语言模型的AI智能助手,旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。 " , # 人格描述
# 订阅消息,公众号和企业微信channel中请填写,当被订阅时会自动回复,可使用特殊占位符。目前支持的占位符有{trigger_prefix},在程序中它会自动替换成bot的触发词。
" subscribe_msg " : "感谢您的关注!n这里是ChatGPT,可以自由对话。n支持语音对话。n支持图片输出,画字开头的消息将按要求创作图片。n支持角色扮演和文字冒险等丰富插件。n输入{trigger_prefix}#help 查看详细指令。 " ,
" use_linkai " : false, # 是否使用LinkAI接口,默认关闭,开启后可国内访问,使用知识库和MJ
" linkai_api_key " : " " , # LinkAI Api Key
" linkai_app_code " : " " # LinkAI 应用或工作流code
}配置說明:
1.個人聊天
single_chat_prefix (如果不需要以前綴觸發可以填寫"single_chat_prefix": [""] )single_chat_reply_prefix (如果不需要前綴可以填寫"single_chat_reply_prefix": "" )2.群組聊天
group_name_white_list中才能開啟群聊自動回复。如果想對所有群聊生效,可以直接填寫"group_name_white_list": ["ALL_GROUP"]group_chat_prefixgroup_name_keyword_white_list配置項支持模糊匹配群名稱, group_chat_keyword配置項則支持模糊匹配群消息內容,用法與上述兩個配置項相同。 (Contributed by evolay)group_chat_in_one_session :使群聊共享一個會話上下文,配置["ALL_GROUP"]則作用於所有群聊3.語音識別
"speech_recognition": true將開啟語音識別,默認使用openai的whisper模型識別為文字,同時以文字回复,該參數僅支持私聊(注意由於語音消息無法匹配前綴,一旦開啟將對所有語音自動回复,支持語音觸發畫圖);"group_speech_recognition": true將開啟群組語音識別,默認使用openai的whisper模型識別為文字,同時以文字回复,參數僅支持群聊(會匹配group_chat_prefix和group_chat_keyword, 支持語音觸發畫圖);"voice_reply_voice": true將開啟語音回复語音(同時作用於私聊和群聊)4.其他配置
model : 模型名稱,目前支持gpt-3.5-turbo , gpt-4o-mini , gpt-4o , gpt-4 , wenxin , claude , gemini , glm-4 , xunfei , moonshot等,全部模型名稱參考common/const. py文件temperature , frequency_penalty , presence_penalty : Chat API接口參數,詳情參考OpenAI官方文檔。proxy :由於目前openai接口國內無法訪問,需配置代理客戶端的地址,詳情參考#351image_create_prefixconfig.py中檢查哪些參數在本項目中是可配置的。conversation_max_tokens :表示能夠記憶的上下文最大字數(一問一答為一組對話,如果累積的對話字數超出限制,就會優先移除最早的一組對話)rate_limit_chatgpt , rate_limit_dalle :每分鐘最高問答速率、畫圖速率,超速後排隊按序處理。clear_memory_commands : 對話內指令,主動清空前文記憶,字符串數組可自定義指令別名。hot_reload : 程序退出後,暫存等於狀態,默認關閉。character_desc配置中保存著你對機器人說的一段話,他會記住這段話並作為他的設定,你可以為他定制任何人格(關於會話上下文的更多內容參考該issue)subscribe_msg :訂閱消息,公眾號和企業微信channel中請填寫,當被訂閱時會自動回复, 可使用特殊佔位符。目前支持的佔位符有{trigger_prefix},在程序中它會自動替換成bot的觸發詞。5.LinkAI配置(可選)
use_linkai : 是否使用LinkAI接口,開啟後可國內訪問,使用知識庫和Midjourney繪畫, 參考文檔linkai_api_key : LinkAI Api Key,可在控制台創建linkai_app_code : LinkAI 應用或工作流的code,選填本說明文檔可能會未及時更新,當前所有可選的配置項均在該config.py中列出。
如果是開發機本地運行,直接在項目根目錄下執行:
python3 app.py # windows环境下该命令通常为 python app.py終端輸出二維碼後,進行掃碼登錄,當輸出"Start auto replying" 時表示自動回复程序已經成功運行了(注意:用於登錄的賬號需要在支付處已完成實名認證)。掃碼登錄後你的賬號就成為機器人了,可以在手機端通過配置的關鍵詞觸發自動回复(任意好友發送消息給你,或是自己發消息給好友),參考#142。
使用nohup命令在後台運行程序:
nohup python3 app.py & tail -f nohup.out # 在后台运行程序并通过日志输出二维码掃碼登錄後程序即可運行於服務器後台,此時可通過ctrl+c關閉日誌,不會影響後台程序的運行。使用ps -ef | grep app.py | grep -v grep命令可查看運行於後台的進程,如果想要重新啟動程序可以先kill掉對應的進程。日誌關閉後如果想要再次打開只需輸入tail -f nohup.out 。此外, scripts目錄下有一鍵運行、關閉程序的腳本供使用。
多賬號支持:將項目複製多份,分別啟動程序,用不同賬號掃碼登錄即可實現同時運行。
特殊指令:用戶向機器人發送#reset即可清空該用戶的上下文記憶。
使用docker部署無需下載源碼和安裝依賴,只需要獲取docker-compose.yml 配置文件並啟動容器即可。
前提是需要安裝好
docker及docker-compose,安裝成功的表現是執行docker -v和docker-compose version(或docker compose version) 可以查看到版本號,可前往docker官網進行下載。
(1) 下載docker-compose.yml 文件
wget https://open-1317903499.cos.ap-guangzhou.myqcloud.com/docker-compose.yml下載完成後打開docker-compose.yml修改所需配置,如OPEN_AI_API_KEY和GROUP_NAME_WHITE_LIST等。
(2) 啟動容器
在docker-compose.yml所在目錄下執行以下命令啟動容器:
sudo docker compose up -d運行sudo docker ps能查看到NAMES 為chatgpt-on-wechat 的容器即表示運行成功。
注意:
docker-compose是1.X 版本則需要執行sudo docker-compose up -d來啟動容器最後運行以下命令可查看容器運行日誌,掃描日誌中的二維碼即可完成登錄:
sudo docker logs -f chatgpt-on-wechat(3) 插件使用
如果需要在docker容器中修改插件配置,可通過掛載的方式完成,將插件配置文件重命名為config.json ,放置於docker-compose.yml相同目錄下,並在docker-compose.yml中的chatgpt-on-wechat部分下添加volumes映射:
volumes:
- ./config.json:/app/plugins/config.json
Railway 每月提供5刀和最多500小時的免費額度。 (07.11更新: 目前大部分賬號已無法免費部署)
Deploy Now按鈕。open_ai_api_key , character_desc 。一鍵部署:
FAQs: https://github.com/zhayujie/chatgpt-on-wechat/wiki/FAQs
或直接在線諮詢項目小助手(語料持續完善中,回复僅供參考)
歡迎接入更多應用,參考Terminal代碼實現接收和發送消息邏輯即可接入。 同時歡迎增加新的插件,參考插件說明文檔。
歡迎提交PR、Issues,以及Star支持一下。程序運行遇到問題可以查看常見問題列表,其次前往Issues 中搜索。個人開發者可加入開源交流群參與更多討論,企業用戶可聯繫產品顧問諮詢。