摩杰登录
ChatGPT/GLM提供图形交互界面,特别优化论文阅读/润色/写作体验,模块化设计,支持自定义快捷按钮&函数插件,支持Python和C++等项目剖析&自译解功能,PDF/LaTex论文翻译&总结功能,支持并行问询多种LLM模型,支持清华chatglm等本地模型。兼容复旦MOSS, llama, rwkv, 盘古, newbing, claude等
功能 | 描述 |
---|---|
一键润色 | 支持一键润色、一键查找论文语法错误 |
一键中英互译 | 一键中英互译 |
一键代码解释 | 显示代码、解释代码、生成代码、给代码加注释 |
自定义快捷键 | 支持自定义快捷键 |
模块化设计 | 支持自定义强大的函数插件,插件支持热更新 |
自我程序剖析 | [函数插件]一键读懂本项目的源代码 |
程序剖析 | [函数插件]一键可以剖析其他Python/C/C++/Java/Lua/...项目树 |
读论文、翻译论文 | [函数插件]一键解读latex/pdf论文全文并生成摘要 |
Latex全文翻译、润色 | [函数插件]一键翻译或润色latex论文 |
批量注释生成 | [函数插件]一键批量生成函数注释 |
Markdown中英互译 | [函数插件]看到上面5种语言的README了吗? |
chat分析报告生成 | [函数插件]运行后自动生成总结汇报 |
PDF论文全文翻译功能 | [函数插件]PDF论文提取题目&摘要+翻译全文(多线程) |
Arxiv小助手 | [函数插件]输入arxiv文章url即可一键翻译摘要+下载PDF |
谷歌学术统合小助手 | [函数插件]给定任意谷歌学术搜索页面URL,让gpt帮你写relatedworks |
互联网信息聚合+GPT | [函数插件]一键让GPT从互联网获取信息回答问题,让信息永不过时 |
?Arxiv论文精细翻译 | [函数插件]一键以超高质量翻译arxiv论文,目前最好的论文翻译工具 |
公式/图片/表格显示 | 可以同时显示公式的tex形式和渲染形式,支持公式、代码高亮 |
多线程函数插件支持 | 支持多线调用chatgpt,一键处理海量文本或程序 |
启动暗色主题 | 在浏览器url后面添加/?__theme=dark可以切换dark主题 |
多LLM模型支持 | 同时被GPT3.5、GPT4、清华ChatGLM、复旦MOSS同时伺候的感觉一定会很不错吧? |
更多LLM模型接入,支持huggingface部署 | 加入Newbing接口(新必应),引入清华Jittorllms支持LLaMA和盘古α |
更多新功能展示(图像生成等) …… | 见本文档结尾处 …… |
- 多种大语言模型混合调用(ChatGLM + OpenAI-GPT3.5 + API2D-GPT4)
- 下载项目
git clone https://github.com/binary-husky/gpt_academic.git
cd gpt_academic
- 配置API_KEY
在config.py
中,配置API KEY等设置,点击查看特殊网络环境设置方法 。
(P.S. 程序运行时会优先检查是否存在名为config_private.py
的私密配置文件,并用其中的配置覆盖config.py
的同名配置。因此,如果您能理解我们的配置读取逻辑,我们强烈建议您在config.py
旁边创建一个名为config_private.py
的新配置文件,并把config.py
中的配置转移(复制)到config_private.py
中。config_private.py
不受git管控,可以让您的隐私信息更加安全。P.S.项目同样支持通过环境变量
配置大多数选项,环境变量的书写格式参考docker-compose
文件。读取优先级: 环境变量
> config_private.py
> config.py
)
- 安装依赖
# (选择I: 如熟悉python)(python版本3.9以上,越新越好),备注:使用官方pip源或者阿里pip源,临时换源方法:python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python -m pip install -r requirements.txt
# (选择II: 如不熟悉python)使用anaconda,步骤也是类似的 (https://www.bilibili.com/video/BV1rc411W7Dr):
conda create -n gptac_venv python=3.11 # 创建anaconda环境
conda activate gptac_venv # 激活anaconda环境
python -m pip install -r requirements.txt # 这个步骤和pip安装一样的步骤
如果需要支持清华ChatGLM/复旦MOSS作为后端,请点击展开此处
【可选步骤】如果需要支持清华ChatGLM/复旦MOSS作为后端,需要额外安装更多依赖(前提条件:熟悉Python + 用过Pytorch + 电脑配置够强):
# 【可选步骤I】支持清华ChatGLM。清华ChatGLM备注:如果遇到"Call ChatGLM fail 不能正常加载ChatGLM的参数" 错误,参考如下: 1:以上默认安装的为torch+cpu版,使用cuda需要卸载torch重新安装torch+cuda; 2:如因本机配置不够无法加载模型,可以修改request_llm/bridge_chatglm.py中的模型精度, 将 AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True) 都修改为 AutoTokenizer.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True)
python -m pip install -r request_llm/requirements_chatglm.txt
# 【可选步骤II】支持复旦MOSS
python -m pip install -r request_llm/requirements_moss.txt
git clone https://github.com/OpenLMLab/MOSS.git request_llm/moss # 注意执行此行代码时,必须处于项目根路径
# 【可选步骤III】确保config.py配置文件的AVAIL_LLM_MODELS包含了期望的模型,目前支持的全部模型如下(jittorllms系列目前仅支持docker方案):
AVAIL_LLM_MODELS=["gpt-3.5-turbo", "api2d-gpt-3.5-turbo", "gpt-4", "api2d-gpt-4", "chatglm", "newbing", "moss"]# +["jittorllms_rwkv", "jittorllms_pangualpha", "jittorllms_llama"]
- 运行
python main.py
- 仅ChatGPT(推荐大多数人选择,等价于docker-compose方案1)
git clone https://github.com/binary-husky/gpt_academic.git # 下载项目
cd gpt_academic # 进入路径
nano config.py # 用任意文本编辑器编辑config.py, 配置 “Proxy”, “API_KEY” 以及 “WEB_PORT” (例如50923) 等
docker build -t gpt-academic . # 安装
#(最后一步-选择1)在Linux环境下,用`--net=host`更方便快捷
docker run --rm -it --net=host gpt-academic
#(最后一步-选择2)在macOS/windows环境下,只能用-p选项将容器上的端口(例如50923)暴露给主机上的端口
docker run --rm -it -e WEB_PORT=50923 -p 50923:50923 gpt-academic
P.S. 如果需要依赖Latex的插件功能,请见Wiki。另外,您也可以直接使用docker-compose获取Latex功能(修改docker-compose.yml,保留方案4并删除其他方案)。
- ChatGPT + ChatGLM + MOSS(需要熟悉Docker)
# 修改docker-compose.yml,保留方案2并删除其他方案。修改docker-compose.yml中方案2的配置,参考其中注释即可
docker-compose up
- ChatGPT + LLAMA + 盘古 + RWKV(需要熟悉Docker)
# 修改docker-compose.yml,保留方案3并删除其他方案。修改docker-compose.yml中方案3的配置,参考其中注释即可
docker-compose up
- 一键运行脚本。 完全不熟悉python环境的Windows用户可以下载Release中发布的一键运行脚本安装无本地模型的版本。 脚本的贡献来源是oobabooga。
- 使用docker-compose运行。 请阅读docker-compose.yml后,按照其中的提示操作即可
- 如何使用反代URL 按照
config.py
中的说明配置API_URL_REDIRECT即可。
- 微软云AzureAPI 按照
config.py
中的说明配置即可(AZURE_ENDPOINT等四个配置)
- 远程云服务器部署(需要云服务器知识与经验)。 请访问部署wiki-1
- 使用WSL2(Windows Subsystem for Linux 子系统)。 请访问部署wiki-2
- 如何在二级网址(如
http://localhost/subpath
)下运行。 请访问FastAPI运行说明
任意文本编辑器打开core_functional.py
,添加条目如下,然后重启程序即可。(如果按钮已经添加成功并可见,那么前缀、后缀都支持热修改,无需重启程序即可生效。) 例如
"超级英译中":{
# 前缀,会被加在你的输入之前。例如,用来描述你的要求,例如翻译、解释代码、润色等等
"Prefix": "请翻译把下面一段内容成中文,然后用一个markdown表格逐一解释文中出现的专有名词:\
\
",
# 后缀,会被加在你的输入之后。例如,配合前缀可以把你的输入内容用引号圈起来。
"Suffix": "",
},
编写强大的函数插件来执行任何你想得到的和想不到的任务。 本项目的插件编写、调试难度很低,只要您具备一定的python基础知识,就可以仿照我们提供的模板实现自己的插件功能。 详情请参考函数插件指南。
- 对话保存功能。在函数插件区调用
保存当前的对话
即可将当前对话保存为可读+可复原的html文件, 另外在函数插件区(下拉菜单)调用载入对话历史存档
,即可还原之前的会话。 Tip:不指定文件直接点击载入对话历史存档
可以查看历史html存档缓存。
- ?Latex/Arxiv论文翻译功能?
- 生成报告。大部分插件都会在执行结束后,生成工作报告
- 模块化功能设计,简单的接口却能支持强大的功能
- 译解其他开源项目
- 装饰live2d的小功能(默认关闭,需要修改
config.py
)
- 新增MOSS大语言模型支持
- OpenAI音频解析与总结
- version 3.5(Todo): 使用自然语言调用本项目的所有函数插件(高优先级)
- version 3.4: +arxiv论文翻译、latex论文批改功能
- version 3.3: +互联网信息综合功能
- version 3.2: 函数插件支持更多参数接口 (保存对话功能, 解读任意语言代码+同时询问任意的LLM组合)
- version 3.1: 支持同时问询多个gpt模型!支持api2d,支持多个apikey负载均衡
- version 3.0: 对chatglm和其他小型llm的支持
- version 2.6: 重构了插件结构,提高了交互性,加入更多插件
- version 2.5: 自更新,解决总结大工程源代码时文本过长、token溢出的问题
- version 2.4: (1)新增PDF全文翻译功能; (2)新增输入区切换位置的功能; (3)新增垂直布局选项; (4)多线程函数插件优化。
- version 2.3: 增强多线程交互性
- version 2.2: 函数插件支持热重载
- version 2.1: 可折叠式布局
- version 2.0: 引入模块化函数插件
- version 1.0: 基础功能
- 已知问题
- 某些浏览器翻译插件干扰此软件前端的运行
- 官方Gradio目前有很多兼容性Bug,请务必使用
requirement.txt
安装Gradio
文件名 | 功能描述 |
---|---|
check_proxy.py | 检查代理有效性及地理位置 |
colorful.py | 控制台打印彩色文字 |
config.py | 配置和参数设置 |
config_private.py | 私人配置和参数设置 |
core_functional.py | 核心函数和参数设置 |
crazy_functional.py | 高级功能插件集合 |
main.py | 一个 Chatbot 程序,提供各种学术翻译、文本处理和其他查询服务 |
multi_language.py | 识别和翻译不同语言 |
theme.py | 自定义 gradio 应用程序主题 |
toolbox.py | 工具类库,用于协助实现各种功能 |
crazy_functions\\crazy_functions_test.py | 测试 crazy_functions 中的各种函数 |
crazy_functions\\crazy_utils.py | 工具函数,用于字符串处理、异常检测、Markdown 格式转换等 |
crazy_functions\\Latex全文润色.py | 对整个 Latex 项目进行润色和纠错 |
crazy_functions\\Latex全文翻译.py | 对整个 Latex 项目进行翻译 |
crazy_functions\\__init__.py | 模块初始化文件,标识 crazy_functions 是一个包 |
crazy_functions\\下载arxiv论文翻译摘要.py | 下载 arxiv 论文的 PDF 文件,并提取摘要和翻译 |
crazy_functions\\代码重写为全英文_多线程.py | 将Python源代码文件中的中文内容转化为英文 |
crazy_functions\\图片生成.py | 根据激励文本使用GPT模型生成相应的图像 |
crazy_functions\\对话历史存档.py | 将每次对话记录写入Markdown格式的文件中 |
crazy_functions\\总结word文档.py | 对输入的word文档进行摘要生成 |
crazy_functions\\总结音视频.py | 对输入的音视频文件进行摘要生成 |
crazy_functions\\批量Markdown翻译.py | 将指定目录下的Markdown文件进行中英文翻译 |
crazy_functions\\批量总结PDF文档.py | 对PDF文件进行切割和摘要生成 |
crazy_functions\\批量总结PDF文档pdfminer.py | 对PDF文件进行文本内容的提取和摘要生成 |
crazy_functions\\批量翻译PDF文档_多线程.py | 将指定目录下的PDF文件进行中英文翻译 |
crazy_functions\\理解PDF文档内容.py | 对PDF文件进行摘要生成和问题解答 |
crazy_functions\\生成函数注释.py | 自动生成Python函数的注释 |
crazy_functions\\联网的ChatGPT.py | 使用网络爬虫和ChatGPT模型进行聊天回答 |
crazy_functions\\解析JupyterNotebook.py | 对Jupyter Notebook进行代码解析 |
crazy_functions\\解析项目源代码.py | 对指定编程语言的源代码进行解析 |
crazy_functions\\询问多个大语言模型.py | 使用多个大语言模型对输入进行处理和回复 |
crazy_functions\\读文章写摘要.py | 对论文进行解析和全文摘要生成 |
crazy_functions\\谷歌检索小助手.py | 提供谷歌学术搜索页面中相关文章的元数据信息。 |
crazy_functions\\高级功能函数模板.py | 使用Unsplash API发送相关图片以回复用户的输入。 |
request_llm\\bridge_all.py | 基于不同LLM模型进行对话。 |
request_llm\\bridge_chatglm.py | 使用ChatGLM模型生成回复,支持单线程和多线程方式。 |
request_llm\\bridge_chatgpt.py | 基于GPT模型完成对话。 |
request_llm\\bridge_jittorllms_llama.py | 使用JittorLLMs模型完成对话,支持单线程和多线程方式。 |
request_llm\\bridge_jittorllms_pangualpha.py | 使用JittorLLMs模型完成对话,基于多进程和多线程方式。 |
request_llm\\bridge_jittorllms_rwkv.py | 使用JittorLLMs模型完成聊天功能,提供包括历史信息、参数调节等在内的多个功能选项。 |
request_llm\\bridge_moss.py | 加载Moss模型完成对话功能。 |
request_llm\\bridge_newbing.py | 使用Newbing聊天机器人进行对话,支持单线程和多线程方式。 |
request_llm\\bridge_newbingfree.py | 基于Bing chatbot API实现聊天机器人的文本生成功能。 |
request_llm\\bridge_stackclaude.py | 基于Slack API实现Claude与用户的交互。 |
request_llm\\bridge_tgui.py | 通过websocket实现聊天机器人与UI界面交互。 |
request_llm\\edge_gpt.py | 调用Bing chatbot API提供聊天机器人服务。 |
request_llm\\edge_gpt_free.py | 实现聊天机器人API,采用aiohttp和httpx工具库。 |
request_llm\ est_llms.py | 对llm模型进行单元测试。 |
这个文件主要包含了五个函数:
check_proxy
:用于检查代理的有效性及地理位置,输出代理配置和所在地信息。
backup_and_download
:用于备份当前版本并下载新版本。
patch_and_restart
:用于覆盖更新当前版本并重新启动程序。
get_current_version
:用于获取当前程序的版本号。
auto_update
:用于自动检查新版本并提示用户更新。如果用户选择更新,则备份并下载新版本,覆盖更新当前版本并重新启动程序。如果更新失败,则输出错误信息,并不会向用户进行任何提示。
还有一个没有函数名的语句os.environ['no_proxy']='*'
,用于设置环境变量,避免代理网络产生意外污染。
此外,该文件导入了以下三个模块/函数:
requests
shutil
os
该文件是一个Python脚本,用于在控制台中打印彩色文字。该文件包含了一些函数,用于以不同颜色打印文本。其中,红色、绿色、黄色、蓝色、紫色、靛色分别以函数 print红、print绿、print黄、print蓝、print紫、print靛 的形式定义;亮红色、亮绿色、亮黄色、亮蓝色、亮紫色、亮靛色分别以 print亮红、print亮绿、print亮黄、print亮蓝、print亮紫、print亮靛 的形式定义。它们使用 ANSI Escape Code 将彩色输出从控制台突出显示。如果运行在 Linux 操作系统上,文件所执行的操作被留空;否则,该文件导入了 colorama 库并调用 init() 函数进行初始化。最后,通过一系列条件语句,该文件通过将所有彩色输出函数的名称重新赋值为 print 函数的名称来避免输出文件的颜色问题。
这个程序文件是用来配置和参数设置的。它包含了许多设置,如API key,使用代理,线程数,默认模型,超时时间等等。此外,它还包含了一些高级功能,如URL重定向等。这些设置将会影响到程序的行为和性能。
这个程序文件是一个Python脚本,文件名为config_private.py。其中包含以下变量的赋值:
- API_KEY:API密钥。
- USE_PROXY:是否应用代理。
- proxies:如果使用代理,则设置代理网络的协议(socks5/http)、地址(localhost)和端口(11284)。
- DEFAULT_WORKER_NUM:默认的工作线程数量。
- SLACK_CLAUDE_BOT_ID:Slack机器人ID。
- SLACK_CLAUDE_USER_TOKEN:Slack用户令牌。
这是一个名为core_functional.py的源代码文件,该文件定义了一个名为get_core_functions()的函数,该函数返回一个字典,该字典包含了各种学术翻译润色任务的说明和相关参数,如颜色、前缀、后缀等。这些任务包括英语学术润色、中文学术润色、查找语法错误、中译英、学术中英互译、英译中、找图片和参考文献转Bib。其中,一些任务还定义了预处理函数用于处理任务的输入文本。
此程序文件(crazy_functional.py)是一个函数插件集合,包含了多个函数插件的定义和调用。这些函数插件旨在提供一些高级功能,如解析项目源代码、批量翻译PDF文档和Latex全文润色等。其中一些插件还支持热更新功能,不需要重启程序即可生效。文件中的函数插件按照功能进行了分类(第一组和第二组),并且有不同的调用方式(作为按钮或下拉菜单)。
这是一个Python程序文件,文件名为main.py。该程序包含一个名为main的函数,程序会自动运行该函数。程序要求已经安装了gradio、os等模块,会根据配置文件加载代理、model、API Key等信息。程序提供了Chatbot功能,实现了一个对话界面,用户可以输入问题,然后Chatbot可以回答问题或者提供相关功能。程序还包含了基础功能区、函数插件区、更换模型 & SysPrompt & 交互界面布局、备选输入区,用户可以在这些区域选择功能和插件进行使用。程序中还包含了一些辅助模块,如logging等。
该文件multi_language.py是用于将项目翻译成不同语言的程序。它包含了以下函数和变量:lru_file_cache、contains_chinese、split_list、map_to_json、read_map_from_json、advanced_split、trans、trans_json、step_1_core_key_translate、CACHE_FOLDER、blacklist、LANG、TransPrompt、cached_translation等。注释和文档字符串提供了有关程序的说明,例如如何使用该程序,如何修改“LANG”和“TransPrompt”变量等。
这是一个Python源代码文件,文件名为theme.py。此文件中定义了一个函数adjust_theme,其功能是自定义gradio应用程序的主题,包括调整颜色、字体、阴影等。如果允许,则添加一个看板娘。此文件还包括变量advanced_css,其中包含一些CSS样式,用于高亮显示代码和自定义聊天框样式。此文件还导入了get_conf函数和gradio库。
toolbox.py是一个工具类库,其中主要包含了一些函数装饰器和小工具函数,用于协助实现聊天机器人所需的各种功能,包括文本处理、功能插件加载、异常检测、Markdown格式转换,文件读写等等。此外,该库还包含一些依赖、参数配置等信息。该库易于理解和维护。
这个文件是一个Python测试模块,用于测试crazy_functions中的各种函数插件。这些函数包括:解析Python项目源代码、解析Cpp项目源代码、Latex全文润色、Markdown中译英、批量翻译PDF文档、谷歌检索小助手、总结word文档、下载arxiv论文并翻译摘要、联网回答问题、和解析Jupyter Notebooks。对于每个函数插件,都有一个对应的测试函数来进行测试。
这个Python文件中包括了两个函数:
input_clipping
: 该函数用于裁剪输入文本长度,使其不超过一定的限制。request_gpt_model_in_new_thread_with_ui_alive
: 该函数用于请求 GPT 模型并保持用户界面的响应,支持多线程和实时更新用户界面。
这两个函数都依赖于从 toolbox
和 request_llm
中导入的一些工具函数。函数的输入和输出有详细的描述文档。
这是一个Python程序文件,文件名为crazy_functions\\Latex全文润色.py。文件包含了一个PaperFileGroup类和三个函数Latex英文润色,Latex中文润色和Latex英文纠错。程序使用了字符串处理、正则表达式、文件读写、多线程等技术,主要作用是对整个Latex项目进行润色和纠错。其中润色和纠错涉及到了对文本的语法、清晰度和整体可读性等方面的提升。此外,该程序还参考了第三方库,并封装了一些工具函数。
这个文件包含两个函数 Latex英译中
和 Latex中译英
,它们都会对整个Latex项目进行翻译。这个文件还包含一个类 PaperFileGroup
,它拥有一个方法 run_file_split
,用于把长文本文件分成多个短文件。其中使用了工具库 toolbox
中的一些函数和从 request_llm
中导入了 model_info
。接下来的函数把文件读取进来,把它们的注释删除,进行分割,并进行翻译。这个文件还包括了一些异常处理和界面更新的操作。
这是一个Python模块的初始化文件(init.py),命名为"crazy_functions"。该模块包含了一些疯狂的函数,但该文件并没有实现这些函数,而是作为一个包(package)来导入其它的Python模块以实现这些函数。在该文件中,没有定义任何类或函数,它唯一的作用就是标识"crazy_functions"模块是一个包。
这是一个 Python 程序文件,文件名为 下载arxiv论文翻译摘要.py
。程序包含多个函数,其中 下载arxiv论文并翻译摘要
函数的作用是下载 arxiv
论文的 PDF 文件,提取摘要并使用 GPT 对其进行翻译。其他函数包括用于下载 arxiv
论文的 download_arxiv_
函数和用于获取文章信息的 get_name
函数,其中涉及使用第三方库如 requests, BeautifulSoup 等。该文件还包含一些用于调试和存储文件的代码段。
该程序文件是一个多线程程序,主要功能是将指定目录下的所有Python代码文件中的中文内容转化为英文,并将转化后的代码存储到一个新的文件中。其中,程序使用了GPT-3等技术进行中文-英文的转化,同时也进行了一些Token限制下的处理,以防止程序发生错误。程序在执行过程中还会输出一些提示信息,并将所有转化过的代码文件存储到指定目录下。在程序执行结束后,还会生成一个任务执行报告,记录程序运行的详细信息。
该程序文件提供了一个用于生成图像的函数图片生成
。函数实现的过程中,会调用gen_image
函数来生成图像,并返回图像生成的网址和本地文件地址。函数有多个参数,包括prompt
(激励文本)、llm_kwargs
(GPT模型的参数)、plugin_kwargs
(插件模型的参数)等。函数核心代码使用了requests
库向OpenAI API请求图像,并做了简单的处理和保存。函数还更新了交互界面,清空聊天历史并显示正在生成图像的消息和最终的图像网址和预览。
这个文件是名为crazy_functions\\对话历史存档.py的Python程序文件,包含了4个函数:
- write_chat_to_file(chatbot, history=None, file_name=None):用来将对话记录以Markdown格式写入文件中,并且生成文件名,如果没指定文件名则用当前时间。写入完成后将文件路径打印出来。
- gen_file_preview(file_name):从传入的文件中读取内容,解析出对话历史记录并返回前100个字符,用于文件预览。
- read_file_to_chat(chatbot, history, file_name):从传入的文件中读取内容,解析出对话历史记录并更新聊天显示框。
- 对话历史存档(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt, web_port):一个主要函数,用于保存当前对话记录并提醒用户。如果用户希望加载历史记录,则调用read_file_to_chat()来更新聊天显示框。如果用户希望删除历史记录,调用删除所有本地对话历史记录()函数完成删除操作。
该程序文件实现了一个总结Word文档的功能,使用Python的docx库读取docx格式的文件,使用pywin32库读取doc格式的文件。程序会先根据传入的txt参数搜索需要处理的文件,并逐个解析其中的内容,将内容拆分为指定长度的文章片段,然后使用另一个程序文件中的request_gpt_model_in_new_thread_with_ui_alive函数进行中文概述。最后将所有的总结结果写入一个文件中,并在界面上进行展示。
该程序文件包括两个函数:split_audio_file()和AnalyAudio(),并且导入了一些必要的库并定义了一些工具函数。split_audio_file用于将音频文件分割成多个时长相等的片段,返回一个包含所有切割音频片段文件路径的列表,而AnalyAudio用来分析音频文件,通过调用whisper模型进行音频转文字并使用GPT模型对音频内容进行概述,最终将所有总结结果写入结果文件中。
该程序文件名为批量Markdown翻译.py
,包含了以下功能:读取Markdown文件,将长文本分离开来,将Markdown文件进行翻译(英译中和中译英),整理结果并退出。程序使用了多线程以提高效率。程序使用了tiktoken
依赖库,可能需要额外安装。文件中还有一些其他的函数和类,但与文件名所描述的功能无关。
该文件是一个Python脚本,名为crazy_functions\\批量总结PDF文档.py。在导入了一系列库和工具函数后,主要定义了5个函数,其中包括一个错误处理装饰器(@CatchException),用于批量总结PDF文档。该函数主要实现对PDF文档的解析,并调用模型生成中英文摘要。
该程序文件是一个用于批量总结PDF文档的函数插件,使用了pdfminer插件和BeautifulSoup库来提取PDF文档的文本内容,对每个PDF文件分别进行处理并生成中英文摘要。同时,该程序文件还包括一些辅助工具函数和处理异常的装饰器。
这个程序文件是一个Python脚本,文件名为“批量翻译PDF文档_多线程.py”。它主要使用了“toolbox”、“request_gpt_model_in_new_thread_with_ui_alive”、“request_gpt_model_multi_threads_with_very_awesome_ui_and_high_efficiency”、“colorful”等Python库和自定义的模块“crazy_utils”的一些函数。程序实现了一个批量翻译PDF文档的功能,可以自动解析PDF文件中的基础信息,递归地切割PDF文件,翻译和处理PDF论文中的所有内容,并生成相应的翻译结果文件(包括md文件和html文件)。功能比较复杂,其中需要调用多个函数和依赖库,涉及到多线程操作和UI更新。文件中有详细的注释和变量命名,代码比较清晰易读。
该程序文件实现了一个名为“理解PDF文档内容”的函数,该函数可以为输入的PDF文件提取摘要以及正文各部分的主要内容,并在提取过程中根据上下文关系进行学术性问题解答。该函数依赖于多个辅助函数和第三方库,并在执行过程中针对可能出现的异常进行了处理。
该程序文件是一个Python模块文件,文件名为“生成函数注释.py”,定义了两个函数:一个是生成函数注释的主函数“生成函数注释”,另一个是通过装饰器实现异常捕捉的函数“批量生成函数注释”。该程序文件依赖于“toolbox”和本地“crazy_utils”模块,并且在运行时使用了多线程技术和GPT模型来生成注释。函数生成的注释结果使用Markdown表格输出并写入历史记录文件。
这是一个名为联网的ChatGPT.py
的Python程序文件,其中定义了一个函数连接网络回答问题
。该函数通过爬取搜索引擎的结果和访问网页来综合回答给定的问题,并使用ChatGPT模型完成回答。此外,该文件还包括一些工具函数,例如从网页中抓取文本和使用代理访问网页。
这个程序文件包含了两个函数: parseNotebook()
和解析ipynb文件()
,并且引入了一些工具函数和类。parseNotebook()
函数将Jupyter Notebook文件解析为文本代码块,解析ipynb文件()
函数则用于解析多个Jupyter Notebook文件,使用parseNotebook()
解析每个文件和一些其他的处理。函数中使用了多线程处理输入和输出,并且将结果写入到文件中。
这是一个源代码分析的Python代码文件,其中定义了多个函数,包括解析一个Python项目、解析一个C项目、解析一个C项目的头文件和解析一个Java项目等。其中解析源代码新函数是实际处理源代码分析并生成报告的函数。该函数首先会逐个读取传入的源代码文件,生成对应的请求内容,通过多线程发送到chatgpt进行分析。然后将结果写入文件,并进行汇总分析。最后通过调用update_ui函数刷新界面,完整实现了源代码的分析。
该程序文件包含两个函数:同时问询()和同时问询_指定模型(),它们的作用是使用多个大语言模型同时对用户输入进行处理,返回对应模型的回复结果。同时问询()会默认使用ChatGPT和ChatGLM两个模型,而同时问询_指定模型()则可以指定要使用的模型。该程序文件还引用了其他的模块和函数库。
这个程序文件是一个Python模块,文件名为crazy_functions\\读文章写摘要.py。该模块包含了两个函数,其中主要函数是"读文章写摘要"函数,其实现了解析给定文件夹中的tex文件,对其中每个文件的内容进行摘要生成,并根据各论文片段的摘要,最终生成全文摘要。第二个函数是"解析Paper"函数,用于解析单篇论文文件。其中用到了一些工具函数和库,如update_ui、CatchException、report_execption、write_results_to_file等。
该文件是一个Python模块,文件名为“谷歌检索小助手.py”。该模块包含两个函数,一个是“get_meta_information()”,用于从提供的网址中分析出所有相关的学术文献的元数据信息;另一个是“谷歌检索小助手()”,是主函数,用于分析用户提供的谷歌学术搜索页面中出现的文章,并提取相关信息。其中,“谷歌检索小助手()”函数依赖于“get_meta_information()”函数,并调用了其他一些Python模块,如“arxiv”、“math”、“bs4”等。
该程序文件定义了一个名为高阶功能模板函数的函数,该函数接受多个参数,包括输入的文本、gpt模型参数、插件模型参数、聊天显示框的句柄、聊天历史等,并利用送出请求,使用 Unsplash API 发送相关图片。其中,为了避免输入溢出,函数会在开始时清空历史。函数也有一些 UI 更新的语句。该程序文件还依赖于其他两个模块:CatchException 和 update_ui,以及一个名为 request_gpt_model_in_new_thread_with_ui_alive 的来自 crazy_utils 模块(应该是自定义的工具包)的函数。
该文件包含两个函数:predict和predict_no_ui_long_connection,用于基于不同的LLM模型进行对话。该文件还包含一个lazyloadTiktoken类和一个LLM_CATCH_EXCEPTION修饰器函数。其中lazyloadTiktoken类用于懒加载模型的tokenizer,LLM_CATCH_EXCEPTION用于错误处理。整个文件还定义了一些全局变量和模型信息字典,用于引用和配置LLM模型。
这是一个Python程序文件,名为bridge_chatglm.py
,其中定义了一个名为GetGLMHandle
的类和三个方法:predict_no_ui_long_connection
、 predict
和 stream_chat
。该文件依赖于多个Python库,如transformers
和sentencepiece
。该文件实现了一个聊天机器人,使用ChatGLM模型来生成回复,支持单线程和多线程方式。程序启动时需要加载ChatGLM的模型和tokenizer,需要一段时间。在配置文件config.py
中设置参数会影响模型的内存和显存使用,因此程序可能会导致低配计算机卡死。
该文件为 Python 代码文件,文件名为 request_llm\\bridge_chatgpt.py。该代码文件主要提供三个函数:predict、predict_no_ui和 predict_no_ui_long_connection,用于发送至 chatGPT 并等待回复,获取输出。该代码文件还包含一些辅助函数,用于处理连接异常、生成 HTTP 请求等。该文件的代码架构清晰,使用了多个自定义函数和模块。
该代码文件实现了一个聊天机器人,其中使用了 JittorLLMs 模型。主要包括以下几个部分: 1. GetGLMHandle 类:一个进程类,用于加载 JittorLLMs 模型并接收并处理请求。 2. predict_no_ui_long_connection 函数:一个多线程方法,用于在后台运行聊天机器人。 3. predict 函数:一个单线程方法,用于在前端页面上交互式调用聊天机器人,以获取用户输入并返回相应的回复。
这个文件中还有一些辅助函数和全局变量,例如 importlib、time、threading 等。
这个文件是为了实现使用jittorllms(一种机器学习模型)来进行聊天功能的代码。其中包括了模型加载、模型的参数加载、消息的收发等相关操作。其中使用了多进程和多线程来提高性能和效率。代码中还包括了处理依赖关系的函数和预处理函数等。
这个文件是一个Python程序,文件名为request_llm\\bridge_jittorllms_rwkv.py。它依赖transformers、time、threading、importlib、multiprocessing等库。在文件中,通过定义GetGLMHandle类加载jittorllms模型参数和定义stream_chat方法来实现与jittorllms模型的交互。同时,该文件还定义了predict_no_ui_long_connection和predict方法来处理历史信息、调用jittorllms模型、接收回复信息并输出结果。
该文件为一个Python源代码文件,文件名为 request_llm\\bridge_moss.py。代码定义了一个 GetGLMHandle 类和两个函数 predict_no_ui_long_connection 和 predict。
GetGLMHandle 类继承自Process类(多进程),主要功能是启动一个子进程并加载 MOSS 模型参数,通过 Pipe 进行主子进程的通信。该类还定义了 check_dependency、moss_init、run 和 stream_chat 等方法,其中 check_dependency 和 moss_init 是子进程的初始化方法,run 是子进程运行方法,stream_chat 实现了主进程和子进程的交互过程。
函数 predict_no_ui_long_connection 是多线程方法,调用 GetGLMHandle 类加载 MOSS 参数后使用 stream_chat 实现主进程和子进程的交互过程。
函数 predict 是单线程方法,通过调用 update_ui 将交互过程中 MOSS 的回复实时更新到UI(User Interface)中,并执行一个 named function(additional_fn)指定的函数对输入进行预处理。
这是一个名为bridge_newbing.py
的程序文件,包含三个部分:
第一部分使用from语句导入了edge_gpt
模块的NewbingChatbot
类。
第二部分定义了一个名为NewBingHandle
的继承自进程类的子类,该类会检查依赖性并启动进程。同时,该部分还定义了一个名为predict_no_ui_long_connection
的多线程方法和一个名为predict
的单线程方法,用于与NewBing进行通信。
第三部分定义了一个名为newbing_handle
的全局变量,并导出了predict_no_ui_long_connection
和predict
这两个方法,以供其他程序可以调用。
这个Python文件包含了三部分内容。第一部分是来自edge_gpt_free.py文件的聊天机器人程序。第二部分是子进程Worker,用于调用主体。第三部分提供了两个函数:predict_no_ui_long_connection和predict用于调用NewBing聊天机器人和返回响应。其中predict函数还提供了一些参数用于控制聊天机器人的回复和更新UI界面。
这是一个Python源代码文件,文件名为request_llm\\bridge_stackclaude.py。代码分为三个主要部分:
第一部分定义了Slack API Client类,实现Slack消息的发送、接收、循环监听,用于与Slack API进行交互。
第二部分定义了ClaudeHandle类,继承Process类,用于创建子进程Worker,调用主体,实现Claude与用户交互的功能。
第三部分定义了predict_no_ui_long_connection和predict两个函数,主要用于通过调用ClaudeHandle对象的stream_chat方法来获取Claude的回复,并更新ui以显示相关信息。其中predict函数采用单线程方法,而predict_no_ui_long_connection函数使用多线程方法。
该文件是一个Python代码文件,名为request_llm\\bridge_tgui.py。它包含了一些函数用于与chatbot UI交互,并通过WebSocket协议与远程LLM模型通信完成文本生成任务,其中最重要的函数是predict()和predict_no_ui_long_connection()。这个程序还有其他的辅助函数,如random_hash()。整个代码文件在协作的基础上完成了一次修改。
该文件是一个用于调用Bing chatbot API的Python程序,它由多个类和辅助函数构成,可以根据给定的对话连接在对话中提出问题,使用websocket与远程服务通信。程序实现了一个聊天机器人,可以为用户提供人工智能聊天。
该代码文件为一个会话API,可通过Chathub发送消息以返回响应。其中使用了 aiohttp 和 httpx 库进行网络请求并发送。代码中包含了一些函数和常量,多数用于生成请求数据或是请求头信息等。同时该代码文件还包含了一个 Conversation 类,调用该类可实现对话交互。
这个文件是用于对llm模型进行单元测试的Python程序。程序导入一个名为"request_llm.bridge_newbingfree"的模块,然后三次使用该模块中的predict_no_ui_long_connection()函数进行预测,并输出结果。此外,还有一些注释掉的代码段,这些代码段也是关于模型预测的。
check_proxy.py, colorful.py, config.py, config_private.py, core_functional.py, crazy_functional.py, main.py, multi_language.py, theme.py, toolbox.py, crazy_functions\\crazy_functions_test.py, crazy_functions\\crazy_utils.py, crazy_functions\\Latex全文润色.py, crazy_functions\\Latex全文翻译.py, crazy_functions__init__.py, crazy_functions\\下载arxiv论文翻译摘要.py。根据以上分析,用一句话概括程序的整体功能。
文件名 | 功能描述 |
---|---|
check_proxy.py | 检查代理有效性及地理位置 |
colorful.py | 控制台打印彩色文字 |
config.py | 配置和参数设置 |
config_private.py | 私人配置和参数设置 |
core_functional.py | 核心函数和参数设置 |
crazy_functional.py | 高级功能插件集合 |
main.py | 一个 Chatbot 程序,提供各种学术翻译、文本处理和其他查询服务 |
multi_language.py | 识别和翻译不同语言 |
theme.py | 自定义 gradio 应用程序主题 |
toolbox.py | 工具类库,用于协助实现各种功能 |
crazy_functions\\crazy_functions_test.py | 测试 crazy_functions 中的各种函数 |
crazy_functions\\crazy_utils.py | 工具函数,用于字符串处理、异常检测、Markdown 格式转换等 |
crazy_functions\\Latex全文润色.py | 对整个 Latex 项目进行润色和纠错 |
crazy_functions\\Latex全文翻译.py | 对整个 Latex 项目进行翻译 |
crazy_functions__init__.py | 模块初始化文件,标识 crazy_functions 是一个包 |
crazy_functions\\下载arxiv论文翻译摘要.py | 下载 arxiv 论文的 PDF 文件,并提取摘要和翻译 |
这些程序源文件提供了基础的文本和语言处理功能、工具函数和高级插件,使 Chatbot 能够处理各种复杂的学术文本问题,包括润色、翻译、搜索、下载、解析等。
crazy_functions\\代码重写为全英文_多线程.py, crazy_functions\\图片生成.py, crazy_functions\\对话历史存档.py, crazy_functions\\总结word文档.py, crazy_functions\\总结音视频.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\\联网的ChatGPT.py, crazy_functions\\解析JupyterNotebook.py, crazy_functions\\解析项目源代码.py, crazy_functions\\询问多个大语言模型.py, crazy_functions\\读文章写摘要.py。根据以上分析,用一句话概括程序的整体功能。
文件名 | 功能简述 |
---|---|
代码重写为全英文_多线程.py | 将Python源代码文件中的中文内容转化为英文 |
图片生成.py | 根据激励文本使用GPT模型生成相应的图像 |
对话历史存档.py | 将每次对话记录写入Markdown格式的文件中 |
总结word文档.py | 对输入的word文档进行摘要生成 |
总结音视频.py | 对输入的音视频文件进行摘要生成 |
批量Markdown翻译.py | 将指定目录下的Markdown文件进行中英文翻译 |
批量总结PDF文档.py | 对PDF文件进行切割和摘要生成 |
批量总结PDF文档pdfminer.py | 对PDF文件进行文本内容的提取和摘要生成 |
批量翻译PDF文档_多线程.py | 将指定目录下的PDF文件进行中英文翻译 |
理解PDF文档内容.py | 对PDF文件进行摘要生成和问题解答 |
生成函数注释.py | 自动生成Python函数的注释 |
联网的ChatGPT.py | 使用网络爬虫和ChatGPT模型进行聊天回答 |
解析JupyterNotebook.py | 对Jupyter Notebook进行代码解析 |
解析项目源代码.py | 对指定编程语言的源代码进行解析 |
询问多个大语言模型.py | 使用多个大语言模型对输入进行处理和回复 |
读文章写摘要.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_jittorllms_llama.py, request_llm\\bridge_jittorllms_pangualpha.py, request_llm\\bridge_jittorllms_rwkv.py, request_llm\\bridge_moss.py, request_llm\\bridge_newbing.py, request_llm\\bridge_newbingfree.py, request_llm\\bridge_stackclaude.py, request_llm\\bridge_tgui.py, request_llm\\edge_gpt.py, request_llm\\edge_gpt_free.py, request_llm\ est_llms.py。根据以上分析,用一句话概括程序的整体功能。
文件名 | 功能描述 |
---|---|
crazy_functions\\谷歌检索小助手.py | 提供谷歌学术搜索页面中相关文章的元数据信息。 |
crazy_functions\\高级功能函数模板.py | 使用Unsplash API发送相关图片以回复用户的输入。 |
request_llm\\bridge_all.py | 基于不同LLM模型进行对话。 |
request_llm\\bridge_chatglm.py | 使用ChatGLM模型生成回复,支持单线程和多线程方式。 |
request_llm\\bridge_chatgpt.py | 基于GPT模型完成对话。 |
request_llm\\bridge_jittorllms_llama.py | 使用JittorLLMs模型完成对话,支持单线程和多线程方式。 |
request_llm\\bridge_jittorllms_pangualpha.py | 使用JittorLLMs模型完成对话,基于多进程和多线程方式。 |
request_llm\\bridge_jittorllms_rwkv.py | 使用JittorLLMs模型完成聊天功能,提供包括历史信息、参数调节等在内的多个功能选项。 |
request_llm\\bridge_moss.py | 加载Moss模型完成对话功能。 |
request_llm\\bridge_newbing.py | 使用Newbing聊天机器人进行对话,支持单线程和多线程方式。 |
request_llm\\bridge_newbingfree.py | 基于Bing chatbot API实现聊天机器人的文本生成功能。 |
request_llm\\bridge_stackclaude.py | 基于Slack API实现Claude与用户的交互。 |
request_llm\\bridge_tgui.py | 通过websocket实现聊天机器人与UI界面交互。 |
request_llm\\edge_gpt.py | 调用Bing chatbot API提供聊天机器人服务。 |
request_llm\\edge_gpt_free.py | 实现聊天机器人API,采用aiohttp和httpx工具库。 |
request_llm\ est_llms.py | 对llm模型进行单元测试。 |
程序整体功能 | 实现不同种类的聊天机器人,可以根据输入进行文本生成。 |
代码中参考了很多其他优秀项目中的设计,顺序不分先后:
# 清华ChatGLM-6B:
https://github.com/THUDM/ChatGLM-6B
# 清华JittorLLMs:
https://github.com/Jittor/JittorLLMs
# ChatPaper:
https://github.com/kaixindelele/ChatPaper
# Edge-GPT:
https://github.com/acheong08/EdgeGPT
# ChuanhuChatGPT:
https://github.com/GaiZhenbiao/ChuanhuChatGPT
# Oobabooga one-click installer:
https://github.com/oobabooga/one-click-installers
# More:
https://github.com/gradio-app/gradio
https://github.com/fghrsh/live2d_demo
更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。