3v324v23 commited on
Commit
2125ea4
1 Parent(s): 23c5a77

修改说明

Browse files
Files changed (2) hide show
  1. README.md +62 -56
  2. docs/Dockerfile+ChatGLM +9 -6
README.md CHANGED
@@ -23,7 +23,7 @@ If you like this project, please give it a Star. If you've come up with more use
23
  一键代码解释 | 可以正确显示代码、解释代码
24
  [自定义快捷键](https://www.bilibili.com/video/BV14s4y1E7jN) | 支持自定义快捷键
25
  [配置代理服务器](https://www.bilibili.com/video/BV1rc411W7Dr) | 支持配置代理服务器
26
- 模块化设计 | 支持自定义高阶的实验性功能与[函数插件],插件支持[热更新](https://github.com/binary-husky/chatgpt_academic/wiki/%E5%87%BD%E6%95%B0%E6%8F%92%E4%BB%B6%E6%8C%87%E5%8D%97)
27
  [自我程序剖析](https://www.bilibili.com/video/BV1cj411A7VW) | [函数插件] [一键读懂](https://github.com/binary-husky/chatgpt_academic/wiki/chatgpt-academic%E9%A1%B9%E7%9B%AE%E8%87%AA%E8%AF%91%E8%A7%A3%E6%8A%A5%E5%91%8A)本项目的源代码
28
  [程序剖析](https://www.bilibili.com/video/BV1cj411A7VW) | [函数插件] 一键可以剖析其他Python/C/C++/Java/Lua/...项目树
29
  读论文 | [函数插件] 一键解读latex论文全文并生成摘要
@@ -78,16 +78,17 @@ huggingface免科学上网[在线体验](https://huggingface.co/spaces/qingxu98/
78
  v3.1的[huggingface测试版](https://huggingface.co/spaces/qingxu98/academic-chatgpt-beta)(huggingface版不支持chatglm)
79
 
80
 
 
81
 
82
- ## 直接运行 (Windows, Linux or MacOS)
83
 
84
- ### 1. 下载项目
85
  ```sh
86
  git clone https://github.com/binary-husky/chatgpt_academic.git
87
  cd chatgpt_academic
88
  ```
89
 
90
- ### 2. 配置API_KEY和代理设置
91
 
92
  在`config.py`中,配置 海外Proxy 和 OpenAI API KEY,说明如下
93
  ```
@@ -98,7 +99,7 @@ cd chatgpt_academic
98
  (P.S. 程序运行时会优先检查是否存在名为`config_private.py`的私密配置文件,并用其中的配置覆盖`config.py`的同名配置。因此,如果您能理解我们的配置读取逻辑,我们强烈建议您在`config.py`旁边创建一个名为`config_private.py`的新配置文件,并把`config.py`中的配置转移(复制)到`config_private.py`中。`config_private.py`不受git管控,可以让您的隐私信息更加安全。)
99
 
100
 
101
- ### 3. 安装依赖
102
  ```sh
103
  # (选择一)推荐
104
  python -m pip install -r requirements.txt
@@ -112,27 +113,30 @@ python -m pip install -r requirements.txt
112
  # python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
113
  ```
114
 
115
- ### 4. 运行
 
 
 
 
 
116
  ```sh
117
  python main.py
118
  ```
119
 
120
- ### 5. 测试实验性功能
121
  ```
122
- - 测试C++项目头文件分析
123
- input区域 输入 `./crazy_functions/test_project/cpp/libJPG` , 然后点击 "[实验] 解析整个C++项目(input输入项目根路径)"
124
- - 测试给Latex项目写摘要
125
- input区域 输入 `./crazy_functions/test_project/latex/attention` , 然后点击 "[实验] 读tex论文写摘要(input输入项目根路径)"
126
  - 测试Python项目分析
127
- input区域 输入 `./crazy_functions/test_project/python/dqn` , 然后点击 "[实验] 解析整个py项目(input输入项目根路径)"
128
  - 测试自我代码解读
129
- 点击 "[实验] 请解析并解构此项目本身"
130
  - 测试实验功能模板函数(要求gpt回答历史上的今天发生了什么),您可以根据此函数为模板,实现更复杂的功能
131
- 点击 "[实验] 实验功能函数模板"
 
132
  ```
133
 
134
- ## 使用docker (Linux)
135
 
 
136
  ``` sh
137
  # 下载项目
138
  git clone https://github.com/binary-husky/chatgpt_academic.git
@@ -144,67 +148,70 @@ docker build -t gpt-academic .
144
  # 运行
145
  docker run --rm -it --net=host gpt-academic
146
 
147
- # 测试实验性功能
148
- ## 测试自我代码解读
149
- 点击 "[实验] 请解析并解构此项目本身"
150
- ## 测试实验功能模板函数(要求gpt回答历史上的今天发生了什么),您可以根据此函数为模板,实现更复杂的功能
151
- 点击 "[实验] 实验功能函数模板"
152
- ##(请注意在docker中运行时,需要额外注意程序的文件访问权限问题)
153
- ## 测试C++项目头文件分析
154
- input区域 输入 ./crazy_functions/test_project/cpp/libJPG , 然后点击 "[实验] 解析整个C++项目(input输入项目根路径)"
155
  ## 测试给Latex项目写摘要
156
- input区域 输入 ./crazy_functions/test_project/latex/attention , 然后点击 "[实验] tex论文写摘要(input输入项目根路径)"
157
  ## 测试Python项目分析
158
- input区域 输入 ./crazy_functions/test_project/python/dqn , 然后点击 "[实验] 解析整个py项目(input输入项目根路径)"
 
 
 
 
 
159
 
 
 
 
 
 
 
 
 
 
160
  ```
161
 
162
- ## 其他部署方式
163
 
164
- - 远程云服务器部署
165
- 请访问[部署wiki-2](https://github.com/binary-husky/chatgpt_academic/wiki/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%9C%E7%A8%8B%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
 
167
- - 使用WSL2(Windows Subsystem for Linux 子系统)
168
- 请访问[部署wiki-1](https://github.com/binary-husky/chatgpt_academic/wiki/%E4%BD%BF%E7%94%A8WSL2%EF%BC%88Windows-Subsystem-for-Linux-%E5%AD%90%E7%B3%BB%E7%BB%9F%EF%BC%89%E9%83%A8%E7%BD%B2)
169
 
170
  ## 自定义新的便捷按钮(学术快捷键自定义)
171
  任意文本编辑器打开`core_functional.py`,添加条目如下,然后重启程序即可。(如果按钮已经添加成功并可见,那么前缀、后缀都支持热修改,无需重启程序即可生效。)
172
  例如
173
  ```
174
  "超级英译中": {
175
-
176
  # 前缀,会被加在你的输入之前。例如,用来描述你的要求,例如翻译、解释代码、润色等等
177
  "Prefix": "请翻译把下面一段内容成中文,然后用一个markdown表格逐一解释文中出现的专有名词:\n\n",
178
 
179
  # 后缀,会被加在你的输入之后。例如,配合前缀可以把你的输入内容用引号圈起来。
180
  "Suffix": "",
181
-
182
  },
183
  ```
184
  <div align="center">
185
  <img src="https://user-images.githubusercontent.com/96192199/226899272-477c2134-ed71-4326-810c-29891fe4a508.png" width="500" >
186
  </div>
187
 
 
188
 
189
- 如果你发明了更好用的快捷键,欢迎发issue或者pull requests!
190
-
191
- ## 配置代理
192
- ### 方法一:常规方法
193
- 在```config.py```中修改端口与代理软件对应
194
 
195
- <div align="center">
196
- <img src="https://user-images.githubusercontent.com/96192199/226571294-37a47cd9-4d40-4c16-97a2-d360845406f7.png" width="500" >
197
- <img src="https://user-images.githubusercontent.com/96192199/226838985-e5c95956-69c2-4c23-a4dd-cd7944eeb451.png" width="500" >
198
- </div>
199
-
200
- 配置完成后,你可以用以下命令测试代理是否工作,如果一切正常,下面的代码将输出你的代理服务器所在地:
201
- ```
202
- python check_proxy.py
203
- ```
204
- ### 方法二:纯新手教程
205
- [纯新手教程](https://github.com/binary-husky/chatgpt_academic/wiki/%E4%BB%A3%E7%90%86%E8%BD%AF%E4%BB%B6%E9%97%AE%E9%A2%98%E7%9A%84%E6%96%B0%E6%89%8B%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95%EF%BC%88%E6%96%B9%E6%B3%95%E5%8F%AA%E9%80%82%E7%94%A8%E4%BA%8E%E6%96%B0%E6%89%8B%EF%BC%89)
206
-
207
- ## 功能测试
208
 
209
  ### 图片显示:
210
 
@@ -258,8 +265,9 @@ python check_proxy.py
258
  </div>
259
 
260
  ## Todo 与 版本规划:
261
-
262
- - version 3.0 (Todo): 优化对chatglm和其他小型llm的支持
 
263
  - version 2.6: 重构了插件结构,提高了交互性,加入更多插件
264
  - version 2.5: 自更新,解决总结大工程源代码时文本过长、token溢出的问题
265
  - version 2.4: (1)新增PDF全文翻译功能; (2)新增输入区切换位置的功能; (3)新增垂直布局选项; (4)多线程函数插件优化。
@@ -271,14 +279,12 @@ python check_proxy.py
271
 
272
  ## 参考与学习
273
 
274
-
275
  ```
276
  代码中参考了很多其他优秀项目中的设计,主要包括:
277
 
278
- # 借鉴项目1:借鉴了ChuanhuChatGPT中读取OpenAI json的方法、记录历史问询记录的方法以及gradio queue的使用技巧
279
  https://github.com/GaiZhenbiao/ChuanhuChatGPT
280
 
281
- # 借鉴项目2:
282
  https://github.com/THUDM/ChatGLM-6B
283
-
284
  ```
 
23
  一键代码解释 | 可以正确显示代码、解释代码
24
  [自定义快捷键](https://www.bilibili.com/video/BV14s4y1E7jN) | 支持自定义快捷键
25
  [配置代理服务器](https://www.bilibili.com/video/BV1rc411W7Dr) | 支持配置代理服务器
26
+ 模块化设计 | 支持自定义高阶的函数插件与[函数插件],插件支持[热更新](https://github.com/binary-husky/chatgpt_academic/wiki/%E5%87%BD%E6%95%B0%E6%8F%92%E4%BB%B6%E6%8C%87%E5%8D%97)
27
  [自我程序剖析](https://www.bilibili.com/video/BV1cj411A7VW) | [函数插件] [一键读懂](https://github.com/binary-husky/chatgpt_academic/wiki/chatgpt-academic%E9%A1%B9%E7%9B%AE%E8%87%AA%E8%AF%91%E8%A7%A3%E6%8A%A5%E5%91%8A)本项目的源代码
28
  [程序剖析](https://www.bilibili.com/video/BV1cj411A7VW) | [函数插件] 一键可以剖析其他Python/C/C++/Java/Lua/...项目树
29
  读论文 | [函数插件] 一键解读latex论文全文并生成摘要
 
78
  v3.1的[huggingface测试版](https://huggingface.co/spaces/qingxu98/academic-chatgpt-beta)(huggingface版不支持chatglm)
79
 
80
 
81
+ ---
82
 
83
+ ## 安装-方法1:直接运行 (Windows, Linux or MacOS)
84
 
85
+ 1. 下载项目
86
  ```sh
87
  git clone https://github.com/binary-husky/chatgpt_academic.git
88
  cd chatgpt_academic
89
  ```
90
 
91
+ 2. 配置API_KEY和代理设置
92
 
93
  在`config.py`中,配置 海外Proxy 和 OpenAI API KEY,说明如下
94
  ```
 
99
  (P.S. 程序运行时会优先检查是否存在名为`config_private.py`的私密配置文件,并用其中的配置覆盖`config.py`的同名配置。因此,如果您能理解我们的配置读取逻辑,我们强烈建议您在`config.py`旁边创建一个名为`config_private.py`的新配置文件,并把`config.py`中的配置转移(复制)到`config_private.py`中。`config_private.py`不受git管控,可以让您的隐私信息更加安全。)
100
 
101
 
102
+ 3. 安装依赖
103
  ```sh
104
  # (选择一)推荐
105
  python -m pip install -r requirements.txt
 
113
  # python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
114
  ```
115
 
116
+ 如果需要支持清华ChatGLM,需要额外安装更多依赖(不熟悉python者、电脑配置不佳者,建议不要尝试):
117
+ ```sh
118
+ python -m pip install -r request_llm/requirements_chatglm.txt
119
+ ```
120
+
121
+ 4. 运行
122
  ```sh
123
  python main.py
124
  ```
125
 
126
+ 5. 测试函数插件
127
  ```
 
 
 
 
128
  - 测试Python项目分析
129
+ input区域 输入 `./crazy_functions/test_project/python/dqn` , 然后点击 "解析整个Python项目"
130
  - 测试自我代码解读
131
+ 点击 "[多线程Demo] 解析此项目本身(源码自译解)"
132
  - 测试实验功能模板函数(要求gpt回答历史上的今天发生了什么),您可以根据此函数为模板,实现更复杂的功能
133
+ 点击 "[函数插件模板Demo] 历史上的今天"
134
+ - 函数插件区下拉菜单中有更多功能可供选择
135
  ```
136
 
137
+ ## 安装-方法2:使用docker (Linux)
138
 
139
+ 1. 仅ChatGPT(推荐大多数人选择)
140
  ``` sh
141
  # 下载项目
142
  git clone https://github.com/binary-husky/chatgpt_academic.git
 
148
  # 运行
149
  docker run --rm -it --net=host gpt-academic
150
 
151
+ # 测试函数插件
152
+ ## 测试函数插件模板函数(要求gpt回答历史上的今天发��了什么),您可以根据此函数为模板,实现更复杂的功能
153
+ 点击 "[函数插件模板Demo] 历史上的今天"
 
 
 
 
 
154
  ## 测试给Latex项目写摘要
155
+ input区域 输入 ./crazy_functions/test_project/latex/attention , 然后点击 "读Tex论文写摘要"
156
  ## 测试Python项目分析
157
+ input区域 输入 ./crazy_functions/test_project/python/dqn , 然后点击 "解析整个Python项目"
158
+
159
+ 函数插件区下拉菜单中有更多功能可供选择
160
+ ```
161
+
162
+ 2. ChatGPT+ChatGLM(需要对docker非常熟悉 + 电脑配置足够强)
163
 
164
+ ``` sh
165
+ # 修改dockerfile
166
+ cd docs && nano Dockerfile+ChatGLM
167
+ # How to build | 如何构建 (Dockerfile+ChatGLM在docs路径下,请先cd docs)
168
+ docker build -t gpt-academic --network=host -f Dockerfile+ChatGLM .
169
+ # How to run | 如何运行 (1) 直接运行:
170
+ docker run --rm -it --net=host --gpus=all gpt-academic
171
+ # How to run | 如何运行 (2) 我想运行之前进容器做一些调整:
172
+ docker run --rm -it --net=host --gpus=all gpt-academic bash
173
  ```
174
 
 
175
 
176
+ ## 安装-方法3:其他部署方式
177
+
178
+ 1. 远程云服务器部署
179
+ 请访问[部署wiki-1](https://github.com/binary-husky/chatgpt_academic/wiki/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%9C%E7%A8%8B%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97)
180
+
181
+ 2. 使用WSL2(Windows Subsystem for Linux 子系统)
182
+ 请访问[部署wiki-2](https://github.com/binary-husky/chatgpt_academic/wiki/%E4%BD%BF%E7%94%A8WSL2%EF%BC%88Windows-Subsystem-for-Linux-%E5%AD%90%E7%B3%BB%E7%BB%9F%EF%BC%89%E9%83%A8%E7%BD%B2)
183
+
184
+
185
+ ## 安装-代理配置
186
+ ### 方法一:常规方法
187
+ [配置代理](https://github.com/binary-husky/chatgpt_academic/issues/1)
188
+
189
+ ### 方法二:纯新手教程
190
+ [纯新手教程](https://github.com/binary-husky/chatgpt_academic/wiki/%E4%BB%A3%E7%90%86%E8%BD%AF%E4%BB%B6%E9%97%AE%E9%A2%98%E7%9A%84%E6%96%B0%E6%89%8B%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95%EF%BC%88%E6%96%B9%E6%B3%95%E5%8F%AA%E9%80%82%E7%94%A8%E4%BA%8E%E6%96%B0%E6%89%8B%EF%BC%89)
191
+
192
 
193
+ ---
 
194
 
195
  ## 自定义新的便捷按钮(学术快捷键自定义)
196
  任意文本编辑器打开`core_functional.py`,添加条目如下,然后重启程序即可。(如果按钮已经添加成功并可见,那么前缀、后缀都支持热修改,无需重启程序即可生效。)
197
  例如
198
  ```
199
  "超级英译中": {
 
200
  # 前缀,会被加在你的输入之前。例如,用来描述你的要求,例如翻译、解释代码、润色等等
201
  "Prefix": "请翻译把下面一段内容成中文,然后用一个markdown表格逐一解释文中出现的专有名词:\n\n",
202
 
203
  # 后缀,会被加在你的输入之后。例如,配合前缀可以把你的输入内容用引号圈起来。
204
  "Suffix": "",
 
205
  },
206
  ```
207
  <div align="center">
208
  <img src="https://user-images.githubusercontent.com/96192199/226899272-477c2134-ed71-4326-810c-29891fe4a508.png" width="500" >
209
  </div>
210
 
211
+ ---
212
 
 
 
 
 
 
213
 
214
+ ## 部分功能展示
 
 
 
 
 
 
 
 
 
 
 
 
215
 
216
  ### 图片显示:
217
 
 
265
  </div>
266
 
267
  ## Todo 与 版本规划:
268
+ - version 3.2+ (todo): 函数插件支持更多参数接口
269
+ - version 3.1: 支持同时问询多个gpt模型!支持api2d,支持多个apikey负载均衡
270
+ - version 3.0: 对chatglm和其他小型llm的支持
271
  - version 2.6: 重构了插件结构,提高了交互性,加入更多插件
272
  - version 2.5: 自更新,解决总结大工程源代码时文本过长、token溢出的问题
273
  - version 2.4: (1)新增PDF全文翻译功能; (2)新增输入区切换位置的功能; (3)新增垂直布局选项; (4)多线程函数插件优化。
 
279
 
280
  ## 参考与学习
281
 
 
282
  ```
283
  代码中参考了很多其他优秀项目中的设计,主要包括:
284
 
285
+ # 借鉴项目1:借鉴了ChuanhuChatGPT中诸多技巧
286
  https://github.com/GaiZhenbiao/ChuanhuChatGPT
287
 
288
+ # 借鉴项目2:清华ChatGLM-6B
289
  https://github.com/THUDM/ChatGLM-6B
 
290
  ```
docs/Dockerfile+ChatGLM CHANGED
@@ -11,11 +11,11 @@ RUN apt-get install -y git python python3 python-dev python3-dev --fix-missing
11
 
12
  # 配置代理网络(构建Docker镜像时使用)
13
  # # comment out below if you do not need proxy network | 如果不需要翻墙 - 从此行向下删除
14
- RUN $useProxyNetwork curl cip.cc
15
- RUN sed -i '$ d' /etc/proxychains.conf
16
- RUN sed -i '$ d' /etc/proxychains.conf
17
- RUN echo "socks5 127.0.0.1 10880" >> /etc/proxychains.conf
18
- ARG useProxyNetwork=proxychains
19
  # # comment out above if you do not need proxy network | 如果不需要翻墙 - 从此行向上删除
20
 
21
 
@@ -42,11 +42,14 @@ ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache
42
  RUN $useProxyNetwork git pull
43
 
44
  # 为chatgpt-academic配置代理和API-KEY (非必要 可选步骤)
 
 
 
45
  RUN echo ' \n\
46
  API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \n\
47
  USE_PROXY = True \n\
48
  LLM_MODEL = "chatglm" \n\
49
- LOCAL_MODEL_DEVICE = "cuda" \n\
50
  proxies = { "http": "socks5h://localhost:10880", "https": "socks5h://localhost:10880", } ' >> config_private.py
51
 
52
  # 启动
 
11
 
12
  # 配置代理网络(构建Docker镜像时使用)
13
  # # comment out below if you do not need proxy network | 如果不需要翻墙 - 从此行向下删除
14
+ # RUN $useProxyNetwork curl cip.cc
15
+ # RUN sed -i '$ d' /etc/proxychains.conf
16
+ # RUN sed -i '$ d' /etc/proxychains.conf
17
+ # RUN echo "socks5 127.0.0.1 10880" >> /etc/proxychains.conf
18
+ # ARG useProxyNetwork=proxychains
19
  # # comment out above if you do not need proxy network | 如果不需要翻墙 - 从此行向上删除
20
 
21
 
 
42
  RUN $useProxyNetwork git pull
43
 
44
  # 为chatgpt-academic配置代理和API-KEY (非必要 可选步骤)
45
+ # 可同时填写多个API-KEY,支持openai的key和api2d的key共存,用英文逗号分割,例如API_KEY = "sk-openaikey1,sk-openaikey2,fkxxxx-api2dkey1,fkxxxx-api2dkey2"
46
+ # LLM_MODEL 是选择初始的模型
47
+ # LOCAL_MODEL_DEVICE 是选择chatglm等本地模型运行的设备,可选 cpu 和 cuda
48
  RUN echo ' \n\
49
  API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \n\
50
  USE_PROXY = True \n\
51
  LLM_MODEL = "chatglm" \n\
52
+ LOCAL_MODEL_DEVICE = "cpu" \n\
53
  proxies = { "http": "socks5h://localhost:10880", "https": "socks5h://localhost:10880", } ' >> config_private.py
54
 
55
  # 启动