1
- # wechatbot
1
+ # chatgpt_wechat_robot
2
+ 个人微信接入ChatGPT,实现和GPT机器人互动聊天。支持私聊回复和群聊艾特回复。
2
3
3
- > 本项目是 fork 他人的项目来进行学习和使用,请勿商用,可以下载下来做自定义的功能
4
- > 最近ChatGPT异常火爆,本项目可以将个人微信化身GPT机器人,
5
- > 项目基于[ openwechat] ( https://github.com/eatmoreapple/openwechat ) 开发。
6
-
7
- > ` 友链: ` [ chatgpt-dingtalk] ( https://github.com/eryajf/chatgpt-dingtalk ) 本项目可以将GPT机器人集成到钉钉群聊中。
8
-
9
-
10
- ### 目前实现了以下功能
4
+ ### 实现功能
11
5
12
6
* GPT机器人模型热度可配置
13
7
* 提问增加上下文
14
- * 指令清空上下文(指令:根据配置)
15
- * 机器人群聊@回复
8
+ * 指令清空上下文
16
9
* 机器人私聊回复
10
+ * 机器人群聊@回复
17
11
* 私聊回复前缀设置
18
12
* 好友添加自动通过可配置
19
- * ~~ 增加每天工作的起始时间和结束时间,只有在该时间段才会对外提供 chatgpt 服务~~
20
- * ~~ 增加 vip 用户在任意时段都可享受 chatgpt 服务,只需要在 \wechatbot\handlers\group_msg_handler.go 中 的 VipUserList 切片中,
21
- 加入具体的 vip 昵称~~
22
13
23
- # 实现机制
24
- 目前机器人有两种实现方式
25
- * 逆向功能,扒取官网API,通过抓取cookie获取GPT响应信息,` 优点: ` 效果与官网一致,` 缺点: ` cookie会过期需要不定时更新。
26
- * 基于openai官网提供的API,` 优点 ` :模型以及各种参数可以自由配置,` 缺点: ` 效果达不到官网智能,且API收费,新账号有18美元免费额度。
14
+ ### 实现机制
15
+ 基于openai官网提供的API,` 优点 ` :模型以及各种参数可以自由配置,` 缺点: ` 效果达不到官网智能,且API收费,新账号有18美元免费额度。
27
16
28
- > 本项目基于第二种方式实现, 模型之间具体差异可以参考[ 官方文档] ( https://beta.openai.com/docs/models/overview ) , 详细[ 参数示例] ( https://beta.openai.com/examples ) 。
17
+ > 模型之间具体差异可以参考[ 官方文档] ( https://beta.openai.com/docs/models/overview ) , 详细[ 参数示例] ( https://beta.openai.com/examples ) 。
29
18
30
- # 常见问题
31
- * 如无法登录 login error: write storage.json: bad file descriptor 删除掉storage.json文件重新登录。
32
- * 如无法登录 login error: wechat network error: Get "https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage ": 301 response missing Location header 一般是微信登录权限问题,先确保PC端能否正常登录。
33
- * 其他无法登录问题,依然尝试删除掉storage.json文件,结束进程(linux一般是kill -9 进程id)之后重启程序,重新扫码登录,(如为docket部署,Supervisord进程管理工具会自动重启程序)。
34
- * ~~ 机器人无法正常回复,检查ApiKey能否正常使用,控制台日志中有详细错误信息~~ 新版本会机器人会直接输出,因为被问得好烦了。
35
- * linux中二维码无法扫描,缩小命令行功能,让二维码像素尽可能清晰。(无法从代码层面解决)
36
- * 机器人一直答非所问,可能因为上下文累积过多。切换不同问题时,发送指令:启动时配置的` session_clear_token ` 字段。会清空上下文
19
+ ### 常见问题
20
+ > 如无法登录` login error: write storage.json: bad file descriptor `
21
+ 删除掉storage.json文件重新登录。
37
22
38
- # 使用前提
23
+ > 如无法登录` login error: wechat network error: Get "https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage": 301 response missing Location header `
24
+ 一般是微信登录权限问题,先确保PC端能否正常登录。
39
25
40
- > * ~~ 目前只支持在windows上运行因为需要弹窗扫码登录微信,后续会支持linux~~ 已支持
41
- > * 有openai账号,并且创建好api_key,注册事项可以参考[ 此文章] ( https://juejin.cn/post/7173447848292253704 ) 。
42
- > * 应用可以参考这篇文章 [ 此文章] ( https://juejin.cn/post/7176813187705077816 ) 。
43
- > * 微信必须实名认证。
26
+ > 其他无法登录问题
27
+ 尝试删除掉storage.json文件,结束进程(linux一般是kill -9 进程id)之后重启程序,重新扫码登录。
28
+ 如果为docket部署,Supervisord进程管理工具会自动重启程序。
44
29
45
- # 注意事项
30
+ > linux中二维码无法扫描
31
+ 缩小命令行功能,让二维码像素尽可能清晰。
46
32
47
- > * 项目仅供娱乐,滥用可能有微信封禁的风险,请勿用于商业用途。
48
- > * 请注意收发敏感信息,本项目不做信息过滤。
33
+ > 机器人一直答非所问
34
+ 可能因为上下文累积过多。切换不同问题时,发送指令:启动时配置的 ` session_clear_token ` 字段。会清空上下文
49
35
50
- # 使用docker运行
36
+ ### 使用前提
37
+ * 有openai账号,并且创建好api_key,注册事项可以参考[ 此文章] ( https://juejin.cn/post/7173447848292253704 ) 。
38
+ * 应用可以参考这篇文章 [ 此文章] ( https://juejin.cn/post/7176813187705077816 ) 。
39
+ * 微信必须实名认证。
51
40
41
+ ### 注意事项
42
+ * 项目仅供娱乐,滥用可能有微信封禁的风险,请勿用于商业用途。
43
+ * 请注意收发敏感信息,本项目不做信息过滤。
44
+
45
+ ### docker运行
52
46
你可以使用docker快速运行本项目。
53
47
54
- ` 第一种: 基于环境变量运行`
48
+ #### 1. 基于环境变量运行
55
49
56
50
``` sh
57
51
# 运行项目,环境变量参考下方配置说明
@@ -73,7 +67,7 @@ $ tail -f -n 50 /app/run.log
73
67
74
68
运行命令中映射的配置文件参考下边的配置文件说明。
75
69
76
- ` 第二种: 基于配置文件挂载运行`
70
+ #### 2. 基于配置文件挂载运行
77
71
78
72
``` sh
79
73
# 复制配置文件,根据自己实际情况,调整配置里的内容
@@ -89,78 +83,39 @@ $ tail -f -n 50 /app/run.log
89
83
90
84
其中配置文件参考下边的配置文件说明。
91
85
92
- # 快速开始
93
-
94
- ` 第一种:直接下载二进制(适合对编程不了解的同学) `
95
-
96
- > 非技术人员请直接下载release中的[ 压缩包] ( https://github.com/869413421/wechatbot/releases ) ,请根据自己系统以及架构选择合适的压缩包,下载之后直接解压运行。
97
-
98
- 下载之后,在本地解压,即可看到可执行程序,与配置文件:
99
-
100
- ```
101
- # windows
102
- 1.下载压缩包解压
103
- 2.复制文件中config.dev.json更改为config.json
104
- 3.将config.json中的api_key替换为自己的
105
- 4.双击exe,扫码登录
106
-
107
- # linux
108
- $ tar xf wechatbot-v0.0.2-darwin-arm64.tar.gz
109
- $ cd wechatbot-v0.0.2-darwin-arm64
110
- $ cp config.dev.json # 根据情况调整配置文件内容
111
- $ ./wechatbot # 直接运行
112
-
113
- # 如果要守护在后台运行
114
- $ nohup ./wechatbot &> run.log &
115
- $ tail -f run.log
116
- ```
117
86
118
- ` 第二种:基于源码运行(适合了解go语言编程的同学) `
87
+ ### 源码运行
88
+ 适合了解go语言编程的同学
119
89
120
90
````
121
91
# 获取项目
122
- $ git clone https://github.com/869413421/wechatbot .git
92
+ $ git clone https://github.com/ZYallers/chatgpt_wechat_robot .git
123
93
124
94
# 进入项目目录
125
- $ cd wechatbot
95
+ $ cd chatgpt_wechat_robot
126
96
127
97
# 复制配置文件
128
- $ copy config.dev.json config.json
98
+ $ cp config.dev.json config.json
129
99
130
100
# 启动项目
131
101
$ go run main.go
132
102
````
133
103
134
- # 配置文件说明
104
+ ### 配置说明
135
105
136
- ````
106
+ ``` json
137
107
{
138
- "api_key": "your api key",
139
- "auto_pass": true,
140
- "session_timeout": 60,
141
- "max_tokens": 1024,
142
- "model": "text-davinci-003",
143
- "temperature": 1,
144
- "reply_prefix": "来自机器人回复:",
145
- "session_clear_token": "清空会话"
108
+ "api_key" : " your api key" , # openai账号里设置的api_key
109
+ "auto_pass" : true , # 是否自动通过好友添加
110
+ "session_timeout" : 60 , # 会话超时时间,默认60秒,单位秒,在会话时间内所有发送给机器人的信息会作为上下文
111
+ "max_tokens" : 1024 , # GPT响应字符数,最大2048,默认值512。会影响接口响应速度,字符越大响应越慢
112
+ "model" : " text-davinci-003" , # GPT选用模型,默认text-davinci-003,具体选项参考官网训练场
113
+ "temperature" : 1 , # GPT热度,0到1,默认0.9,数字越大创造力越强,但更偏离训练事实,越低越接近训练事实
114
+ "reply_prefix" : " 来自机器人回复:" , # 私聊回复前缀
115
+ "session_clear_token" : " 清空会话" # 会话清空口令,默认`下一个问题`
146
116
}
117
+ ```
147
118
148
- api_key:openai api_key
149
- auto_pass:是否自动通过好友添加
150
- session_timeout:会话超时时间,默认60秒,单位秒,在会话时间内所有发送给机器人的信息会作为上下文。
151
- max_tokens: GPT响应字符数,最大2048,默认值512。max_tokens会影响接口响应速度,字符越大响应越慢。
152
- model: GPT选用模型,默认text-davinci-003,具体选项参考官网训练场
153
- temperature: GPT热度,0到1,默认0.9。数字越大创造力越强,但更偏离训练事实,越低越接近训练事实
154
- reply_prefix: 私聊回复前缀
155
- session_clear_token: 会话清空口令,默认`下一个问题`
156
- ````
157
-
158
- # 使用示例
159
- ### 私聊
160
-
161
- <img width =" 300px " src =" https://raw.githubusercontent.com/869413421/study/master/static/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20221208153022.jpg " />
162
-
163
- ### 群聊@回复
164
-
165
- <img width =" 300px " src =" https://raw.githubusercontent.com/869413421/study/master/static/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20221208153015.jpg " />
166
-
119
+ ### 友情提示
120
+ 本项目是 fork 他人的项目来进行学习和使用,请勿商用,可以下载下来做自定义的功能。
121
+ 项目基于[ openwechat] ( https://github.com/eatmoreapple/openwechat ) 开发。
0 commit comments