Spaces:
Sleeping
Sleeping
注释
Browse files- config.py +5 -4
- docs/self_analysis.md +170 -176
config.py
CHANGED
@@ -19,13 +19,14 @@ if USE_PROXY:
|
|
19 |
else:
|
20 |
proxies = None
|
21 |
|
22 |
-
# 多线程函数插件中,默认允许多少路线程同时访问OpenAI。
|
23 |
# Free trial users的限制是每分钟3次,Pay-as-you-go users的限制是每分钟3500次。提高限制请查询:
|
24 |
# https://platform.openai.com/docs/guides/rate-limits/overview
|
|
|
25 |
DEFAULT_WORKER_NUM = 3
|
26 |
|
27 |
|
28 |
-
# [step
|
29 |
# 对话窗的高度
|
30 |
CHATBOT_HEIGHT = 1115
|
31 |
|
@@ -53,9 +54,9 @@ LOCAL_MODEL_DEVICE = "cpu" # 可选 "cuda"
|
|
53 |
# OpenAI的API_URL
|
54 |
API_URL = "https://api.openai.com/v1/chat/completions"
|
55 |
|
56 |
-
#
|
57 |
CONCURRENT_COUNT = 100
|
58 |
|
59 |
-
#
|
60 |
# [("username", "password"), ("username2", "password2"), ...]
|
61 |
AUTHENTICATION = []
|
|
|
19 |
else:
|
20 |
proxies = None
|
21 |
|
22 |
+
# [step 3]>> 多线程函数插件中,默认允许多少路线程同时访问OpenAI。
|
23 |
# Free trial users的限制是每分钟3次,Pay-as-you-go users的限制是每分钟3500次。提高限制请查询:
|
24 |
# https://platform.openai.com/docs/guides/rate-limits/overview
|
25 |
+
# 一言以蔽之:免费用户填3,OpenAI绑了信用卡的用户可以填 16 或者更高
|
26 |
DEFAULT_WORKER_NUM = 3
|
27 |
|
28 |
|
29 |
+
# [step 4]>> 以下配置可以优化体验,但大部分场合下并不需要修改
|
30 |
# 对话窗的高度
|
31 |
CHATBOT_HEIGHT = 1115
|
32 |
|
|
|
54 |
# OpenAI的API_URL
|
55 |
API_URL = "https://api.openai.com/v1/chat/completions"
|
56 |
|
57 |
+
# 设置gradio的并行线程数(不需要修改)
|
58 |
CONCURRENT_COUNT = 100
|
59 |
|
60 |
+
# 设置用户名和密码(不需要修改)(相关功能不稳定,与gradio版本和网络都相关,如果本地使用不建议加这个)
|
61 |
# [("username", "password"), ("username2", "password2"), ...]
|
62 |
AUTHENTICATION = []
|
docs/self_analysis.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
# chatgpt-academic项目自译解报告
|
2 |
(Author补充:以下分析均由本项目调用ChatGPT一键生成,如果有不准确的地方,全怪GPT😄)
|
3 |
|
4 |
-
## 对程序的整体功能和构架做出概括。然后用一张markdown
|
5 |
|
6 |
整体概括:
|
7 |
|
@@ -9,254 +9,248 @@
|
|
9 |
|
10 |
文件功能表格:
|
11 |
|
12 |
-
|
|
13 |
-
|
|
14 |
-
|
|
15 |
-
|
|
16 |
-
|
|
17 |
-
|
|
18 |
-
|
|
19 |
-
|
|
20 |
-
|
|
21 |
-
|
|
22 |
-
|
|
23 |
-
|
|
24 |
-
|
|
25 |
-
|
|
26 |
-
|
|
27 |
-
|
|
28 |
-
|
|
29 |
-
|
|
30 |
-
|
|
31 |
-
|
|
32 |
-
|
|
33 |
-
|
|
34 |
-
|
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
|
37 |
|
38 |
|
39 |
-
## [0/
|
40 |
|
41 |
-
|
42 |
|
43 |
-
|
44 |
|
45 |
-
|
46 |
|
47 |
-
|
48 |
|
49 |
-
|
50 |
|
51 |
-
|
52 |
|
53 |
-
|
54 |
-
- USE_PROXY: 是否使用代理。如果需要使用代理,需要将其改为True。
|
55 |
-
- proxies: 代理的协议、地址和端口。
|
56 |
-
- CHATBOT_HEIGHT: 聊天机器人对话框的高度。
|
57 |
-
- LAYOUT: 聊天机器人对话框的布局,默认为左右布局。
|
58 |
-
- TIMEOUT_SECONDS: 发送请求到OpenAI后,等待多久判定为超时。
|
59 |
-
- WEB_PORT: 网页的端口,-1代表随机端口。
|
60 |
-
- MAX_RETRY: 如果OpenAI不响应(网络卡顿、代理失败、KEY失效),重试的次数限制。
|
61 |
-
- LLM_MODEL: OpenAI模型选择,目前只对某些用户开放的gpt4。
|
62 |
-
- API_URL: OpenAI的API地址。
|
63 |
-
- CONCURRENT_COUNT: 使用的线程数。
|
64 |
-
- AUTHENTICATION: 用户名和密码,如果需要。
|
65 |
|
66 |
-
## [
|
67 |
|
68 |
-
|
69 |
|
70 |
-
## [
|
71 |
|
72 |
-
|
73 |
|
74 |
-
## [
|
75 |
|
76 |
-
|
77 |
|
78 |
-
|
79 |
-
2. 读取配置文件中的代理proxies
|
80 |
-
3. 使用requests模块请求远程版本信息(url为https://raw.githubusercontent.com/binary-husky/chatgpt_academic/master/version)并加载为json格式
|
81 |
-
4. 获取远程版本号、是否显示新功能信息、新功能内容
|
82 |
-
5. 读取本地版本文件version并加载为json格式
|
83 |
-
6. 获取当前版本号
|
84 |
-
7. 比较当前版本与远程版本,如果远程版本号比当前版本号高0.05以上,则输出新版本信息并提示更新
|
85 |
-
8. 如果不需要更新,则直接返回
|
86 |
|
87 |
-
|
88 |
|
89 |
-
|
90 |
|
91 |
-
|
92 |
|
93 |
-
|
94 |
|
95 |
-
|
96 |
|
97 |
-
-
|
|
|
98 |
|
99 |
-
|
100 |
|
101 |
-
|
102 |
|
103 |
-
|
104 |
|
105 |
-
|
106 |
|
107 |
-
|
108 |
|
109 |
-
|
110 |
-
2. 通过 bridge_chatgpt 模块,利用 GPT-3 模型实现聊天机器人的逻辑;
|
111 |
-
3. 提供一些基础功能和高级函数插件,用户可以通过按钮选择使用;
|
112 |
-
4. 提供文档格式转变、外观调整以及代理和自动更新等功能。
|
113 |
|
114 |
-
|
|
|
|
|
|
|
|
|
115 |
|
116 |
-
|
117 |
-
2. 设置 Gradio 界面的各个组件,包括聊天窗口、输入区、功能区、函数插件区等;
|
118 |
-
3. 注册各个组件的回调函数,包括用户输入、信号按钮等,实现机器人逻辑的交互;
|
119 |
-
4. 通过 Gradio 的 queue 函数和 launch 函数启动 Web 服务,并提供聊天机器人的功能。
|
120 |
|
121 |
-
|
122 |
|
123 |
-
|
124 |
|
125 |
-
|
126 |
|
127 |
-
|
128 |
|
129 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
|
131 |
-
## [
|
132 |
|
133 |
-
|
134 |
|
135 |
-
|
136 |
|
137 |
-
|
138 |
|
139 |
-
|
140 |
|
141 |
-
|
142 |
|
143 |
-
|
144 |
|
145 |
-
|
146 |
|
147 |
-
|
148 |
|
149 |
-
|
150 |
|
151 |
-
|
152 |
|
153 |
-
|
154 |
|
155 |
-
|
156 |
|
157 |
-
|
158 |
|
159 |
-
|
160 |
|
161 |
-
|
162 |
|
163 |
-
|
164 |
|
165 |
-
|
166 |
|
167 |
-
## [
|
168 |
|
169 |
-
|
170 |
-
1. `breakdown_txt_to_satisfy_token_limit()`:接受文本字符串、计算文本单词数量的函数和单词数量限制作为输入参数,将长文本拆分成合适的长度,以满足单词数量限制。这个函数使用一个递归方法去拆分长文本。
|
171 |
-
2. `breakdown_txt_to_satisfy_token_limit_for_pdf()`:类似于`breakdown_txt_to_satisfy_token_limit()`,但是它使用一个不同的递归方法来拆分长文本,以满足PDF文档中的需求。当出现无法继续拆分的情况时,该函数将使用一个中文句号标记插入文本来截断长文本。如果还是无法拆分,则会引发运行时异常。
|
172 |
|
173 |
-
## [
|
174 |
|
175 |
-
|
176 |
|
177 |
-
## [
|
178 |
|
179 |
-
|
180 |
|
181 |
-
## [
|
182 |
|
183 |
-
|
184 |
|
185 |
-
|
186 |
|
187 |
-
|
188 |
|
189 |
-
## [
|
190 |
|
191 |
-
|
192 |
|
193 |
-
## [
|
194 |
|
195 |
-
|
196 |
|
197 |
-
|
198 |
-
2. `normalize_text(text)`:通过将文本特殊符号转换为其基本形式来对文本进行归一化处理。
|
199 |
-
3. `clean_text(raw_text)`:对从 PDF 提取出的原始文本进行清洗和格式化处理。
|
200 |
-
4. `解析PDF(file_manifest, project_folder, top_p, temperature, chatbot, history, systemPromptTxt)`:对给定的PDF文件进行分析并生成相应的概述。
|
201 |
-
5. `批量总结PDF文档(txt, top_p, temperature, chatbot, history, systemPromptTxt, WEB_PORT)`:批量处理PDF文件,对其进行摘要生成。
|
202 |
|
203 |
-
|
204 |
|
205 |
-
|
206 |
|
207 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
|
209 |
-
##
|
210 |
|
211 |
-
|
212 |
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
该程序文件为一个高级功能函数模板,文件名为"./crazy_functions\高级功能函数模板.py"。
|
248 |
-
|
249 |
-
该文件导入了两个模块,分别是"request_llm.bridge_chatgpt"和"toolbox"。其中"request_llm.bridge_chatgpt"模块包含了一个函数"predict_no_ui_long_connection",该函数用于请求GPT模型进行对话生成。"toolbox"模块包含了三个函数,分别是"catchException"、"report_exception"和"write_results_to_file"函数,这三个函数主要用于异常处理和日志记录等。
|
250 |
-
|
251 |
-
该文件定义了一个名为"高阶功能模板函数"的函数,并通过"decorator"装饰器将该函数装饰为一个异常处理函数,可以处理函数执行过程中出现的错误。该函数的作用是生成历史事件查询的问题,并向用户询问历史中哪些事件发生在指定日期,并索要相关图片。在查询完所有日期后,该函数返回所有历史事件及其相关图片的列表。其中,该函数的输入参数包括:
|
252 |
-
|
253 |
-
1. txt: 一个字符串,表示当前消息的文本内容。
|
254 |
-
2. top_p: 一个浮点数,表示GPT模型生成文本时的"top_p"参数。
|
255 |
-
3. temperature: 一个浮点数,表示GPT模型生成文本时的"temperature"参数。
|
256 |
-
4. chatbot: 一个列表,表示当前对话的记录列表。
|
257 |
-
5. history: 一个列表,表示当前对话的历史记录列表。
|
258 |
-
6. systemPromptTxt: 一个字符串,表示当前对话的系统提示信息。
|
259 |
-
7. WEB_PORT: 一个整数,表示当前应用程序的WEB端口号。
|
260 |
-
|
261 |
-
该函数在执行过程中,会先清空历史记录,以免输入溢出。然后,它会循环5次,生成5个历史事件查询的问题,并向用户请求输入相关信息。每次询问不携带之前的询问历史。在生成每个问题时,该函数会向"chatbot"列表中添加一条消息记录,并设置该记录的初始状态为"[Local Message] waiting gpt response."。然后,该函数会调用"predict_no_ui_long_connection"函数向GPT模型请求生成一段文本,并将生成的文本作为回答。如果请求过程中出现异常,该函数会忽略异常。最后,该函数将问题和回答添加到"chatbot"列表和"history"列表中,并将"chatbot"和"history"列表作为函数的返回值返回。
|
262 |
|
|
|
1 |
# chatgpt-academic项目自译解报告
|
2 |
(Author补充:以下分析均由本项目调用ChatGPT一键生成,如果有不准确的地方,全怪GPT😄)
|
3 |
|
4 |
+
## 对程序的整体功能和构架做出概括。然后用一张markdown表格整理每个文件的功能。
|
5 |
|
6 |
整体概括:
|
7 |
|
|
|
9 |
|
10 |
文件功能表格:
|
11 |
|
12 |
+
| 文件名 | 文件功能 |
|
13 |
+
| --- | --- |
|
14 |
+
| check_proxy.py | 用于检查代理的正确性和可用性 |
|
15 |
+
| colorful.py | 包含不同预设置颜色的常量,并用于多种UI元素 |
|
16 |
+
| config.py | 用于全局配置的类 |
|
17 |
+
| config_private.py | 与config.py文件一起使用的另一个配置文件,用于更改私密信息 |
|
18 |
+
| core_functional.py | 包含一些TextFunctional类和基础功能函数 |
|
19 |
+
| crazy_functional.py | 包含大量高级功能函数和实验性的功能函数 |
|
20 |
+
| main.py | 程序的主入口,包含GUI主窗口和主要的UI管理功能 |
|
21 |
+
| theme.py | 包含一些预设置主题的颜色 |
|
22 |
+
| toolbox.py | 提供了一些有用的工具函数 |
|
23 |
+
| crazy_functions\crazy_utils.py | 包含一些用于实现高级功能的辅助函数 |
|
24 |
+
| crazy_functions\Latex全文润色.py | 实现了对LaTeX文件中全文的润色和格式化功能 |
|
25 |
+
| crazy_functions\Latex全文翻译.py | 实现了对LaTeX文件中的内容进行翻译的功能 |
|
26 |
+
| crazy_functions\_\_init\_\_.py | 用于导入crazy_functional.py中的功能函数 |
|
27 |
+
| crazy_functions\下载arxiv论文翻译摘要.py | 从Arxiv上下载论文并提取重要信息 |
|
28 |
+
| crazy_functions\代码重写为全英文_多线程.py | 针对中文Python文件,将其翻译为全英文 |
|
29 |
+
| crazy_functions\总结word文档.py | 提取Word文件的重要内容来生成摘要 |
|
30 |
+
| crazy_functions\批量Markdown翻译.py | 批量翻译Markdown文件 |
|
31 |
+
| crazy_functions\批量总结PDF文档.py | 批量从PDF文件中提取摘要 |
|
32 |
+
| crazy_functions\批量总结PDF文档pdfminer.py | 批量从PDF文件中提取摘要 |
|
33 |
+
| crazy_functions\批量翻译PDF文档_多线程.py | 批量翻译PDF文件 |
|
34 |
+
| crazy_functions\理解PDF文档内容.py | 批量分析PDF文件并提取摘要 |
|
35 |
+
| crazy_functions\生成函数注释.py | 自动生成Python文件中函数的注释 |
|
36 |
+
| crazy_functions\解析项目源代码.py | 解析并分析给定项目的源代码 |
|
37 |
+
| crazy_functions\询问多个大语言模型.py | 向多个大语言模型询问输入文本并进行处理 |
|
38 |
+
| crazy_functions\读文献写摘要.py | 根据用户输入读取文献内容并生成摘要 |
|
39 |
+
| crazy_functions\谷歌检索小助手.py | 利用谷歌学术检索用户提供的论文信息并提取相关信息 |
|
40 |
+
| crazy_functions\高级功能函数模板.py | 实现高级功能的模板函数 |
|
41 |
+
| request_llm\bridge_all.py | 处理与LLM的交互 |
|
42 |
+
| request_llm\bridge_chatglm.py | 使用ChatGLM模型进行聊天 |
|
43 |
+
| request_llm\bridge_chatgpt.py | 实现对话生成的各项功能 |
|
44 |
+
| request_llm\bridge_tgui.py | 在Websockets中与用户进行交互并生成文本输出 |
|
45 |
|
46 |
|
47 |
|
48 |
+
## [0/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\check_proxy.py
|
49 |
|
50 |
+
该文件主要包括四个函数:check_proxy、backup_and_download、patch_and_restart 和 auto_update。其中,check_proxy 函数用于检查代理是否可用;backup_and_download 用于进行一键更新备份和下载;patch_and_restart 是一键更新协议的重要函数,用于覆盖和重启;auto_update 函数用于查询版本和用户意见,并自动进行一键更新。该文件主要使用了 requests、json、shutil、zipfile、distutils、subprocess 等 Python 标准库和 toolbox 和 colorful 两个第三方库。
|
51 |
|
52 |
+
## [1/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\colorful.py
|
53 |
|
54 |
+
该程序文件实现了一些打印文本的函数,使其具有不同的颜色输出。当系统为Linux时直接跳过,否则使用colorama库来实现颜色输出。程序提供了深色和亮色两种颜色输出方式,同时也提供了对打印函数的别名。对于不是终端输出的情况,对所有的打印函数进行重复定义,以便在重定向时能够避免打印错误日志。
|
55 |
|
56 |
+
## [2/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\config.py
|
57 |
|
58 |
+
该程序文件是一个配置文件,其主要功能是提供使用API密钥等信息,以及对程序的体验进行优化,例如定义对话框高度、布局等。还包含一些其他的设置,例如设置并行使用的线程数、重试次数限制等等。
|
59 |
|
60 |
+
## [3/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\config_private.py
|
61 |
|
62 |
+
这是一个名为config_private.py的Python文件,它用于配置API_KEY和代理信息。API_KEY是一个私密密钥,用于访问某些受保护的API。USE_PROXY变量设置为True以应用代理,proxies变量配置了代理网络的地址和协议。在使用该文件时,需要填写正确的API_KEY和代理信息。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
|
64 |
+
## [4/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\core_functional.py
|
65 |
|
66 |
+
该文件是一个Python模块,名为"core_functional.py"。模块中定义了一个字典,包含了各种核心功能的配置信息,如英语学术润色、中文学术润色、查找语法错误等。每个功能都包含一些前言和后语,在前言中描述了该功能的任务和要求,在后语中提供一些附加信息。此外,有些功能还定义了一些特定的处理函数和按钮颜色。
|
67 |
|
68 |
+
## [5/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functional.py
|
69 |
|
70 |
+
这是一个Python程序文件,文件名是crazy_functional.py。它导入了一个名为HotReload的工具箱,并定义了一个名为get_crazy_functions()的函数。这个函数包括三个部分的插件组,分别是已经编写完成的第一组插件、已经测试但距离完美状态还差一点点的第二组插件和尚未充分测试的第三组插件。每个插件都有一个名称、一个按钮颜色、一个函数和一个是否加入下拉菜单中的标志位。这些插件提供了多种功能,包括生成函数注释、解析项目源代码、批量翻译PDF文档、谷歌检索、PDF文档内容理解和Latex文档的全文润色、翻译等功能。其中第三组插件可能还存在一定的bug。
|
71 |
|
72 |
+
## [6/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\main.py
|
73 |
|
74 |
+
该Python脚本代码实现了一个用于交互式对话的Chatbot机器人。它使用了Gradio框架来构建一个Web界面,并在此基础之上嵌入了一个文本输入框和与Chatbot进行交互的其他控件,包括提交、重置、停止和清除按钮、选择框和滑块等。此外,它还包括了一些类和函数和一些用于编程分析的工具和方法。整个程序文件的结构清晰,注释丰富,并提供了很多技术细节,使得开发者可以很容易地在其基础上进行二次开发、修改、扩展和集成。
|
75 |
|
76 |
+
## [7/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\theme.py
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
|
78 |
+
该程序文件名为theme.py,主要功能为调节Gradio的全局样式。在该文件中,调节了Gradio的主题颜色、字体、阴影、边框、渐变等等样式。同时,该文件还添加了一些高级CSS样式,比如调整表格单元格的背景和边框,设定聊天气泡的圆角、最大宽度和阴影等等。如果CODE_HIGHLIGHT为True,则还进行了代码高亮显示。
|
79 |
|
80 |
+
## [8/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\toolbox.py
|
81 |
|
82 |
+
这是一个名为`toolbox.py`的源代码文件。该文件包含了一系列工具函数和装饰器,用于聊天Bot的开发和调试。其中有一些功能包括将输入参数进行重组、捕捉函数中的异常并记录到历史记录中、生成Markdown格式的聊天记录报告等。该文件中还包含了一些与转换Markdown文本相关的函数。
|
83 |
|
84 |
+
## [9/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\crazy_utils.py
|
85 |
|
86 |
+
这是一个Python程序文件 `crazy_utils.py`,它包含了两个函数:
|
87 |
|
88 |
+
- `input_clipping(inputs, history, max_token_limit)`:这个函数接收三个参数,inputs 是一个字符串,history 是一个列表,max_token_limit 是一个整数。它使用 `tiktoken` 、`numpy` 和 `toolbox` 模块,处理输入文本和历史记录,将其裁剪到指定的最大标记数,避免输入过长导致的性能问题。如果 inputs 长度不超过 max_token_limit 的一半,则只裁剪历史;否则,同时裁剪输入和历史。
|
89 |
+
- `request_gpt_model_in_new_thread_with_ui_alive(inputs, inputs_show_user, llm_kwargs, chatbot, history, sys_prompt, refresh_interval=0.2, handle_token_exceed=True, retry_times_at_unknown_error=2)`:这个函数接收八个参数,其中后三个是列表类型,其他为标量或句柄等。它提供对话窗口和刷新控制,执行 `predict_no_ui_long_connection` 方法,将输入数据发送至 GPT 模型并获取结果,如果子任务出错,返回相应的错误信息,否则返回结果。
|
90 |
|
91 |
+
## [10/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\Latex全文润色.py
|
92 |
|
93 |
+
这是一个名为"crazy_functions\Latex全文润色.py"的程序文件,其中包含了两个函数"Latex英文润色"和"Latex中文润色",以及其他辅助函数。这些函数能够对 Latex 项目进行润色处理,其中 "多文件润色" 函数是一个主要函数,它调用了其他辅助函数用于读取和处理 Latex 项目中的文件。函数使用了多线程和机器学习模型进行自然语言处理,对文件进行简化和排版来满足学术标准。注释已删除并可以在函数内部查找。
|
94 |
|
95 |
+
## [11/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\Latex全文翻译.py
|
96 |
|
97 |
+
这个程序文件包括一个用于对整个Latex项目进行翻译的函数 `Latex英译中` 和一个用于将中文翻译为英文的函数 `Latex中译英`。这两个函数都会尝试导入依赖库 tiktoken, 若无法导入则会提示用户安装。`Latex英译中` 函数会对 Latex 项目中的文件进行分离并去除注释,然后运行多线程翻译。`Latex中译英` 也做同样的事情,只不过是将中文翻译为英文。这个程序文件还包括其他一些帮助函数。
|
98 |
|
99 |
+
## [12/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\__init__.py
|
100 |
|
101 |
+
这是一个 Python 包,包名为 `crazy_functions`,在 `__init__.py` 文件中定义了一些函数,包含以下函数:
|
|
|
|
|
|
|
102 |
|
103 |
+
- `crazy_addition(a, b)`:对两个数进行加法运算,并将结果返回。
|
104 |
+
- `crazy_multiplication(a, b)`:对两个数进行乘法运算,并将结果返回。
|
105 |
+
- `crazy_subtraction(a, b)`:对两个数进行减法运算,并将结果返回。
|
106 |
+
- `crazy_division(a, b)`:对两个数进行除法运算,并将结果返回。
|
107 |
+
- `crazy_factorial(n)`:计算 `n` 的阶乘并返回结果。
|
108 |
|
109 |
+
这些函数可能会有一些奇怪或者不符合常规的实现方式(由函数名可以看出来),所以这个包的名称为 `crazy_functions`,可能是暗示这些函数会有一些“疯狂”的实现方式。
|
|
|
|
|
|
|
110 |
|
111 |
+
## [13/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\下载arxiv论文翻译摘要.py
|
112 |
|
113 |
+
该程序实现了一个名为“下载arxiv论文并翻译摘要”的函数插件,作者是“binary-husky”。该函数的功能是,在输入一篇arxiv论文的链接后,提取摘要、下载PDF文档、翻译摘要为中文,并将翻译结果保存到文件中。程序使用了一些Python库,如requests、pdfminer和beautifulsoup4等。程序入口是名为“下载arxiv论文并翻译摘要”的函数,其中使用了自定义的辅助函数download_arxiv_和get_name。程序中还使用了其他非函数的辅助函数和变量,如update_ui、CatchException、report_exception和get_conf等。
|
114 |
|
115 |
+
## [14/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\代码重写为全英文_多线程.py
|
116 |
|
117 |
+
该文件是一个多线程Python脚本,包含多个函数和利用第三方库进行的API请求。主要功能是将给定文件夹内的Python代码文件中所有中文转化为英文,然后输出转化后的英文代码。重要的功能和步骤包括:
|
118 |
|
119 |
+
1. 清空历史,以免输入溢出
|
120 |
+
2. 尝试导入依赖,如果缺少依赖,则给出安装建议
|
121 |
+
3. 集合文件
|
122 |
+
4. 显示随意内容以防卡顿的感觉
|
123 |
+
5. Token限制下的截断与处理
|
124 |
+
6. 多线程操作请求转换中文变为英文的代码
|
125 |
+
7. 所有线程同时开始执行任务函数
|
126 |
+
8. 循环轮询各个线程是否执行完毕
|
127 |
+
9. 把结果写入文件
|
128 |
+
10. 备份一个文件
|
129 |
|
130 |
+
## [15/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\总结word文档.py
|
131 |
|
132 |
+
这是一个名为"总结word文档.py"的程序文件,使用python编写。该文件导入了"toolbox"和"crazy_utils"模块,实现了解析docx格式和doc格式的文件的功能。该文件包含了一个名为"解析docx"的函数,通过对文件内容应用自然语言处理技术,生成文章片段的中英文概述。具体实现过程中,该函数使用了"docx"模块和"win32com.client"模块来实现对docx和doc格式文件的解析,同时使用了"request_gpt_model_in_new_thread_with_ui_alive"函数来向GPT模型发起请求。最后,该文件还实现了一个名为"总结word文档"的函数来批量总结Word文档。
|
133 |
|
134 |
+
## [16/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\批量Markdown翻译.py
|
135 |
|
136 |
+
这个程序文件实现了一个批量Markdown翻译功能,可以将一个源代码项目中的Markdown文本翻译成指定语言(目前支持中<-英和英<-中)。程序主要分为三个函数,`PaperFileGroup`类用于处理长文本的拆分,`多文件翻译`是主要函数调用了`request_gpt_model_multi_threads_with_very_awesome_ui_and_high_efficiency`函数进行多线程翻译并输出结果,`Markdown英译中`和`Markdown中译外`分别是英译中和中译英的入口函数,用于解析项目路径和调用翻译函数。程序依赖于tiktoken等库实现。
|
137 |
|
138 |
+
## [17/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\批量总结PDF文档.py
|
139 |
|
140 |
+
这是一个名为“批量总结PDF文档”的Python脚本,包含了多个函数。其中有一个函数名为“clean_text”,可以对PDF提取出��原始文本进行清洗和格式化处理,将连字转换为其基本形式,并根据heuristic规则判断换行符是否是段落分隔,并相应地进行替换。另一个函数名为“解析PDF”,可以接收一个PDF文件清单,并对清单中的每一个PDF进行解析,提取出文本并调用“clean_text”函数进行清洗和格式化处理,然后向用户发送一个包含文章简介信息的问题并等待用户回答。最后,该脚本也包含一个名为“批量总结PDF文档”的主函数,其中调用了“解析PDF”函数来完成对PDF文件的批量处理。
|
141 |
|
142 |
+
## [18/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\批量总结PDF文档pdfminer.py
|
143 |
|
144 |
+
这个文件是一个Python模块,文件名为pdfminer.py,它定义了一个函数批量总结PDF文档。该函数接受一些参数,然后尝试导入pdfminer和beautifulsoup4库。该函数将读取pdf文件或tex文件中的内容,对其进行分析,并使用GPT模型进行自然语言摘要。文件中还有一个辅助函数readPdf,用于读取pdf文件中的内容。
|
145 |
|
146 |
+
## [19/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\批量翻译PDF文档_多线程.py
|
147 |
|
148 |
+
这是一个Python脚本,文件名是crazy_functions\批量翻译PDF文档_多线程.py。该脚本提供了一个名为“批量翻译PDF文档”的函数,可以批量翻译PDF文件并生成报告文件。该函数使用了多个模块和函数(如toolbox、crazy_utils、update_ui等),使用了Python的异常处理和多线程功能,还使用了一些文本处理函数和第三方库(如fitz和tiktoken)。在函数执行过程中,它会进行一些参数检查、读取和清理PDF文本、递归地切割PDF文件、获取文章meta信息、多线程翻译、整理报告格式等操作,并更新UI界面和生成报告文件。
|
149 |
|
150 |
+
## [20/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\理解PDF文档内容.py
|
151 |
|
152 |
+
这是一个解析PDF文件内容的Python程序,程序文件名为"理解PDF文档内容.py",程序主要由5个步骤组成:第0步是切割PDF文件;第1步是从摘要中提取高价值信息,放到history中;第2步是迭代地历遍整个文章,提取精炼信息;第3步是整理history;第4步是设置一个token上限,防止回答时Token溢出。程序主要用到了Python中的各种模块和函数库,如:toolbox, tiktoken, pymupdf等。
|
153 |
|
154 |
+
## [21/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\生成函数注释.py
|
155 |
|
156 |
+
这是一个名为"生成函数注释"的函数,带有一个装饰器"@CatchException",可以捕获异常。该函数接受文件路径、参数和聊天机器人等参数,用于对多个Python或C++文件进行函数注释,使用了"toolbox"和"crazy_utils"模块中的函数。该函数会逐个读取指定文件中的内容,并使用聊天机器人进行交互,向用户请求注释信息,然后将生成的注释与原文件内容一起输出到一个markdown表格中。最后,该函数返回一个字符串,指示任务是否已完成。另外还包含一个名为"批量生成函数注释"的函数,它与"生成函数注释"函数一起用于批量处理多个文件。
|
157 |
|
158 |
+
## [22/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\解析项目源代码.py
|
159 |
|
160 |
+
这个程序文件实现了对一个源代码项目进行分析的功能。其中,函数`解析项目本身`、`解析一个Python项目`、`解析一个C项目的头文件`、`解析一个C项目`、`解析一个Java项目`和`解析一个Rect项目`分别用于解析不同类型的项目。函数`解析源代码新`实现了对每一个源代码文件的分析,并将分析结果汇总,同时还实现了分组和迭代处理,提高了效率。最后,函数`write_results_to_file`将���有分析结果写入文件。中间,还用到了`request_gpt_model_multi_threads_with_very_awesome_ui_and_high_efficiency`和`request_gpt_model_in_new_thread_with_ui_alive`来完成请求和响应,并用`update_ui`实时更新界面。
|
161 |
|
162 |
+
## [23/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\询问多个大语言模型.py
|
163 |
|
164 |
+
这是一个Python程序,文件名为"crazy_functions\询问多个大语言模型.py"。该程序实现了一个同时向多个大语言模型询问的功能,接收用户输入文本以及模型参数,向ChatGPT和ChatGLM模型发出请求,并将对话记录显示在聊天框中,同时刷新界面。
|
165 |
|
166 |
+
## [24/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\读文章写摘要.py
|
167 |
|
168 |
+
该程序文件是一个Python模块,文件名为"读文章写摘要.py",主要包含两个函数:"解析Paper"和"读文章写摘要"。其中,"解析Paper"函数接受文件路径、参数等参数,逐个打印文件内容并使用GPT模型生成对该文件的摘要;"读文章写摘要"函数则接受一段文本内容和参数,将该文本内容及其所有.tex文件逐个传递给"解析Paper"函数进行处理,并使用GPT模型生成文章的中英文摘要。文件还导入了一些工具函数,如异常处理、信息上报和文件写入等。
|
|
|
|
|
169 |
|
170 |
+
## [25/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\谷歌检索小助手.py
|
171 |
|
172 |
+
该文件代码包含了一个名为`get_meta_information`的函数和一个名为`谷歌检索小助手`的装饰器函数,用于从谷歌学术中抓取文章元信息,并从用户提供的搜索页面中分析所有文章的相关信息。该文件使用了许多第三方库,如requests、arxiv、BeautifulSoup等。其中`get_meta_information`函数中还定义了一个名为`string_similar`的辅助函数,用于比较字符串相似度。
|
173 |
|
174 |
+
## [26/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\crazy_functions\高级功能函数模板.py
|
175 |
|
176 |
+
该程序文件是一个 Python 模块,包含一个名为“高阶功能模板函数”的函数。该函数接受多个参数,其中包括输入文本、GPT 模型参数、插件模型参数、聊天显示框、聊天历史等。 该函数的主要功能是根据输入文本,使用 GPT 模型生成一些问题,并等待用户回答这些问题(使用 Markdown 格式),然后将用户回答加入到聊天历史中,并更新聊天显示框。该函数还包含了一些异常处理和多线程的相关操作。该程序文件还引用了另一个 Python 模块中的两个函数,分别为“CatchException”和“update_ui”,并且还引用了一个名为“request_gpt_model_in_new_thread_with_ui_alive”的自定义函数。
|
177 |
|
178 |
+
## [27/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\request_llm\bridge_all.py
|
179 |
|
180 |
+
这个文件是用来处理与LLM的交互的。包含两个函数,一个是 predict_no_ui_long_connection 用来处理长文本的输出,可以多线程调用;另一个是 predict 用来处理基础的对话功能。这个文件会导入其他文件中定义的方法进行调用,具体调用哪个方法取决于传入的参数。函数中还有一些装饰器和管理多线程的逻辑。
|
181 |
|
182 |
+
## [28/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\request_llm\bridge_chatglm.py
|
183 |
|
184 |
+
这个程序文件实现了一个使用ChatGLM模型进行聊天的功能。具体实现过程是:首先进行初始化,然后使用GetGLMHandle类进行ChatGLM模型的加载和运行。predict_no_ui_long_connection函数用于多线程聊天,而predict函数用于单线程聊天,它们的不同之处在于前者不会更新UI界面,后者会。这个文件还导入了其他模块和库,例如transformers、time、importlib等,并使用了多进程Pipe。
|
185 |
|
186 |
+
## [29/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\request_llm\bridge_chatgpt.py
|
187 |
|
188 |
+
这个程序文件是用于对话生成的,主要包含三个函数:predict、predict_no_ui、predict_no_ui_long_connection。其中,predict是用于普通对话的函数,具备完备的交互功能,但不具备多线程能力;predict_no_ui是高级实验性功能模块调用的函数,参数简单,可以多线程并行,方便实现复杂的功能逻辑;predict_no_ui_long_connection解决了predict_no_ui在处理长文档时容易断开连接的问题,同样支持多线程。程序中还包含一些常量和工具函数,用于整合信息,选择LLM模型,生成http请求,发送请求,接收响应等。它需要配置一个config文件,包含代理网址、API等敏感信息。
|
189 |
|
190 |
+
## [30/31] 请对下面的程序文件做一个概述: H:\chatgpt_academic_resolve\request_llm\bridge_tgui.py
|
191 |
|
192 |
+
该程序文件实现了一个基于Websockets的文本生成服务和对话功能。其中,有三个函数:`run()`、`predict()`和`predict_no_ui_long_connection()`。`run()`函数用于连接到Websocket服务并生成文本结果;`predict()`函数用于将用户输入作为文本生成的输入,同时在UI上显示对话历史记录,并在不断更新UI的过程中不断更新生成的文本输出;`predict_no_ui_long_connection()`函数与`predict()`函数类似,但没有UI,并在一段时间内返回单个生成的文本。整个程序还引入了多个Python模块来完成相关功能,例如`asyncio`、`websockets`、`json`等等。
|
193 |
|
194 |
+
## 根据以上分析,对程序的整体功能和构架重新做出概括。然后用一张markdown表格整理每个文件的功能(包括check_proxy.py, colorful.py, config.py, config_private.py, core_functional.py, crazy_functional.py, main.py, theme.py, toolbox.py, crazy_functions\crazy_utils.py, crazy_functions\Latex全文润色.py, crazy_functions\Latex全文翻译.py, crazy_functions\__init__.py, crazy_functions\下载arxiv论文翻译摘要.py, crazy_functions\代码重写为全英文_多线程.py, crazy_functions\总结word文档.py)。
|
|
|
|
|
|
|
|
|
195 |
|
196 |
+
程序功能概括:该程序是一个聊天机器人,可以通过 Web 界面与用户进行交互。它包含了丰富的功能,如文本润色、翻译、代码重写、在线查找等,并且支持多线程处理。用户可以通过 Gradio 框架提供的 Web 界面进行交互,程序还提供了一些调试工具,如toolbox 模块,方便程序开发和调试。
|
197 |
|
198 |
+
下表概述了每个文件的功能:
|
199 |
|
200 |
+
| 文件名 | 功能 |
|
201 |
+
| ----------------------------------------------------------- | ------------------------------------------------------------ |
|
202 |
+
| check_proxy.py | 检查代理是否可用 |
|
203 |
+
| colorful.py | 用于打印文本的字体颜色输出模块 |
|
204 |
+
| config.py | 用于程序中的各种设置,如并行线程数量和重试次数的限制等 |
|
205 |
+
| config_private.py | 配置API_KEY和代理信息的文件 |
|
206 |
+
| core_functional.py | 包含具体的文本处理功能的模块 |
|
207 |
+
| crazy_functional.py | 包括各种插件函数的模块,提供了多种文本处理功能 |
|
208 |
+
| main.py | 包含 Chatbot 机器人主程序的模块 |
|
209 |
+
| theme.py | 用于调节全局样式的模块 |
|
210 |
+
| toolbox.py | 包含工具函数和装饰器,用于聊天Bot的开发和调试 |
|
211 |
+
| crazy_functions\crazy_utils.py | 包含一些辅助函数,如文本裁剪和消息捕捉等 |
|
212 |
+
| crazy_functions\Latex全文润色.py | 对 Latex 项目进行润色处理的功能模块 |
|
213 |
+
| crazy_functions\Latex全文翻译.py | 对 Latex 项目进行翻译的功能模块 |
|
214 |
+
| crazy_functions\__init__.py | 定义一些奇特的数学函数等 |
|
215 |
+
| crazy_functions\下载arxiv论文翻译摘要.py | 下载 Arxiv 论文并翻译摘要的功能模块 |
|
216 |
+
| crazy_functions\代码重写为全英文_多线程.py | 将Python程序中所有中文转化为英文的功能模块 |
|
217 |
+
| crazy_functions\总结word文档.py | 解析 docx 和 doc 格式的文件,生成文章片段的中英文概述的功能模块 |
|
218 |
|
219 |
+
## 根据以上分析,对程序的整体功能和构架重新做出概括。然后用一张markdown表格整理每个文件的功能(包括check_proxy.py, colorful.py, config.py, config_private.py, core_functional.py, crazy_functional.py, main.py, theme.py, toolbox.py, crazy_functions\crazy_utils.py, crazy_functions\Latex全文润色.py, crazy_functions\Latex全文翻译.py, crazy_functions\__init__.py, crazy_functions\下载arxiv论文翻译摘要.py, crazy_functions\代码重写为全英文_多线程.py, crazy_functions\总结word文档.py, crazy_functions\批量Markdown翻译.py, crazy_functions\批量总结PDF文档.py, crazy_functions\批量总结PDF文档pdfminer.py, crazy_functions\批量翻译PDF文档_多线程.py, crazy_functions\理解PDF文档内容.py, crazy_functions\生成函数注释.py, crazy_functions\解析项目源代码.py, crazy_functions\询问多个大语言模型.py, crazy_functions\读文章写摘要.py, crazy_functions\谷歌检索小助手.py, crazy_functions\高级功能函数模板.py, request_llm\bridge_all.py, request_llm\bridge_chatglm.py, request_llm\bridge_chatgpt.py, request_llm\bridge_tgui.py)。
|
220 |
|
221 |
+
根据以上分析,整个程序是一个集成了多个有用工具和功能的文本处理和生成工具,提供了多种在不同场景下使用的功能,包括但不限于对话生成、文本摘要、PDF文件批量处理、代码翻译和实用工具等。主要的Python模块包括"toolbox.py"、"config.py"、"core_functional.py"和"crazy_functional.py"等,并且还使用了许多第三方库和模块实现相关功能。以下是每个程序文件的功能:
|
222 |
|
223 |
+
| 文件名 | 文件功能 |
|
224 |
+
| --- | --- |
|
225 |
+
| check_proxy.py | 用于检查代理的正确性和可用性 |
|
226 |
+
| colorful.py | 包含不同预设置颜色的常量,并用于多种UI元素 |
|
227 |
+
| config.py | 用于全局配置的类 |
|
228 |
+
| config_private.py | 与config.py文件一起使用的另一个配置文件,用于更改私密信息 |
|
229 |
+
| core_functional.py | 包含一些TextFunctional类和基础功能函数 |
|
230 |
+
| crazy_functional.py | 包含大量高级功能函数和实验性的功能函数 |
|
231 |
+
| main.py | 程序的主入口,包含GUI主窗口和主要的UI管理功能 |
|
232 |
+
| theme.py | 包含一些预设置主题的颜色 |
|
233 |
+
| toolbox.py | 提供了一些有用的工具函数 |
|
234 |
+
| crazy_functions\crazy_utils.py | 包含一些用于实现高级功能的辅助函数 |
|
235 |
+
| crazy_functions\Latex全文润色.py | 实现了对LaTeX文件中全文的润色和格式化功能 |
|
236 |
+
| crazy_functions\Latex全文翻译.py | 实现了对LaTeX文件中的内容进行翻译的功能 |
|
237 |
+
| crazy_functions\_\_init\_\_.py | 用于导入crazy_functional.py中的功能函数 |
|
238 |
+
| crazy_functions\下载arxiv论文翻译摘要.py | 从Arxiv上下载论文并提取重要信息 |
|
239 |
+
| crazy_functions\代码重写为全英文_多线程.py | 针对中文Python文件,将其翻译为全英文 |
|
240 |
+
| crazy_functions\总结word文档.py | 提取Word文件的重要内容来生成摘要 |
|
241 |
+
| crazy_functions\批量Markdown翻译.py | 批量翻译Markdown文件 |
|
242 |
+
| crazy_functions\批量总结PDF文档.py | 批量从PDF文件中提取摘要 |
|
243 |
+
| crazy_functions\批量总结PDF文档pdfminer.py | 批量从PDF文件中提取摘要 |
|
244 |
+
| crazy_functions\批量翻译PDF文档_多线程.py | 批量翻译PDF文件 |
|
245 |
+
| crazy_functions\理解PDF文档内容.py | 批量分析PDF文件并提取摘要 |
|
246 |
+
| crazy_functions\生成函数注释.py | 自动生成Python文件中函数的注释 |
|
247 |
+
| crazy_functions\解析项目源代码.py | 解析并分析给定项目的源代码 |
|
248 |
+
| crazy_functions\询问多个大语言模型.py | 向多个大语言模型询问输入文本并进行处理 |
|
249 |
+
| crazy_functions\读文献写摘要.py | 根据用户输入读取文献内容并生成摘要 |
|
250 |
+
| crazy_functions\谷歌检索小助手.py | 利用谷歌学术检索用户提供的论文信息并提取相关信息 |
|
251 |
+
| crazy_functions\高级功能函数模板.py | 实现高级功能的模板函数 |
|
252 |
+
| request_llm\bridge_all.py | 处理与LLM的交互 |
|
253 |
+
| request_llm\bridge_chatglm.py | 使用ChatGLM模型进行聊天 |
|
254 |
+
| request_llm\bridge_chatgpt.py | 实现对话生成的各项功能 |
|
255 |
+
| request_llm\bridge_tgui.py | 在Websockets中与用户进行交互并生成文本输出 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
256 |
|