chatgpt_academic/project_self_analysis.md
2023-03-28 23:09:25 +08:00

123 lines
9.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# chatgpt-academic项目分析报告
Author补充以下分析均由本项目调用ChatGPT一键生成如果有不准确的地方全怪GPT
## [0/10] 程序摘要: check_proxy.py
这个程序是一个用来检查代理服务器是否有效的 Python 程序代码。程序文件名为 check_proxy.py。其中定义了一个函数 check_proxy该函数接收一个代理配置信息 proxies使用 requests 库向一个代理服务器发送请求,获取该代理的所在地信息并返回。如果请求超时或者异常,该函数将返回一个代理无效的结果。
程序代码分为两个部分,首先是 check_proxy 函数的定义部分,其次是程序文件的入口部分,在该部分代码中,程序从 config_private.py 文件或者 config.py 文件中加载代理配置信息,然后调用 check_proxy 函数来检测代理服务器是否有效。如果配置文件 config_private.py 存在,则会加载其中的代理配置信息,否则会从 config.py 文件中读取。
## [1/10] 程序摘要: config.py
本程序文件名为config.py主要功能是存储应用所需的常量和配置信息。
其中包含了应用所需的OpenAI API密钥、API接口地址、网络代理设置、超时设置、网络端口和OpenAI模型选择等信息在运行应用前需要进行相应的配置。在未配置网络代理时程序给出了相应的警告提示。
此外还包含了一个检查函数用于检查是否忘记修改API密钥。
总之config.py文件是应用中的一个重要配置文件用来存储应用所需的常量和配置信息需要在应用运行前进行相应的配置。
## [2/10] 程序摘要: config_private.py
该文件是一个配置文件命名为config_private.py。它是一个Python脚本用于配置OpenAI的API密钥、模型和其它相关设置。该配置文件还可以设置是否使用代理。如果使用代理需要设置代理协议、地址和端口。在设置代理之后该文件还包括一些用于测试代理是否正常工作的代码。该文件还包括超时时间、随机端口、重试次数等设置。在文件末尾还有一个检查代码如果没有更改API密钥则抛出异常。
## [3/10] 程序摘要: functional.py
该程序文件名为 functional.py其中包含一个名为 get_functionals 的函数,该函数返回一个字典,该字典包含了各种翻译、校对等功能的名称、前缀、后缀以及默认按钮颜色等信息。具体功能包括:英语学术润色、中文学术润色、查找语法错误、中英互译、中译英、学术中译英、英译中、解释代码等。该程序的作用为提供各种翻译、校对等功能的模板,以便后续程序可以直接调用。
Author补充这个文件汇总了模块化的Prompt调用如果发现了新的好用Prompt别藏着哦^_^速速PR
## [4/10] 程序摘要: functional_crazy.py
这个程序文件 functional_crazy.py 导入了一些 python 模块,并提供了一个函数 get_crazy_functionals(),该函数返回不同实验功能的描述和函数。其中,使用的的模块包括:
- crazy_functions.读文章写摘要 中的 读文章写摘要
- crazy_functions.生成函数注释 中的 批量生成函数注释
- crazy_functions.解析项目源代码 中的 解析项目本身、解析一个Python项目、解析一个C项目的头文件、解析一个C项目
- crazy_functions.高级功能函数模板 中的 高阶功能模板函数
返回的实验功能函数包括:
- "[实验] 请解析并解构此项目本身",包含函数:解析项目本身
- "[实验] 解析整个py项目配合input输入框"包含函数解析一个Python项目
- "[实验] 解析整个C++项目头文件配合input输入框"包含函数解析一个C项目的头文件
- "[实验] 解析整个C++项目配合input输入框"包含函数解析一个C项目
- "[实验] 读tex论文写摘要配合input输入框",包含函数:读文章写摘要
- "[实验] 批量生成函数注释配合input输入框",包含函数:批量生成函数注释
- "[实验] 实验功能函数模板",包含函数:高阶功能模板函数
这些函数用于系统开发和测试,方便开发者进行特定程序语言后台功能开发的测试和实验,增加系统可靠稳定性和用户友好性。
Author补充这个文件汇总了模块化的函数如此设计以方便任何新功能的加入
## [5/10] 程序摘要: main.py
该程序是一个基于Gradio框架的聊天机器人应用程序。用户可以通过输入问题来获取答案并与聊天机器人进行对话。该应用程序还集成了一些实验性功能模块用户可以通过上传本地文件或点击相关按钮来使用这些模块。程序还可以生成对话日志并且具有一些外观上的调整。在运行时它会自动打开一个网页并在本地启动服务器。
## [6/10] 程序摘要: predict.py
该程序文件名为predict.py主要是针对一个基于ChatGPT的聊天机器人进行交互和预测。
第一部分是导入所需的库和配置文件。
第二部分是一个用于获取Openai返回的完整错误信息的函数。
第三部分是用于一次性完成向ChatGPT发送请求和等待回复的函数。
第四部分是用于基础的对话功能的函数通过stream参数可以选择是否显示中间的过程。
第五部分是用于整合所需信息和选择LLM模型生成的HTTP请求。
Author补充主要是predict_no_ui和predict两个函数。前者不用stream方便、高效、易用。后者用stream展现效果好。
## [7/10] 程序摘要: show_math.py
这是一个名为show_math.py的Python程序文件主要用于将Markdown-LaTeX混合文本转换为HTML格式并包括MathML数学公式。程序使用latex2mathml.converter库将LaTeX公式转换为MathML格式并使用正则表达式递归地翻译输入的Markdown-LaTeX混合文本。程序包括转换成双美元符号($$)形式、转换成单美元符号($)形式、转换成\[\]形式以及转换成\(\)形式的LaTeX数学公式。如果转换中出现错误程序将返回相应的错误消息。
## [8/10] 程序摘要: theme.py
这是一个名为theme.py的程序文件用于设置Gradio界面的颜色和字体主题。该文件中定义了一个名为adjust_theme()的函数其作用是返回一个Gradio theme对象设置了Gradio界面的颜色和字体主题。在该函数里面使用了Graido可用的颜色列表主要参数包括primary_hue、neutral_hue、font和font_mono等用于设置Gradio界面的主题色调、字体等。另外该函数还实现了一些参数的自定义如input_background_fill_dark、button_transition、button_shadow_hover等用于设置Gradio界面的渐变、阴影等特效。如果Gradio版本过于陈旧该函数会抛出异常并返回None。
## [9/10] 程序摘要: toolbox.py
该文件为Python程序文件文件名为toolbox.py。主要功能包括
1. 导入markdown、mdtex2html、threading、functools等模块。
2. 定义函数predict_no_ui_but_counting_down用于生成对话。
3. 定义函数write_results_to_file用于将对话记录生成Markdown文件。
4. 定义函数regular_txt_to_markdown将普通文本转换为Markdown格式的文本。
5. 定义装饰器函数CatchException用于捕获函数执行异常并返回生成器。
6. 定义函数report_execption用于向chatbot中添加错误信息。
7. 定义函数text_divide_paragraph用于将文本按照段落分隔符分割开生成带有段落标签的HTML代码。
8. 定义函数markdown_convertion用于将Markdown格式的文本转换为HTML格式。
9. 定义函数format_io用于将输入和输出解析为HTML格式。
10. 定义函数find_free_port用于返回当前系统中可用的未使用端口。
11. 定义函数extract_archive用于解压归档文件。
12. 定义函数find_recent_files用于查找最近创建的文件。
13. 定义函数on_file_uploaded用于处理上传文件的操作。
14. 定义函数on_report_generated用于处理生成报告文件的操作。
## 程序的整体功能和构架做出概括。然后用一张markdown表格整理每个文件的功能。
这是一个基于Gradio框架的聊天机器人应用支持通过文本聊天来获取答案并可以使用一系列实验性功能模块例如生成函数注释、解析项目源代码、读取Latex论文写摘要等。 程序架构分为前端和后端两个部分。前端使用Gradio实现包括用户输入区域、应答区域、按钮、调用方式等。后端使用Python实现包括聊天机器人模型、实验性功能模块、模板模块、管理模块、主程序模块等。
每个程序文件的功能如下:
| 文件名 | 功能描述 |
|:----:|:----:|
| check_proxy.py | 检查代理服务器是否有效 |
| config.py | 存储应用所需的常量和配置信息 |
| config_private.py | 存储Openai的API密钥、模型和其他相关设置 |
| functional.py | 提供各种翻译、校对等实用模板 |
| functional_crazy.py | 提供一些实验性质的高级功能 |
| main.py | 基于Gradio框架的聊天机器人应用程序的主程序 |
| predict.py | 用于chatbot预测方案创建向ChatGPT发送请求和获取回复 |
| show_math.py | 将Markdown-LaTeX混合文本转换为HTML格式并包括MathML数学公式 |
| theme.py | 设置Gradio界面的颜色和字体主题 |
| toolbox.py | 定义一系列工具函数,用于对输入输出进行格式转换、文件操作、异常捕捉和处理等 |
这些程序文件共同组成了一个聊天机器人应用程序的前端和后端实现,使用户可以方便地进行聊天,并可以使用相应的实验功能模块。