chatgpt-on-wechat


Namechatgpt-on-wechat JSON
Version 1.1.2 PyPI version JSON
download
home_pagehttps://github.com/yanjlee/chatgpt-on-wechat
SummaryChatGPT近期以强大的对话和信息整合能力风靡全网,可以写代码、改论文、讲故事,几乎无所不能,这让人不禁有个大胆的想法,能否用他的对话模型把我们的微信打造成一个智能机器人,可以在与好友对话中给出意想不到的回应,而且再也不用担心女朋友影响我们 ~~打游戏~~ 工作了.
upload_time2024-06-01 07:27:54
maintainerNone
docs_urlNone
authoryanjlee
requires_pythonNone
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 简介

> ChatGPT近期以强大的对话和信息整合能力风靡全网,可以写代码、改论文、讲故事,几乎无所不能,这让人不禁有个大胆的想法,能否用他的对话模型把我们的微信打造成一个智能机器人,可以在与好友对话中给出意想不到的回应,而且再也不用担心女朋友影响我们 ~~打游戏~~ 工作了。

 
基于ChatGPT的微信聊天机器人,通过 [OpenAI](https://github.com/openai/openai-quickstart-python) 接口生成对话内容,使用 [itchat](https://github.com/littlecodersh/ItChat) 实现微信消息的接收和自动回复。已实现的特性如下:

- [x] **文本对话:** 接收私聊及群组中的微信消息,使用ChatGPT生成回复内容,完成自动回复
- [x] **规则定制化:** 支持私聊中按指定规则触发自动回复,支持对群组设置自动回复白名单
- [x] **多账号:** 支持多微信账号同时运行
- [x] **图片生成:** 支持根据描述生成图片,并自动发送至个人聊天或群聊
- [x] **上下文记忆**:支持多轮对话记忆,且为每个好友维护独立的上下会话


# 更新日志
>**2023.02.20:** 增加 [python-wechaty](https://github.com/wechaty/python-wechaty) 支持,Pad协议相对稳定,不易封号,但Token收费,可申请七天体验Token (使用参考[#244](https://github.com/zhayujie/chatgpt-on-wechat/pull/244),contributed by [ZQ7](https://github.com/ZQ7))

>**2023.02.09:** 扫码登录存在封号风险,请谨慎使用,参考[#58](https://github.com/AutumnWhj/ChatGPT-wechat-bot/issues/158)

>**2023.02.05:** 在openai官方接口方案中 (GPT-3模型) 实现上下文对话

>**2022.12.19:** 引入 [itchat-uos](https://github.com/why2lyj/ItChat-UOS) 替换 itchat,解决由于不能登录网页微信而无法使用的问题,且解决Python3.9的兼容问题

>**2022.12.18:** 支持根据描述生成图片并发送,openai版本需大于0.25.0

>**2022.12.17:** 原来的方案是从 [ChatGPT页面](https://chat.openai.com/chat) 获取session_token,使用 [revChatGPT](https://github.com/acheong08/ChatGPT) 直接访问web接口,但随着ChatGPT接入Cloudflare人机验证,这一方案难以在服务器顺利运行。 所以目前使用的方案是调用 OpenAI 官方提供的 [API](https://beta.openai.com/docs/api-reference/introduction),回复质量上基本接近于ChatGPT的内容,劣势是暂不支持有上下文记忆的对话,优势是稳定性和响应速度较好。

# 使用效果

### 个人聊天

![single-chat-sample.jpg](docs/images/single-chat-sample.jpg)

### 群组聊天

![group-chat-sample.jpg](docs/images/group-chat-sample.jpg)

### 图片生成

![group-chat-sample.jpg](docs/images/image-create-sample.jpg)


# 快速开始

## 准备

### 1. OpenAI账号注册

前往 [OpenAI注册页面](https://beta.openai.com/signup) 创建账号,参考这篇 [教程](https://freepac.siterubix.com/chatgpt%e6%b3%a8%e5%86%8c%e6%95%99%e7%a8%8b%ef%bc%88%e5%ae%8c%e6%95%b4%e6%8c%87%e5%8d%97%ef%bc%89/) 可以通过虚拟手机号来接收验证码。创建完账号则前往 [API管理页面](https://beta.openai.com/account/api-keys) 创建一个 API Key 并保存下来,后面需要在项目中配置这个key。

> 项目中使用的对话模型是 davinci,计费方式是约每 750 字 (包含请求和回复) 消耗 $0.02,图片生成是每张消耗 $0.016,账号创建有免费的 $18 额度,使用完可以更换邮箱重新注册。


### 2.运行环境

支持 Linux、MacOS、Windows 系统(可在Linux服务器上长期运行),同时需安装 `Python`。 
> 建议Python版本在 3.7.1~3.9.X 之间,3.10及以上版本在 MacOS 可用,其他系统上不确定能否正常运行。


1.克隆项目代码:

```bash
git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/
```

2.安装所需核心依赖:

```bash
pip3 install itchat-uos==1.5.0.dev0
pip3 install --upgrade openai
```
注:`itchat-uos`使用指定版本1.5.0.dev0,`openai`使用最新版本,需高于0.25.0。


## 配置

配置文件的模板在根目录的`config-template.json`中,需复制该模板创建最终生效的 `config.json` 文件:

```bash
cp config-template.json config.json
```

然后在`config.json`中填入配置,以下是对默认配置的说明,可根据需要进行自定义修改:

```bash
# 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"], # 开启自动回复的群名称列表
  "image_create_prefix": ["画", "看", "找"],                   # 开启图片回复的前缀
  "conversation_max_tokens": 1000,                            # 支持上下文记忆的最多字符数
  "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。"  # 人格描述
}
```
**配置说明:**

**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](https://github.com/evolay))

**3.其他配置**

+ 对于图像生成,在满足个人或群组触发条件外,还需要额外的关键词前缀来触发,对应配置 `image_create_prefix `
+ 关于OpenAI对话及图片接口的参数配置(内容自由度、回复字数限制、图片大小等),可以参考 [对话接口](https://beta.openai.com/docs/api-reference/completions) 和 [图像接口](https://beta.openai.com/docs/api-reference/completions)  文档直接在 [代码](https://github.com/zhayujie/chatgpt-on-wechat/blob/master/bot/openai/open_ai_bot.py) `bot/openai/open_ai_bot.py` 中进行调整。
+ `conversation_max_tokens`:表示能够记忆的上下文最大字数(一问一答为一组对话,如果累积的对话字数超出限制,就会优先移除最早的一组对话)
+ `character_desc` 配置中保存着你对机器人说的一段话,他会记住这段话并作为他的设定,你可以为他定制任何人格      (关于会话上下文的更多内容参考该 [issue](https://github.com/zhayujie/chatgpt-on-wechat/issues/43))


## 运行

### 1.本地运行

如果是开发机 **本地运行**,直接在项目根目录下执行:

```bash
python3 app.py
```
终端输出二维码后,使用微信进行扫码,当输出 "Start auto replying" 时表示自动回复程序已经成功运行了(注意:用于登录的微信需要在支付处已完成实名认证)。扫码登录后你的账号就成为机器人了,可以在微信手机端通过配置的关键词触发自动回复 (任意好友发送消息给你,或是自己发消息给好友),参考[#142](https://github.com/zhayujie/chatgpt-on-wechat/issues/142)。 


### 2.服务器部署

使用nohup命令在后台运行程序:

```bash
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`。

> **注意:** 如果 扫码后手机提示登录验证需要等待5s,而终端的二维码再次刷新并提示 `Log in time out, reloading QR code`,此时需参考此 [issue](https://github.com/zhayujie/chatgpt-on-wechat/issues/8) 修改一行代码即可解决。

> **多账号支持:** 将 项目复制多份,分别启动程序,用不同账号扫码登录即可实现同时运行。

> **特殊指令:** 用户向机器人发送 **#清除记忆** 即可清空该用户的上下文记忆。


### 3.Docker部署

参考文档 [Docker部署](https://github.com/limccn/chatgpt-on-wechat/wiki/Docker%E9%83%A8%E7%BD%B2)   (Contributed by [limccn](https://github.com/limccn))。


## 常见问题

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


## 联系

欢迎提交PR、Issues,以及Star支持一下。程序运行遇到问题优先查看 [常见问题列表](https://github.com/zhayujie/chatgpt-on-wechat/wiki/FAQs) ,其次前往 [Issues](https://github.com/zhayujie/chatgpt-on-wechat/issues) 中搜索,若无相似问题可创建Issue,或加微信 eijuyahz 交流。

 

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/yanjlee/chatgpt-on-wechat",
    "name": "chatgpt-on-wechat",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "yanjlee",
    "author_email": "yanjlee@163.com",
    "download_url": "https://files.pythonhosted.org/packages/3e/e8/2fd19117f5a28f03aedad917b35b9cf6d1a156dfd0c5a28734a1faaa1697/chatgpt_on_wechat-1.1.2.tar.gz",
    "platform": null,
    "description": "# \u7b80\u4ecb\r\n\r\n> ChatGPT\u8fd1\u671f\u4ee5\u5f3a\u5927\u7684\u5bf9\u8bdd\u548c\u4fe1\u606f\u6574\u5408\u80fd\u529b\u98ce\u9761\u5168\u7f51\uff0c\u53ef\u4ee5\u5199\u4ee3\u7801\u3001\u6539\u8bba\u6587\u3001\u8bb2\u6545\u4e8b\uff0c\u51e0\u4e4e\u65e0\u6240\u4e0d\u80fd\uff0c\u8fd9\u8ba9\u4eba\u4e0d\u7981\u6709\u4e2a\u5927\u80c6\u7684\u60f3\u6cd5\uff0c\u80fd\u5426\u7528\u4ed6\u7684\u5bf9\u8bdd\u6a21\u578b\u628a\u6211\u4eec\u7684\u5fae\u4fe1\u6253\u9020\u6210\u4e00\u4e2a\u667a\u80fd\u673a\u5668\u4eba\uff0c\u53ef\u4ee5\u5728\u4e0e\u597d\u53cb\u5bf9\u8bdd\u4e2d\u7ed9\u51fa\u610f\u60f3\u4e0d\u5230\u7684\u56de\u5e94\uff0c\u800c\u4e14\u518d\u4e5f\u4e0d\u7528\u62c5\u5fc3\u5973\u670b\u53cb\u5f71\u54cd\u6211\u4eec ~~\u6253\u6e38\u620f~~ \u5de5\u4f5c\u4e86\u3002\r\n\r\n \r\n\u57fa\u4e8eChatGPT\u7684\u5fae\u4fe1\u804a\u5929\u673a\u5668\u4eba\uff0c\u901a\u8fc7 [OpenAI](https://github.com/openai/openai-quickstart-python) \u63a5\u53e3\u751f\u6210\u5bf9\u8bdd\u5185\u5bb9\uff0c\u4f7f\u7528 [itchat](https://github.com/littlecodersh/ItChat) \u5b9e\u73b0\u5fae\u4fe1\u6d88\u606f\u7684\u63a5\u6536\u548c\u81ea\u52a8\u56de\u590d\u3002\u5df2\u5b9e\u73b0\u7684\u7279\u6027\u5982\u4e0b\uff1a\r\n\r\n- [x] **\u6587\u672c\u5bf9\u8bdd\uff1a** \u63a5\u6536\u79c1\u804a\u53ca\u7fa4\u7ec4\u4e2d\u7684\u5fae\u4fe1\u6d88\u606f\uff0c\u4f7f\u7528ChatGPT\u751f\u6210\u56de\u590d\u5185\u5bb9\uff0c\u5b8c\u6210\u81ea\u52a8\u56de\u590d\r\n- [x] **\u89c4\u5219\u5b9a\u5236\u5316\uff1a** \u652f\u6301\u79c1\u804a\u4e2d\u6309\u6307\u5b9a\u89c4\u5219\u89e6\u53d1\u81ea\u52a8\u56de\u590d\uff0c\u652f\u6301\u5bf9\u7fa4\u7ec4\u8bbe\u7f6e\u81ea\u52a8\u56de\u590d\u767d\u540d\u5355\r\n- [x] **\u591a\u8d26\u53f7\uff1a** \u652f\u6301\u591a\u5fae\u4fe1\u8d26\u53f7\u540c\u65f6\u8fd0\u884c\r\n- [x] **\u56fe\u7247\u751f\u6210\uff1a** \u652f\u6301\u6839\u636e\u63cf\u8ff0\u751f\u6210\u56fe\u7247\uff0c\u5e76\u81ea\u52a8\u53d1\u9001\u81f3\u4e2a\u4eba\u804a\u5929\u6216\u7fa4\u804a\r\n- [x] **\u4e0a\u4e0b\u6587\u8bb0\u5fc6**\uff1a\u652f\u6301\u591a\u8f6e\u5bf9\u8bdd\u8bb0\u5fc6\uff0c\u4e14\u4e3a\u6bcf\u4e2a\u597d\u53cb\u7ef4\u62a4\u72ec\u7acb\u7684\u4e0a\u4e0b\u4f1a\u8bdd\r\n\r\n\r\n# \u66f4\u65b0\u65e5\u5fd7\r\n>**2023.02.20\uff1a** \u589e\u52a0 [python-wechaty](https://github.com/wechaty/python-wechaty) \u652f\u6301\uff0cPad\u534f\u8bae\u76f8\u5bf9\u7a33\u5b9a\uff0c\u4e0d\u6613\u5c01\u53f7\uff0c\u4f46Token\u6536\u8d39\uff0c\u53ef\u7533\u8bf7\u4e03\u5929\u4f53\u9a8cToken (\u4f7f\u7528\u53c2\u8003[#244](https://github.com/zhayujie/chatgpt-on-wechat/pull/244)\uff0ccontributed by [ZQ7](https://github.com/ZQ7))\r\n\r\n>**2023.02.09\uff1a** \u626b\u7801\u767b\u5f55\u5b58\u5728\u5c01\u53f7\u98ce\u9669\uff0c\u8bf7\u8c28\u614e\u4f7f\u7528\uff0c\u53c2\u8003[#58](https://github.com/AutumnWhj/ChatGPT-wechat-bot/issues/158)\r\n\r\n>**2023.02.05\uff1a** \u5728openai\u5b98\u65b9\u63a5\u53e3\u65b9\u6848\u4e2d (GPT-3\u6a21\u578b) \u5b9e\u73b0\u4e0a\u4e0b\u6587\u5bf9\u8bdd\r\n\r\n>**2022.12.19\uff1a** \u5f15\u5165 [itchat-uos](https://github.com/why2lyj/ItChat-UOS) \u66ff\u6362 itchat\uff0c\u89e3\u51b3\u7531\u4e8e\u4e0d\u80fd\u767b\u5f55\u7f51\u9875\u5fae\u4fe1\u800c\u65e0\u6cd5\u4f7f\u7528\u7684\u95ee\u9898\uff0c\u4e14\u89e3\u51b3Python3.9\u7684\u517c\u5bb9\u95ee\u9898\r\n\r\n>**2022.12.18\uff1a** \u652f\u6301\u6839\u636e\u63cf\u8ff0\u751f\u6210\u56fe\u7247\u5e76\u53d1\u9001\uff0copenai\u7248\u672c\u9700\u5927\u4e8e0.25.0\r\n\r\n>**2022.12.17\uff1a** \u539f\u6765\u7684\u65b9\u6848\u662f\u4ece [ChatGPT\u9875\u9762](https://chat.openai.com/chat) \u83b7\u53d6session_token\uff0c\u4f7f\u7528 [revChatGPT](https://github.com/acheong08/ChatGPT) \u76f4\u63a5\u8bbf\u95eeweb\u63a5\u53e3\uff0c\u4f46\u968f\u7740ChatGPT\u63a5\u5165Cloudflare\u4eba\u673a\u9a8c\u8bc1\uff0c\u8fd9\u4e00\u65b9\u6848\u96be\u4ee5\u5728\u670d\u52a1\u5668\u987a\u5229\u8fd0\u884c\u3002 \u6240\u4ee5\u76ee\u524d\u4f7f\u7528\u7684\u65b9\u6848\u662f\u8c03\u7528 OpenAI \u5b98\u65b9\u63d0\u4f9b\u7684 [API](https://beta.openai.com/docs/api-reference/introduction)\uff0c\u56de\u590d\u8d28\u91cf\u4e0a\u57fa\u672c\u63a5\u8fd1\u4e8eChatGPT\u7684\u5185\u5bb9\uff0c\u52a3\u52bf\u662f\u6682\u4e0d\u652f\u6301\u6709\u4e0a\u4e0b\u6587\u8bb0\u5fc6\u7684\u5bf9\u8bdd\uff0c\u4f18\u52bf\u662f\u7a33\u5b9a\u6027\u548c\u54cd\u5e94\u901f\u5ea6\u8f83\u597d\u3002\r\n\r\n# \u4f7f\u7528\u6548\u679c\r\n\r\n### \u4e2a\u4eba\u804a\u5929\r\n\r\n![single-chat-sample.jpg](docs/images/single-chat-sample.jpg)\r\n\r\n### \u7fa4\u7ec4\u804a\u5929\r\n\r\n![group-chat-sample.jpg](docs/images/group-chat-sample.jpg)\r\n\r\n### \u56fe\u7247\u751f\u6210\r\n\r\n![group-chat-sample.jpg](docs/images/image-create-sample.jpg)\r\n\r\n\r\n# \u5feb\u901f\u5f00\u59cb\r\n\r\n## \u51c6\u5907\r\n\r\n### 1. OpenAI\u8d26\u53f7\u6ce8\u518c\r\n\r\n\u524d\u5f80 [OpenAI\u6ce8\u518c\u9875\u9762](https://beta.openai.com/signup) \u521b\u5efa\u8d26\u53f7\uff0c\u53c2\u8003\u8fd9\u7bc7 [\u6559\u7a0b](https://freepac.siterubix.com/chatgpt%e6%b3%a8%e5%86%8c%e6%95%99%e7%a8%8b%ef%bc%88%e5%ae%8c%e6%95%b4%e6%8c%87%e5%8d%97%ef%bc%89/) \u53ef\u4ee5\u901a\u8fc7\u865a\u62df\u624b\u673a\u53f7\u6765\u63a5\u6536\u9a8c\u8bc1\u7801\u3002\u521b\u5efa\u5b8c\u8d26\u53f7\u5219\u524d\u5f80 [API\u7ba1\u7406\u9875\u9762](https://beta.openai.com/account/api-keys) \u521b\u5efa\u4e00\u4e2a API Key \u5e76\u4fdd\u5b58\u4e0b\u6765\uff0c\u540e\u9762\u9700\u8981\u5728\u9879\u76ee\u4e2d\u914d\u7f6e\u8fd9\u4e2akey\u3002\r\n\r\n> \u9879\u76ee\u4e2d\u4f7f\u7528\u7684\u5bf9\u8bdd\u6a21\u578b\u662f davinci\uff0c\u8ba1\u8d39\u65b9\u5f0f\u662f\u7ea6\u6bcf 750 \u5b57 (\u5305\u542b\u8bf7\u6c42\u548c\u56de\u590d) \u6d88\u8017 $0.02\uff0c\u56fe\u7247\u751f\u6210\u662f\u6bcf\u5f20\u6d88\u8017 $0.016\uff0c\u8d26\u53f7\u521b\u5efa\u6709\u514d\u8d39\u7684 $18 \u989d\u5ea6\uff0c\u4f7f\u7528\u5b8c\u53ef\u4ee5\u66f4\u6362\u90ae\u7bb1\u91cd\u65b0\u6ce8\u518c\u3002\r\n\r\n\r\n### 2.\u8fd0\u884c\u73af\u5883\r\n\r\n\u652f\u6301 Linux\u3001MacOS\u3001Windows \u7cfb\u7edf\uff08\u53ef\u5728Linux\u670d\u52a1\u5668\u4e0a\u957f\u671f\u8fd0\u884c)\uff0c\u540c\u65f6\u9700\u5b89\u88c5 `Python`\u3002 \r\n> \u5efa\u8baePython\u7248\u672c\u5728 3.7.1~3.9.X \u4e4b\u95f4\uff0c3.10\u53ca\u4ee5\u4e0a\u7248\u672c\u5728 MacOS \u53ef\u7528\uff0c\u5176\u4ed6\u7cfb\u7edf\u4e0a\u4e0d\u786e\u5b9a\u80fd\u5426\u6b63\u5e38\u8fd0\u884c\u3002\r\n\r\n\r\n1.\u514b\u9686\u9879\u76ee\u4ee3\u7801\uff1a\r\n\r\n```bash\r\ngit clone https://github.com/zhayujie/chatgpt-on-wechat\r\ncd chatgpt-on-wechat/\r\n```\r\n\r\n2.\u5b89\u88c5\u6240\u9700\u6838\u5fc3\u4f9d\u8d56\uff1a\r\n\r\n```bash\r\npip3 install itchat-uos==1.5.0.dev0\r\npip3 install --upgrade openai\r\n```\r\n\u6ce8\uff1a`itchat-uos`\u4f7f\u7528\u6307\u5b9a\u7248\u672c1.5.0.dev0\uff0c`openai`\u4f7f\u7528\u6700\u65b0\u7248\u672c\uff0c\u9700\u9ad8\u4e8e0.25.0\u3002\r\n\r\n\r\n## \u914d\u7f6e\r\n\r\n\u914d\u7f6e\u6587\u4ef6\u7684\u6a21\u677f\u5728\u6839\u76ee\u5f55\u7684`config-template.json`\u4e2d\uff0c\u9700\u590d\u5236\u8be5\u6a21\u677f\u521b\u5efa\u6700\u7ec8\u751f\u6548\u7684 `config.json` \u6587\u4ef6\uff1a\r\n\r\n```bash\r\ncp config-template.json config.json\r\n```\r\n\r\n\u7136\u540e\u5728`config.json`\u4e2d\u586b\u5165\u914d\u7f6e\uff0c\u4ee5\u4e0b\u662f\u5bf9\u9ed8\u8ba4\u914d\u7f6e\u7684\u8bf4\u660e\uff0c\u53ef\u6839\u636e\u9700\u8981\u8fdb\u884c\u81ea\u5b9a\u4e49\u4fee\u6539\uff1a\r\n\r\n```bash\r\n# config.json\u6587\u4ef6\u5185\u5bb9\u793a\u4f8b\r\n{ \r\n  \"open_ai_api_key\": \"YOUR API KEY\",                          # \u586b\u5165\u4e0a\u9762\u521b\u5efa\u7684 OpenAI API KEY\r\n  \"single_chat_prefix\": [\"bot\", \"@bot\"],                      # \u79c1\u804a\u65f6\u6587\u672c\u9700\u8981\u5305\u542b\u8be5\u524d\u7f00\u624d\u80fd\u89e6\u53d1\u673a\u5668\u4eba\u56de\u590d\r\n  \"single_chat_reply_prefix\": \"[bot] \",                       # \u79c1\u804a\u65f6\u81ea\u52a8\u56de\u590d\u7684\u524d\u7f00\uff0c\u7528\u4e8e\u533a\u5206\u771f\u4eba\r\n  \"group_chat_prefix\": [\"@bot\"],                              # \u7fa4\u804a\u65f6\u5305\u542b\u8be5\u524d\u7f00\u5219\u4f1a\u89e6\u53d1\u673a\u5668\u4eba\u56de\u590d\r\n  \"group_name_white_list\": [\"ChatGPT\u6d4b\u8bd5\u7fa4\", \"ChatGPT\u6d4b\u8bd5\u7fa42\"], # \u5f00\u542f\u81ea\u52a8\u56de\u590d\u7684\u7fa4\u540d\u79f0\u5217\u8868\r\n  \"image_create_prefix\": [\"\u753b\", \"\u770b\", \"\u627e\"],                   # \u5f00\u542f\u56fe\u7247\u56de\u590d\u7684\u524d\u7f00\r\n  \"conversation_max_tokens\": 1000,                            # \u652f\u6301\u4e0a\u4e0b\u6587\u8bb0\u5fc6\u7684\u6700\u591a\u5b57\u7b26\u6570\r\n  \"character_desc\": \"\u4f60\u662fChatGPT, \u4e00\u4e2a\u7531OpenAI\u8bad\u7ec3\u7684\u5927\u578b\u8bed\u8a00\u6a21\u578b, \u4f60\u65e8\u5728\u56de\u7b54\u5e76\u89e3\u51b3\u4eba\u4eec\u7684\u4efb\u4f55\u95ee\u9898\uff0c\u5e76\u4e14\u53ef\u4ee5\u4f7f\u7528\u591a\u79cd\u8bed\u8a00\u4e0e\u4eba\u4ea4\u6d41\u3002\"  # \u4eba\u683c\u63cf\u8ff0\r\n}\r\n```\r\n**\u914d\u7f6e\u8bf4\u660e\uff1a**\r\n\r\n**1.\u4e2a\u4eba\u804a\u5929**\r\n\r\n+ \u4e2a\u4eba\u804a\u5929\u4e2d\uff0c\u9700\u8981\u4ee5 \"bot\"\u6216\"@bot\" \u4e3a\u5f00\u5934\u7684\u5185\u5bb9\u89e6\u53d1\u673a\u5668\u4eba\uff0c\u5bf9\u5e94\u914d\u7f6e\u9879 `single_chat_prefix` (\u5982\u679c\u4e0d\u9700\u8981\u4ee5\u524d\u7f00\u89e6\u53d1\u53ef\u4ee5\u586b\u5199  `\"single_chat_prefix\": [\"\"]`)\r\n+ \u673a\u5668\u4eba\u56de\u590d\u7684\u5185\u5bb9\u4f1a\u4ee5 \"[bot] \" \u4f5c\u4e3a\u524d\u7f00\uff0c \u4ee5\u533a\u5206\u771f\u4eba\uff0c\u5bf9\u5e94\u7684\u914d\u7f6e\u9879\u4e3a `single_chat_reply_prefix` (\u5982\u679c\u4e0d\u9700\u8981\u524d\u7f00\u53ef\u4ee5\u586b\u5199 `\"single_chat_reply_prefix\": \"\"`)\r\n\r\n**2.\u7fa4\u7ec4\u804a\u5929**\r\n\r\n+ \u7fa4\u7ec4\u804a\u5929\u4e2d\uff0c\u7fa4\u540d\u79f0\u9700\u914d\u7f6e\u5728 `group_name_white_list ` \u4e2d\u624d\u80fd\u5f00\u542f\u7fa4\u804a\u81ea\u52a8\u56de\u590d\u3002\u5982\u679c\u60f3\u5bf9\u6240\u6709\u7fa4\u804a\u751f\u6548\uff0c\u53ef\u4ee5\u76f4\u63a5\u586b\u5199 `\"group_name_white_list\": [\"ALL_GROUP\"]`\r\n+ \u9ed8\u8ba4\u53ea\u8981\u88ab\u4eba @ \u5c31\u4f1a\u89e6\u53d1\u673a\u5668\u4eba\u81ea\u52a8\u56de\u590d\uff1b\u53e6\u5916\u7fa4\u804a\u5929\u4e2d\u53ea\u8981\u68c0\u6d4b\u5230\u4ee5 \"@bot\" \u5f00\u5934\u7684\u5185\u5bb9\uff0c\u540c\u6837\u4f1a\u81ea\u52a8\u56de\u590d\uff08\u65b9\u4fbf\u81ea\u5df1\u89e6\u53d1\uff09\uff0c\u8fd9\u5bf9\u5e94\u914d\u7f6e\u9879 `group_chat_prefix`\r\n+ \u53ef\u9009\u914d\u7f6e: `group_name_keyword_white_list`\u914d\u7f6e\u9879\u652f\u6301\u6a21\u7cca\u5339\u914d\u7fa4\u540d\u79f0\uff0c`group_chat_keyword`\u914d\u7f6e\u9879\u5219\u652f\u6301\u6a21\u7cca\u5339\u914d\u7fa4\u6d88\u606f\u5185\u5bb9\uff0c\u7528\u6cd5\u4e0e\u4e0a\u8ff0\u4e24\u4e2a\u914d\u7f6e\u9879\u76f8\u540c\u3002\uff08Contributed by [evolay](https://github.com/evolay))\r\n\r\n**3.\u5176\u4ed6\u914d\u7f6e**\r\n\r\n+ \u5bf9\u4e8e\u56fe\u50cf\u751f\u6210\uff0c\u5728\u6ee1\u8db3\u4e2a\u4eba\u6216\u7fa4\u7ec4\u89e6\u53d1\u6761\u4ef6\u5916\uff0c\u8fd8\u9700\u8981\u989d\u5916\u7684\u5173\u952e\u8bcd\u524d\u7f00\u6765\u89e6\u53d1\uff0c\u5bf9\u5e94\u914d\u7f6e `image_create_prefix `\r\n+ \u5173\u4e8eOpenAI\u5bf9\u8bdd\u53ca\u56fe\u7247\u63a5\u53e3\u7684\u53c2\u6570\u914d\u7f6e\uff08\u5185\u5bb9\u81ea\u7531\u5ea6\u3001\u56de\u590d\u5b57\u6570\u9650\u5236\u3001\u56fe\u7247\u5927\u5c0f\u7b49\uff09\uff0c\u53ef\u4ee5\u53c2\u8003 [\u5bf9\u8bdd\u63a5\u53e3](https://beta.openai.com/docs/api-reference/completions) \u548c [\u56fe\u50cf\u63a5\u53e3](https://beta.openai.com/docs/api-reference/completions)  \u6587\u6863\u76f4\u63a5\u5728 [\u4ee3\u7801](https://github.com/zhayujie/chatgpt-on-wechat/blob/master/bot/openai/open_ai_bot.py) `bot/openai/open_ai_bot.py` \u4e2d\u8fdb\u884c\u8c03\u6574\u3002\r\n+ `conversation_max_tokens`\uff1a\u8868\u793a\u80fd\u591f\u8bb0\u5fc6\u7684\u4e0a\u4e0b\u6587\u6700\u5927\u5b57\u6570\uff08\u4e00\u95ee\u4e00\u7b54\u4e3a\u4e00\u7ec4\u5bf9\u8bdd\uff0c\u5982\u679c\u7d2f\u79ef\u7684\u5bf9\u8bdd\u5b57\u6570\u8d85\u51fa\u9650\u5236\uff0c\u5c31\u4f1a\u4f18\u5148\u79fb\u9664\u6700\u65e9\u7684\u4e00\u7ec4\u5bf9\u8bdd\uff09\r\n+ `character_desc` \u914d\u7f6e\u4e2d\u4fdd\u5b58\u7740\u4f60\u5bf9\u673a\u5668\u4eba\u8bf4\u7684\u4e00\u6bb5\u8bdd\uff0c\u4ed6\u4f1a\u8bb0\u4f4f\u8fd9\u6bb5\u8bdd\u5e76\u4f5c\u4e3a\u4ed6\u7684\u8bbe\u5b9a\uff0c\u4f60\u53ef\u4ee5\u4e3a\u4ed6\u5b9a\u5236\u4efb\u4f55\u4eba\u683c      (\u5173\u4e8e\u4f1a\u8bdd\u4e0a\u4e0b\u6587\u7684\u66f4\u591a\u5185\u5bb9\u53c2\u8003\u8be5 [issue](https://github.com/zhayujie/chatgpt-on-wechat/issues/43))\r\n\r\n\r\n## \u8fd0\u884c\r\n\r\n### 1.\u672c\u5730\u8fd0\u884c\r\n\r\n\u5982\u679c\u662f\u5f00\u53d1\u673a **\u672c\u5730\u8fd0\u884c**\uff0c\u76f4\u63a5\u5728\u9879\u76ee\u6839\u76ee\u5f55\u4e0b\u6267\u884c\uff1a\r\n\r\n```bash\r\npython3 app.py\r\n```\r\n\u7ec8\u7aef\u8f93\u51fa\u4e8c\u7ef4\u7801\u540e\uff0c\u4f7f\u7528\u5fae\u4fe1\u8fdb\u884c\u626b\u7801\uff0c\u5f53\u8f93\u51fa \"Start auto replying\" \u65f6\u8868\u793a\u81ea\u52a8\u56de\u590d\u7a0b\u5e8f\u5df2\u7ecf\u6210\u529f\u8fd0\u884c\u4e86\uff08\u6ce8\u610f\uff1a\u7528\u4e8e\u767b\u5f55\u7684\u5fae\u4fe1\u9700\u8981\u5728\u652f\u4ed8\u5904\u5df2\u5b8c\u6210\u5b9e\u540d\u8ba4\u8bc1\uff09\u3002\u626b\u7801\u767b\u5f55\u540e\u4f60\u7684\u8d26\u53f7\u5c31\u6210\u4e3a\u673a\u5668\u4eba\u4e86\uff0c\u53ef\u4ee5\u5728\u5fae\u4fe1\u624b\u673a\u7aef\u901a\u8fc7\u914d\u7f6e\u7684\u5173\u952e\u8bcd\u89e6\u53d1\u81ea\u52a8\u56de\u590d (\u4efb\u610f\u597d\u53cb\u53d1\u9001\u6d88\u606f\u7ed9\u4f60\uff0c\u6216\u662f\u81ea\u5df1\u53d1\u6d88\u606f\u7ed9\u597d\u53cb)\uff0c\u53c2\u8003[#142](https://github.com/zhayujie/chatgpt-on-wechat/issues/142)\u3002 \r\n\r\n\r\n### 2.\u670d\u52a1\u5668\u90e8\u7f72\r\n\r\n\u4f7f\u7528nohup\u547d\u4ee4\u5728\u540e\u53f0\u8fd0\u884c\u7a0b\u5e8f\uff1a\r\n\r\n```bash\r\ntouch nohup.out                                   # \u9996\u6b21\u8fd0\u884c\u9700\u8981\u65b0\u5efa\u65e5\u5fd7\u6587\u4ef6                     \r\nnohup python3 app.py & tail -f nohup.out          # \u5728\u540e\u53f0\u8fd0\u884c\u7a0b\u5e8f\u5e76\u901a\u8fc7\u65e5\u5fd7\u8f93\u51fa\u4e8c\u7ef4\u7801\r\n```\r\n\u626b\u7801\u767b\u5f55\u540e\u7a0b\u5e8f\u5373\u53ef\u8fd0\u884c\u4e8e\u670d\u52a1\u5668\u540e\u53f0\uff0c\u6b64\u65f6\u53ef\u901a\u8fc7 `ctrl+c` \u5173\u95ed\u65e5\u5fd7\uff0c\u4e0d\u4f1a\u5f71\u54cd\u540e\u53f0\u7a0b\u5e8f\u7684\u8fd0\u884c\u3002\u4f7f\u7528 `ps -ef | grep app.py | grep -v grep` \u547d\u4ee4\u53ef\u67e5\u770b\u8fd0\u884c\u4e8e\u540e\u53f0\u7684\u8fdb\u7a0b\uff0c\u5982\u679c\u60f3\u8981\u91cd\u65b0\u542f\u52a8\u7a0b\u5e8f\u53ef\u4ee5\u5148 `kill` \u6389\u5bf9\u5e94\u7684\u8fdb\u7a0b\u3002\u65e5\u5fd7\u5173\u95ed\u540e\u5982\u679c\u60f3\u8981\u518d\u6b21\u6253\u5f00\u53ea\u9700\u8f93\u5165\u00a0`tail -f nohup.out`\u3002\r\n\r\n> **\u6ce8\u610f\uff1a** \u5982\u679c \u626b\u7801\u540e\u624b\u673a\u63d0\u793a\u767b\u5f55\u9a8c\u8bc1\u9700\u8981\u7b49\u5f855s\uff0c\u800c\u7ec8\u7aef\u7684\u4e8c\u7ef4\u7801\u518d\u6b21\u5237\u65b0\u5e76\u63d0\u793a `Log in time out, reloading QR code`\uff0c\u6b64\u65f6\u9700\u53c2\u8003\u6b64 [issue](https://github.com/zhayujie/chatgpt-on-wechat/issues/8) \u4fee\u6539\u4e00\u884c\u4ee3\u7801\u5373\u53ef\u89e3\u51b3\u3002\r\n\r\n> **\u591a\u8d26\u53f7\u652f\u6301\uff1a** \u5c06 \u9879\u76ee\u590d\u5236\u591a\u4efd\uff0c\u5206\u522b\u542f\u52a8\u7a0b\u5e8f\uff0c\u7528\u4e0d\u540c\u8d26\u53f7\u626b\u7801\u767b\u5f55\u5373\u53ef\u5b9e\u73b0\u540c\u65f6\u8fd0\u884c\u3002\r\n\r\n> **\u7279\u6b8a\u6307\u4ee4\uff1a** \u7528\u6237\u5411\u673a\u5668\u4eba\u53d1\u9001 **#\u6e05\u9664\u8bb0\u5fc6** \u5373\u53ef\u6e05\u7a7a\u8be5\u7528\u6237\u7684\u4e0a\u4e0b\u6587\u8bb0\u5fc6\u3002\r\n\r\n\r\n### 3.Docker\u90e8\u7f72\r\n\r\n\u53c2\u8003\u6587\u6863 [Docker\u90e8\u7f72](https://github.com/limccn/chatgpt-on-wechat/wiki/Docker%E9%83%A8%E7%BD%B2)   (Contributed by [limccn](https://github.com/limccn))\u3002\r\n\r\n\r\n## \u5e38\u89c1\u95ee\u9898\r\n\r\nFAQs\uff1a <https://github.com/zhayujie/chatgpt-on-wechat/wiki/FAQs>\r\n\r\n\r\n## \u8054\u7cfb\r\n\r\n\u6b22\u8fce\u63d0\u4ea4PR\u3001Issues\uff0c\u4ee5\u53caStar\u652f\u6301\u4e00\u4e0b\u3002\u7a0b\u5e8f\u8fd0\u884c\u9047\u5230\u95ee\u9898\u4f18\u5148\u67e5\u770b [\u5e38\u89c1\u95ee\u9898\u5217\u8868](https://github.com/zhayujie/chatgpt-on-wechat/wiki/FAQs) \uff0c\u5176\u6b21\u524d\u5f80 [Issues](https://github.com/zhayujie/chatgpt-on-wechat/issues) \u4e2d\u641c\u7d22\uff0c\u82e5\u65e0\u76f8\u4f3c\u95ee\u9898\u53ef\u521b\u5efaIssue\uff0c\u6216\u52a0\u5fae\u4fe1 eijuyahz \u4ea4\u6d41\u3002\r\n\r\n \r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "ChatGPT\u8fd1\u671f\u4ee5\u5f3a\u5927\u7684\u5bf9\u8bdd\u548c\u4fe1\u606f\u6574\u5408\u80fd\u529b\u98ce\u9761\u5168\u7f51\uff0c\u53ef\u4ee5\u5199\u4ee3\u7801\u3001\u6539\u8bba\u6587\u3001\u8bb2\u6545\u4e8b\uff0c\u51e0\u4e4e\u65e0\u6240\u4e0d\u80fd\uff0c\u8fd9\u8ba9\u4eba\u4e0d\u7981\u6709\u4e2a\u5927\u80c6\u7684\u60f3\u6cd5\uff0c\u80fd\u5426\u7528\u4ed6\u7684\u5bf9\u8bdd\u6a21\u578b\u628a\u6211\u4eec\u7684\u5fae\u4fe1\u6253\u9020\u6210\u4e00\u4e2a\u667a\u80fd\u673a\u5668\u4eba\uff0c\u53ef\u4ee5\u5728\u4e0e\u597d\u53cb\u5bf9\u8bdd\u4e2d\u7ed9\u51fa\u610f\u60f3\u4e0d\u5230\u7684\u56de\u5e94\uff0c\u800c\u4e14\u518d\u4e5f\u4e0d\u7528\u62c5\u5fc3\u5973\u670b\u53cb\u5f71\u54cd\u6211\u4eec ~~\u6253\u6e38\u620f~~ \u5de5\u4f5c\u4e86.",
    "version": "1.1.2",
    "project_urls": {
        "Homepage": "https://github.com/yanjlee/chatgpt-on-wechat"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9414e622e7955c90758c9a4b0e5a99815dca938996edd58dd5a5a7888a89bbdf",
                "md5": "b94eea51c6ac375144e0fb8a1c1139d8",
                "sha256": "86ba26139fd1a900e49155fe2cf1ee074c2df941bf3a50c39060ff2f6200736e"
            },
            "downloads": -1,
            "filename": "chatgpt_on_wechat-1.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b94eea51c6ac375144e0fb8a1c1139d8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 6995,
            "upload_time": "2024-06-01T07:27:52",
            "upload_time_iso_8601": "2024-06-01T07:27:52.941870Z",
            "url": "https://files.pythonhosted.org/packages/94/14/e622e7955c90758c9a4b0e5a99815dca938996edd58dd5a5a7888a89bbdf/chatgpt_on_wechat-1.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3ee82fd19117f5a28f03aedad917b35b9cf6d1a156dfd0c5a28734a1faaa1697",
                "md5": "ecd3b23405a7cff81656fb84a0780796",
                "sha256": "54d94e2866564be1e2852f450734b0398af853bcd93bf54a49dbfc68fa441b52"
            },
            "downloads": -1,
            "filename": "chatgpt_on_wechat-1.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "ecd3b23405a7cff81656fb84a0780796",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 8013,
            "upload_time": "2024-06-01T07:27:54",
            "upload_time_iso_8601": "2024-06-01T07:27:54.951642Z",
            "url": "https://files.pythonhosted.org/packages/3e/e8/2fd19117f5a28f03aedad917b35b9cf6d1a156dfd0c5a28734a1faaa1697/chatgpt_on_wechat-1.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-01 07:27:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yanjlee",
    "github_project": "chatgpt-on-wechat",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "chatgpt-on-wechat"
}
        
Elapsed time: 0.47416s