Spaces:
Running
Running
修改说明
Browse files- README.md +62 -56
- 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 |
-
模块化设计 |
|
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 |
-
##
|
83 |
|
84 |
-
|
85 |
```sh
|
86 |
git clone https://github.com/binary-husky/chatgpt_academic.git
|
87 |
cd chatgpt_academic
|
88 |
```
|
89 |
|
90 |
-
|
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 |
-
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
116 |
```sh
|
117 |
python main.py
|
118 |
```
|
119 |
|
120 |
-
|
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` , 然后点击 "
|
128 |
- 测试自我代码解读
|
129 |
-
点击 "[
|
130 |
- 测试实验功能模板函数(要求gpt回答历史上的今天发生了什么),您可以根据此函数为模板,实现更复杂的功能
|
131 |
-
点击 "[
|
|
|
132 |
```
|
133 |
|
134 |
-
##
|
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 , 然后点击 "
|
157 |
## 测试Python项目分析
|
158 |
-
input区域 输入 ./crazy_functions/test_project/python/dqn , 然后点击 "
|
|
|
|
|
|
|
|
|
|
|
159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
```
|
161 |
|
162 |
-
## 其他部署方式
|
163 |
|
164 |
-
|
165 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
|
167 |
-
|
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 |
-
|
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.
|
|
|
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
|
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 = "
|
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 |
# 启动
|