(Translated by https://www.hiragana.jp/)
GitHub - Cometzyc/chatgpt-on-wechat: 使用ChatGPT搭建微信聊天机器人,基于OpenAI API和itchat实现。Wechat robot based on ChatGPT, which using OpenAI api and itchat library.
Skip to content

使用しようChatGPT搭建ほろしん聊天つくえじん于OpenAI APIitchat实现。Wechat robot based on ChatGPT, which using OpenAI api and itchat library.

License

Notifications You must be signed in to change notification settings

Cometzyc/chatgpt-on-wechat

 
 

Repository files navigation

简介

ChatGPTきん以强だいてき对话和信かずのぶいき整合せいごう能力のうりょく风靡ぜん网,以写だい码、あらため论文、讲故事こじ,几乎无所不能ふのう,这让じんきんゆう个大きもてきそうほう能否のうひようてき对话模型もけいわが们的ほろしん造成ぞうせい一个智能机器人,以在あずかこうとも对话ちゅう给出意想いそういたてきかい应,而且さい也不よう担心おんな朋友ほうゆうかげ响我们 ゆう 工作こうさくりょう

最新さいしん版本はんぽん支持しじてきこうのう如下:

  • 多端たたん部署ぶしょ ゆう种部しょ方式ほうしき选择且功のうかん备,目前もくぜんやめ支持しじ个人ほろしんじほろしんこう众号くわだて业微しん应用とう部署ぶしょ方式ほうしき
  • もと础对话: わたし聊及ぐん聊的消息しょうそく智能ちのうかい复,支持しじ轮会话上下じょうげぶん记忆,支持しじ GPT-3.5, GPT-4, claude, ぶんこころ一言ひとこと, 讯飞ほし
  • 语音识别: 识别语音消息しょうそくつう文字もじある语音かい复,支持しじ azure, baidu, google, openaiとう种语おん模型もけい
  • 图片生成せいせい 支持しじ图片生成せいせい 图生图(如照へんおさむ复),选择 Dell-E, stable diffusion, replicate, midjourney模型もけい
  • 丰富插件: 支持しじ个性插件扩展,やめ实现多角たかくしょくきり换、文字もじおかせ险、敏感びんかん词过滤、聊天记录总结、ぶん档总结和对话とう插件
  • Tool工具こうぐ あずか操作そうさけい统和互联网交互こうご支持しじ最新さいしんしんいき搜索そうさく数学すうがく计算、てん气和资讯查询、网页总结,chatgpt-tool-hub 实现
  • 识库: つう过上传知识库ぶんけんてい义专ぞくつくえじんさく数字すうじ分身ぶんしん、领域识库、智能ちのうきゃくふく使用しようLinkAI 实现

迎接げいせつにゅうさら应用,参考さんこう Terminalだい实现接收せっしゅう发送消息しょうそく逻辑そくせっいれどう时欢むかえ增加ぞうかしんてき插件,参考さんこう 插件说明ぶん

えんじしめせ

chatgpt-on-wechat-demo-1019.mp4

Demo made by Visionn

交流こうりゅうぐん

添加てんかしょう助手じょしゅほろしん进群,请备ちゅう "wechat":

更新こうしんこころざし

2023.09.26: 插件增加ぞうか ぶんけん/文章ぶんしょう链接 一键总结和对话的功能,使用しよう参考さんこう插件说明

2023.08.08: せっいれひゃくぶんこころ一言ひとこと模型もけいつう插件 支持しじ Midjourney 绘图

2023.06.12: せっいれ LinkAI 平台ひらだいざい线创けん领域识库,并接にゅうほろしんじおおやけ众号及企业微しんちゅうみやつこ专属きゃくふくつくえじん使用しよう参考さんこう せっにゅうぶん

2023.04.26: 支持しじくわだて业微しん应用ごう部署ぶしょけんよう插件,并支持しじ语音图片交互こうご私人しじんじょ理想りそう选择,使用しようぶん。(contributed by @lanvent in #944)

2023.04.05: 支持しじほろしんこう众号部署ぶしょけんよう插件,并支持しじ语音图片交互こうご使用しようぶん。(contributed by @JS00000 in #686)

2023.04.05: 增加ぞうかのう让ChatGPT使用しよう工具こうぐてきtool插件,使用しようぶん工具こうぐしょう关issueはん馈至chatgpt-tool-hub。(contributed by @goldfishh in #663)

2023.03.25: 支持しじ插件开发,目前もくぜんやめ实现 多角たかくしょくきり换、文字もじおかせ险游戏、管理かんり员指れい、Stable Diffusionとう插件,使用しよう参考さんこう #578。(contributed by @lanvent in #565)

2023.03.09: もとwhisper API(きさき续已せっにゅうさらてき语音APIふく务) 实现对微しん语音消息しょうそくてき解析かいせきかい复,添加てんか配置はいち"speech_recognition":true そく启用,使用しよう参考さんこう #415。(contributed by wanggang1987 in #385)

2023.02.09: 扫码とう存在そんざい账号げんせい风险,请谨まき使用しよう参考さんこう#58

快速かいそく开始

じゅん

1. 账号ちゅうさつ

项目だま使用しようOpenAIせっこう,需前往 OpenAIちゅうさつ页面 创建账号,创建かん账号则前往 API管理かんり页面 创建いち个 API Key 并保存ほぞんらいきさきめん需要じゅようざい项目ちゅう配置はいち这个key。せっこう需要じゅよう海外かいがい网络访问及绑てい信用しんよう卡支づけ

だま认对话模がた openai てき gpt-3.5-turbo,计费方式ほうしき约每 1000tokens (约750个英文えいぶん单词 ある 500汉字,包含ほうがん请求かい复) 消耗しょうもう $0.002,图片生成せいせいDell E模型もけいまい消耗しょうもう $0.016。

项目どう时也支持しじ使用しよう LinkAI せっこう,无需代理だいり使用しよう ぶんしん、讯飞、GPT-3、GPT-4 とう模型もけい支持しじ じょうせい识库、联网搜索そうさく、MJ绘图、ぶん档总结和对话とう能力のうりょくおさむあらため配置はいちそくいち键切换,参考さんこう せっにゅうぶん

2.运行环境

支持しじ 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/

(2) あんそう核心かくしん赖 (必选):

のう使用しようitchat创建つくえじん,并具有ぐゆう文字もじ交流こうりゅうこうのうしょ需的最小さいしょう集合しゅうごう

pip3 install -r requirements.txt

(3) つぶせてん赖 (选,けん议安そう):

pip3 install -r requirements-optional.txt

如果ぼう项依赖安そうしつ败请ちゅう释掉对应てきくだりさい继续。

其中tiktoken要求ようきゅうpython版本はんぽんざい3.8以上いじょう,它用于精确计さんかい使用しようてきtokens数量すうりょう强烈きょうれつけん议安そう

使用しようgoogleあるbaidu语音识别需安そうffmpeg

だま认的openai语音识别需要じゅようあんそうffmpeg

参考さんこう#415

使用しようazure语音こうのう需安そう赖,并参考さんこうぶんてき环境要求ようきゅう。 :

pip3 install azure-cognitiveservices-speech

配置はいち

配置はいちぶんけんてきばんざい录的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
  "model": "gpt-3.5-turbo",                                   # 模型もけい名称めいしょう, 支持しじ gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-4, wenxin, xunfei
  "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,                          # 开启ぐん组语おん识别
  "use_azure_chatgpt": false,                                 # 使用しようAzure ChatGPT service代替だいたいopenai ChatGPT service. とう设置为true时需よう设置 open_ai_api_base,如 https://xxx.openai.azure.com/
  "azure_deployment_id": "",                                  # さいようAzure ChatGPT时,模型もけい部署ぶしょ名称めいしょう
  "azure_api_version": "",                                    # さいようAzure ChatGPT时,API版本はんぽん
  "character_desc": "你是ChatGPT, いち个由OpenAI训练てき大型おおがた语言模型もけい, 你旨ざい回答かいとう并解决人们的にんなん问题,并且使用しよう种语げんあずかひと交流こうりゅう",  # 人格じんかく描述
  # 订阅消息しょうそくおおやけ众号くわだて业微しん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.个人聊天

  • 个人聊天ちゅう需要じゅよう以 "bot"ある"@bot" 为开头的内容ないようさわ发机じん,对应配置はいちsingle_chat_prefix (如果需要じゅよう以前いぜん缀触发可以填うつし "single_chat_prefix": [""])
  • つくえじんかい复的内容ないようかい以 "[bot] " さく为前缀, 以区分くぶん真人しんじん,对应てき配置はいち项为 single_chat_reply_prefix (如果需要じゅようぜん缀可以填うつし "single_chat_reply_prefix": "")

2.ぐん组聊てん

  • ぐん组聊てんちゅうぐん名称めいしょう配置はいちざい group_name_white_list ちゅう才能さいのう开启ぐん聊自动回复。如果そう所有しょゆうぐん聊生こう直接ちょくせつはまうつし "group_name_white_list": ["ALL_GROUP"]
  • だま认只ようひと @ 就会さわ发机じん动回复;另外ぐん聊天ちゅうただよう检测到以 "@bot" 开头てき内容ないようどう样会动回复(方便ほうべん自己じこさわ发),这对应配置はいちgroup_chat_prefix
  • 配置はいち: group_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_prefixgroup_chat_keyword, 支持しじ语音さわ发画图);
  • 添加てんか "voice_reply_voice": true はた开启语音かい复语おんどう时作よう于私聊和ぐん聊),ただし需要じゅよう配置はいち对应语音合成ごうせい平台ひらだいてきkey,ゆかり于itchat协议てききりせいただのう发送语音mp3ぶんけんわか使用しようwechaty则回复的ほろしん语音。

4.其他配置はいち

  • model: 模型もけい名称めいしょう目前もくぜん支持しじ gpt-3.5-turbo, text-davinci-003, gpt-4, gpt-4-32k, wenxin , claude , xunfei(其中gpt-4 api暂未完全かんぜん开放,さる请通过后使用しよう)
  • temperature,frequency_penalty,presence_penalty: Chat APIせっこうさんすう,详情参考さんこうOpenAIかんかたぶん档。
  • proxyよし于目まえ openai せっこう国内こくない无法访问,需配置はいち代理だいりきゃく户端てき,详情参考さんこう #351
  • 对于图像生成せいせいざい满足个人あるぐん组触发条件じょうけんがい,还需よう额外てき关键词前缀来さわ发,对应配置はいち image_create_prefix
  • 关于OpenAI对话及图へんせっこうてきまいりすう配置はいち内容ないよう自由じゆうかい复字すうげんせい、图片大小だいしょうとう),参考さんこう 对话せっこう 图像せっこう ぶん档,ざいconfig.pyちゅう检查哪些さんすうざいほん项目ちゅう配置はいちてき
  • conversation_max_tokens表示ひょうじのう够记忆的上下じょうげぶん最大さいだい字数じすう(一问一答为一组对话,如果るい积的对话字数じすうちょうだしげんせい,就会优先うつりじょ最早もはやてきいち组对话)
  • rate_limit_chatgptrate_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ちゅうれつ

运行

1.本地ほんじ运行

如果开发つくえ 本地ほんじ运行直接ちょくせつざい项目录下执行:

python3 app.py                                    # windows环境命令めいれい通常つうじょう为 python app.py

终端输出维码きさき使用しようほろしん进行扫码,とう输出 "Start auto replying" 时表示ひょうじ动回复程じょやめ成功せいこう运行りょう注意ちゅういよう于登录的ほろしん需要じゅようざいささえづけ处已完成かんせい实名认证)。扫码とう录后你的账号就成为机じんりょう以在ほろしんしゅつくえはしどおり配置はいちてき关键词触发自动回复 (任意にんいこうとも发送消息しょうそく给你,ある自己じこ发消いき给好とも),参考さんこう#142

2.ふく务器部署ぶしょ

使用しようnohup命令めいれいざいきさきだい行程こうていじょ

touch nohup.out                                   # くび运行需要じゅよう新建しんたけ志文しぶみけん  
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 そくきよしそら该用户的上下じょうげぶん记忆。

3.Docker部署ぶしょ

使用しようdocker部署ぶしょ无需载源码和あんそう赖,ただ需要じゅよう获取 docker-compose.yml 配置はいちぶんけん并启动容そく

前提ぜんてい需要じゅようあんそうこのみ dockerdocker-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 らい启动容器ようき
  • 命令めいれいかい动去 docker hub ひしげ latest 版本はんぽんてき镜像,latest 镜像かいざい每次まいじ项目 release しんてき版本はんぽん生成せいせい

さいきさき运行以下いか命令めいれい查看容器ようき运行こころざし,扫描こころざしちゅうてき二维码即可完成登录:

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

4. Railway部署ぶしょ

Railway 每月まいつき提供ていきょう5かたな最多さいた500しょう时的めん费额。 (07.11更新こうしん: 目前もくぜんだい部分ぶぶん账号やめ无法めん费部しょ)

  1. 进入 Railway
  2. てんDeploy Now 按钮。
  3. 设置环境变量じゅう载程じょ运行てきまいりすうれいopen_ai_api_key, character_desc

いち键部しょ:

Deploy on Railway

つね见问题

FAQs: https://github.com/zhayujie/chatgpt-on-wechat/wiki/FAQs

ある直接ちょくせつざい线咨询 项目しょう助手じょしゅ (beta版本はんぽん,语料かんぜんちゅうかい复仅きょう参考さんこう)

联系

欢迎ひさげ交PR、Issues,以及Star支持しじいちほどじょ运行ぐういた问题以查 つね见问题列ひょう ,其次ぜんIssues ちゅう搜索そうさく参与さんよさら讨论加入かにゅうわざ交流こうりゅうぐん

About

使用しようChatGPT搭建ほろしん聊天つくえじん于OpenAI APIitchat实现。Wechat robot based on ChatGPT, which using OpenAI api and itchat library.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Python 99.4%
  • Other 0.6%