GPT学术优化 (GPT Academic):支持一键润色、一键中英互译、一键代码解释、chat分析报告生成、PDF论文全文翻译功能、互联网信息聚合+GPT等等

2023-10-11 18:18:40 浏览数 (1)

GPT学术优化 (GPT Academic):支持一键润色、一键中英互译、一键代码解释、chat分析报告生成、PDF论文全文翻译功能、互联网信息聚合 GPT等等

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和盘古α

更多新功能展示(图像生成等) ……

见本文档结尾处 ……

  • 新界面(修改config.py中的LAYOUT选项即可实现“左右布局”和“上下布局”的切换)
  • 所有按钮都通过读取functional.py动态生成,可随意加自定义功能,解放粘贴板
  • 润色/纠错
  • 如果输出包含公式,会同时以tex形式和渲染形式显示,方便复制和阅读
  • 懒得看项目代码?整个工程直接给chatgpt炫嘴里
  • 多种大语言模型混合调用(ChatGLM OpenAI-GPT3.5 API2D-GPT4)

1.安装方法I:直接运行 (Windows, Linux or MacOS)

  1. 下载项目
代码语言:javascript复制
git clone https://github.com/binary-husky/gpt_academic.git
cd gpt_academic
  1. 配置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)

  1. 安装依赖
代码语言:javascript复制
# (选择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 电脑配置够强):

代码语言:javascript复制
# 【可选步骤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"]
  1. 运行
代码语言:javascript复制
python main.py

2.安装方法II:使用Docker

  1. 仅ChatGPT(推荐大多数人选择,等价于docker-compose方案1)
代码语言:javascript复制
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并删除其他方案)。

  1. ChatGPT ChatGLM MOSS(需要熟悉Docker)
代码语言:javascript复制
# 修改docker-compose.yml,保留方案2并删除其他方案。修改docker-compose.yml中方案2的配置,参考其中注释即可
docker-compose up
  1. ChatGPT LLAMA 盘古 RWKV(需要熟悉Docker)
代码语言:javascript复制
# 修改docker-compose.yml,保留方案3并删除其他方案。修改docker-compose.yml中方案3的配置,参考其中注释即可
docker-compose up

3.安装方法III:其他部署姿势

  1. 一键运行脚本。 完全不熟悉python环境的Windows用户可以下载Release中发布的一键运行脚本安装无本地模型的版本。 脚本的贡献来源是oobabooga。
  2. 使用docker-compose运行。 请阅读docker-compose.yml后,按照其中的提示操作即可
  3. 如何使用反代URL 按照config.py中的说明配置API_URL_REDIRECT即可。
  4. 微软云AzureAPI 按照config.py中的说明配置即可(AZURE_ENDPOINT等四个配置)
  5. 远程云服务器部署(需要云服务器知识与经验)。 请访问部署wiki-1
  6. 使用WSL2(Windows Subsystem for Linux 子系统)。 请访问部署wiki-2
  7. 如何在二级网址(如http://localhost/subpath)下运行。 请访问FastAPI运行说明

4.I:自定义新的便捷按钮(学术快捷键)

任意文本编辑器打开core_functional.py,添加条目如下,然后重启程序即可。(如果按钮已经添加成功并可见,那么前缀、后缀都支持热修改,无需重启程序即可生效。) 例如

代码语言:javascript复制
"超级英译中": {
    # 前缀,会被加在你的输入之前。例如,用来描述你的要求,例如翻译、解释代码、润色等等
    "Prefix": "请翻译把下面一段内容成中文,然后用一个markdown表格逐一解释文中出现的专有名词:nn", 
    
    # 后缀,会被加在你的输入之后。例如,配合前缀可以把你的输入内容用引号圈起来。
    "Suffix": "",
},

4.II:自定义函数插件

编写强大的函数插件来执行任何你想得到的和想不到的任务。 本项目的插件编写、调试难度很低,只要您具备一定的python基础知识,就可以仿照我们提供的模板实现自己的插件功能。 详情请参考函数插件指南。

5.最新更新计划

5.1:新功能动态

  1. 对话保存功能。在函数插件区调用 保存当前的对话 即可将当前对话保存为可读 可复原的html文件, 另外在函数插件区(下拉菜单)调用 载入对话历史存档 ,即可还原之前的会话。 Tip:不指定文件直接点击 载入对话历史存档 可以查看历史html存档缓存。
  2. ⭐Latex/Arxiv论文翻译功能⭐

===>

  1. 生成报告。大部分插件都会在执行结束后,生成工作报告
  2. 模块化功能设计,简单的接口却能支持强大的功能
  3. 译解其他开源项目
  4. 装饰live2d的小功能(默认关闭,需要修改config.py
  5. 新增MOSS大语言模型支持
  6. OpenAI图像生成
  7. OpenAI音频解析与总结
  8. Latex全文校对纠错

===>

5.2版本迭代:

  • 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

5.3 chatgpt-academic项目自译解报告

文件名

功能描述

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_functionscrazy_functions_test.py

测试 crazy_functions 中的各种函数

crazy_functionscrazy_utils.py

工具函数,用于字符串处理、异常检测、Markdown 格式转换等

crazy_functionsLatex全文润色.py

对整个 Latex 项目进行润色和纠错

crazy_functionsLatex全文翻译.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_llmbridge_all.py

基于不同LLM模型进行对话。

request_llmbridge_chatglm.py

使用ChatGLM模型生成回复,支持单线程和多线程方式。

request_llmbridge_chatgpt.py

基于GPT模型完成对话。

request_llmbridge_jittorllms_llama.py

使用JittorLLMs模型完成对话,支持单线程和多线程方式。

request_llmbridge_jittorllms_pangualpha.py

使用JittorLLMs模型完成对话,基于多进程和多线程方式。

request_llmbridge_jittorllms_rwkv.py

使用JittorLLMs模型完成聊天功能,提供包括历史信息、参数调节等在内的多个功能选项。

request_llmbridge_moss.py

加载Moss模型完成对话功能。

request_llmbridge_newbing.py

使用Newbing聊天机器人进行对话,支持单线程和多线程方式。

request_llmbridge_newbingfree.py

基于Bing chatbot API实现聊天机器人的文本生成功能。

request_llmbridge_stackclaude.py

基于Slack API实现Claude与用户的交互。

request_llmbridge_tgui.py

通过websocket实现聊天机器人与UI界面交互。

request_llmedge_gpt.py

调用Bing chatbot API提供聊天机器人服务。

request_llmedge_gpt_free.py

实现聊天机器人API,采用aiohttp和httpx工具库。

request_llmtest_llms.py

对llm模型进行单元测试。

接下来请你逐文件分析下面的工程[0/48] 请对下面的程序文件做一个概述: check_proxy.py

这个文件主要包含了五个函数:

  1. check_proxy:用于检查代理的有效性及地理位置,输出代理配置和所在地信息。
  2. backup_and_download:用于备份当前版本并下载新版本。
  3. patch_and_restart:用于覆盖更新当前版本并重新启动程序。
  4. get_current_version:用于获取当前程序的版本号。
  5. auto_update:用于自动检查新版本并提示用户更新。如果用户选择更新,则备份并下载新版本,覆盖更新当前版本并重新启动程序。如果更新失败,则输出错误信息,并不会向用户进行任何提示。

还有一个没有函数名的语句os.environ['no_proxy'] = '*',用于设置环境变量,避免代理网络产生意外污染。

此外,该文件导入了以下三个模块/函数:

  • requests
  • shutil
  • os

[1/48] 请对下面的程序文件做一个概述: colorful.py

该文件是一个Python脚本,用于在控制台中打印彩色文字。该文件包含了一些函数,用于以不同颜色打印文本。其中,红色、绿色、黄色、蓝色、紫色、靛色分别以函数 print红、print绿、print黄、print蓝、print紫、print靛 的形式定义;亮红色、亮绿色、亮黄色、亮蓝色、亮紫色、亮靛色分别以 print亮红、print亮绿、print亮黄、print亮蓝、print亮紫、print亮靛 的形式定义。它们使用 ANSI Escape Code 将彩色输出从控制台突出显示。如果运行在 Linux 操作系统上,文件所执行的操作被留空;否则,该文件导入了 colorama 库并调用 init() 函数进行初始化。最后,通过一系列条件语句,该文件通过将所有彩色输出函数的名称重新赋值为 print 函数的名称来避免输出文件的颜色问题。

[2/48] 请对下面的程序文件做一个概述: config.py

这个程序文件是用来配置和参数设置的。它包含了许多设置,如API key,使用代理,线程数,默认模型,超时时间等等。此外,它还包含了一些高级功能,如URL重定向等。这些设置将会影响到程序的行为和性能。

[3/48] 请对下面的程序文件做一个概述: config_private.py

这个程序文件是一个Python脚本,文件名为config_private.py。其中包含以下变量的赋值:

  1. API_KEY:API密钥。
  2. USE_PROXY:是否应用代理。
  3. proxies:如果使用代理,则设置代理网络的协议(socks5/http)、地址(localhost)和端口(11284)。
  4. DEFAULT_WORKER_NUM:默认的工作线程数量。
  5. SLACK_CLAUDE_BOT_ID:Slack机器人ID。
  6. SLACK_CLAUDE_USER_TOKEN:Slack用户令牌。

[4/48] 请对下面的程序文件做一个概述: core_functional.py

这是一个名为core_functional.py的源代码文件,该文件定义了一个名为get_core_functions()的函数,该函数返回一个字典,该字典包含了各种学术翻译润色任务的说明和相关参数,如颜色、前缀、后缀等。这些任务包括英语学术润色、中文学术润色、查找语法错误、中译英、学术中英互译、英译中、找图片和参考文献转Bib。其中,一些任务还定义了预处理函数用于处理任务的输入文本。

[5/48] 请对下面的程序文件做一个概述: crazy_functional.py

此程序文件(crazy_functional.py)是一个函数插件集合,包含了多个函数插件的定义和调用。这些函数插件旨在提供一些高级功能,如解析项目源代码、批量翻译PDF文档和Latex全文润色等。其中一些插件还支持热更新功能,不需要重启程序即可生效。文件中的函数插件按照功能进行了分类(第一组和第二组),并且有不同的调用方式(作为按钮或下拉菜单)。

[6/48] 请对下面的程序文件做一个概述: main.py

这是一个Python程序文件,文件名为main.py。该程序包含一个名为main的函数,程序会自动运行该函数。程序要求已经安装了gradio、os等模块,会根据配置文件加载代理、model、API Key等信息。程序提供了Chatbot功能,实现了一个对话界面,用户可以输入问题,然后Chatbot可以回答问题或者提供相关功能。程序还包含了基础功能区、函数插件区、更换模型 & SysPrompt & 交互界面布局、备选输入区,用户可以在这些区域选择功能和插件进行使用。程序中还包含了一些辅助模块,如logging等。

[7/48] 请对下面的程序文件做一个概述: multi_language.py

该文件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”变量等。

[8/48] 请对下面的程序文件做一个概述: theme.py

这是一个Python源代码文件,文件名为theme.py。此文件中定义了一个函数adjust_theme,其功能是自定义gradio应用程序的主题,包括调整颜色、字体、阴影等。如果允许,则添加一个看板娘。此文件还包括变量advanced_css,其中包含一些CSS样式,用于高亮显示代码和自定义聊天框样式。此文件还导入了get_conf函数和gradio库。

[9/48] 请对下面的程序文件做一个概述: toolbox.py

toolbox.py是一个工具类库,其中主要包含了一些函数装饰器和小工具函数,用于协助实现聊天机器人所需的各种功能,包括文本处理、功能插件加载、异常检测、Markdown格式转换,文件读写等等。此外,该库还包含一些依赖、参数配置等信息。该库易于理解和维护。

[10/48] 请对下面的程序文件做一个概述: crazy_functionscrazy_functions_test.py

这个文件是一个Python测试模块,用于测试crazy_functions中的各种函数插件。这些函数包括:解析Python项目源代码、解析Cpp项目源代码、Latex全文润色、Markdown中译英、批量翻译PDF文档、谷歌检索小助手、总结word文档、下载arxiv论文并翻译摘要、联网回答问题、和解析Jupyter Notebooks。对于每个函数插件,都有一个对应的测试函数来进行测试。

[11/48] 请对下面的程序文件做一个概述: crazy_functionscrazy_utils.py

这个Python文件中包括了两个函数:

  1. input_clipping: 该函数用于裁剪输入文本长度,使其不超过一定的限制。
  2. request_gpt_model_in_new_thread_with_ui_alive: 该函数用于请求 GPT 模型并保持用户界面的响应,支持多线程和实时更新用户界面。

这两个函数都依赖于从 toolboxrequest_llm 中导入的一些工具函数。函数的输入和输出有详细的描述文档。

[12/48] 请对下面的程序文件做一个概述: crazy_functionsLatex全文润色.py

这是一个Python程序文件,文件名为crazy_functionsLatex全文润色.py。文件包含了一个PaperFileGroup类和三个函数Latex英文润色,Latex中文润色和Latex英文纠错。程序使用了字符串处理、正则表达式、文件读写、多线程等技术,主要作用是对整个Latex项目进行润色和纠错。其中润色和纠错涉及到了对文本的语法、清晰度和整体可读性等方面的提升。此外,该程序还参考了第三方库,并封装了一些工具函数。

[13/48] 请对下面的程序文件做一个概述: crazy_functionsLatex全文翻译.py

这个文件包含两个函数 Latex英译中Latex中译英,它们都会对整个Latex项目进行翻译。这个文件还包含一个类 PaperFileGroup,它拥有一个方法 run_file_split,用于把长文本文件分成多个短文件。其中使用了工具库 toolbox 中的一些函数和从 request_llm 中导入了 model_info。接下来的函数把文件读取进来,把它们的注释删除,进行分割,并进行翻译。这个文件还包括了一些异常处理和界面更新的操作。

[14/48] 请对下面的程序文件做一个概述: crazy_functions_init_.py

这是一个Python模块的初始化文件(init.py),命名为"crazy_functions"。该模块包含了一些疯狂的函数,但该文件并没有实现这些函数,而是作为一个包(package)来导入其它的Python模块以实现这些函数。在该文件中,没有定义任何类或函数,它唯一的作用就是标识"crazy_functions"模块是一个包。

[15/48] 请对下面的程序文件做一个概述: crazy_functions下载arxiv论文翻译摘要.py

这是一个 Python 程序文件,文件名为 下载arxiv论文翻译摘要.py。程序包含多个函数,其中 下载arxiv论文并翻译摘要 函数的作用是下载 arxiv 论文的 PDF 文件,提取摘要并使用 GPT 对其进行翻译。其他函数包括用于下载 arxiv 论文的 download_arxiv_ 函数和用于获取文章信息的 get_name 函数,其中涉及使用第三方库如 requests, BeautifulSoup 等。该文件还包含一些用于调试和存储文件的代码段。

[16/48] 请对下面的程序文件做一个概述: crazy_functions代码重写为全英文_多线程.py

该程序文件是一个多线程程序,主要功能是将指定目录下的所有Python代码文件中的中文内容转化为英文,并将转化后的代码存储到一个新的文件中。其中,程序使用了GPT-3等技术进行中文-英文的转化,同时也进行了一些Token限制下的处理,以防止程序发生错误。程序在执行过程中还会输出一些提示信息,并将所有转化过的代码文件存储到指定目录下。在程序执行结束后,还会生成一个任务执行报告,记录程序运行的详细信息。

[17/48] 请对下面的程序文件做一个概述: crazy_functions图片生成.py

该程序文件提供了一个用于生成图像的函数图片生成。函数实现的过程中,会调用gen_image函数来生成图像,并返回图像生成的网址和本地文件地址。函数有多个参数,包括prompt(激励文本)、llm_kwargs(GPT模型的参数)、plugin_kwargs(插件模型的参数)等。函数核心代码使用了requests库向OpenAI API请求图像,并做了简单的处理和保存。函数还更新了交互界面,清空聊天历史并显示正在生成图像的消息和最终的图像网址和预览。

[18/48] 请对下面的程序文件做一个概述: crazy_functions对话历史存档.py

这个文件是名为crazy_functions对话历史存档.py的Python程序文件,包含了4个函数:

  1. write_chat_to_file(chatbot, history=None, file_name=None):用来将对话记录以Markdown格式写入文件中,并且生成文件名,如果没指定文件名则用当前时间。写入完成后将文件路径打印出来。
  2. gen_file_preview(file_name):从传入的文件中读取内容,解析出对话历史记录并返回前100个字符,用于文件预览。
  3. read_file_to_chat(chatbot, history, file_name):从传入的文件中读取内容,解析出对话历史记录并更新聊天显示框。
  4. 对话历史存档(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt, web_port):一个主要函数,用于保存当前对话记录并提醒用户。如果用户希望加载历史记录,则调用read_file_to_chat()来更新聊天显示框。如果用户希望删除历史记录,调用删除所有本地对话历史记录()函数完成删除操作。

[19/48] 请对下面的程序文件做一个概述: crazy_functions总结word文档.py

该程序文件实现了一个总结Word文档的功能,使用Python的docx库读取docx格式的文件,使用pywin32库读取doc格式的文件。程序会先根据传入的txt参数搜索需要处理的文件,并逐个解析其中的内容,将内容拆分为指定长度的文章片段,然后使用另一个程序文件中的request_gpt_model_in_new_thread_with_ui_alive函数进行中文概述。最后将所有的总结结果写入一个文件中,并在界面上进行展示。

[20/48] 请对下面的程序文件做一个概述: crazy_functions总结音视频.py

该程序文件包括两个函数:split_audio_file()和AnalyAudio(),并且导入了一些必要的库并定义了一些工具函数。split_audio_file用于将音频文件分割成多个时长相等的片段,返回一个包含所有切割音频片段文件路径的列表,而AnalyAudio用来分析音频文件,通过调用whisper模型进行音频转文字并使用GPT模型对音频内容进行概述,最终将所有总结结果写入结果文件中。

[21/48] 请对下面的程序文件做一个概述: crazy_functions批量Markdown翻译.py

该程序文件名为批量Markdown翻译.py,包含了以下功能:读取Markdown文件,将长文本分离开来,将Markdown文件进行翻译(英译中和中译英),整理结果并退出。程序使用了多线程以提高效率。程序使用了tiktoken依赖库,可能需要额外安装。文件中还有一些其他的函数和类,但与文件名所描述的功能无关。

[22/48] 请对下面的程序文件做一个概述: crazy_functions批量总结PDF文档.py

该文件是一个Python脚本,名为crazy_functions批量总结PDF文档.py。在导入了一系列库和工具函数后,主要定义了5个函数,其中包括一个错误处理装饰器(@CatchException),用于批量总结PDF文档。该函数主要实现对PDF文档的解析,并调用模型生成中英文摘要。

[23/48] 请对下面的程序文件做一个概述: crazy_functions批量总结PDF文档pdfminer.py

该程序文件是一个用于批量总结PDF文档的函数插件,使用了pdfminer插件和BeautifulSoup库来提取PDF文档的文本内容,对每个PDF文件分别进行处理并生成中英文摘要。同时,该程序文件还包括一些辅助工具函数和处理异常的装饰器。

[24/48] 请对下面的程序文件做一个概述: crazy_functions批量翻译PDF文档_多线程.py

这个程序文件是一个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更新。文件中有详细的注释和变量命名,代码比较清晰易读。

[25/48] 请对下面的程序文件做一个概述: crazy_functions理解PDF文档内容.py

该程序文件实现了一个名为“理解PDF文档内容”的函数,该函数可以为输入的PDF文件提取摘要以及正文各部分的主要内容,并在提取过程中根据上下文关系进行学术性问题解答。该函数依赖于多个辅助函数和第三方库,并在执行过程中针对可能出现的异常进行了处理。

[26/48] 请对下面的程序文件做一个概述: crazy_functions生成函数注释.py

该程序文件是一个Python模块文件,文件名为“生成函数注释.py”,定义了两个函数:一个是生成函数注释的主函数“生成函数注释”,另一个是通过装饰器实现异常捕捉的函数“批量生成函数注释”。该程序文件依赖于“toolbox”和本地“crazy_utils”模块,并且在运行时使用了多线程技术和GPT模型来生成注释。函数生成的注释结果使用Markdown表格输出并写入历史记录文件。

[27/48] 请对下面的程序文件做一个概述: crazy_functions联网的ChatGPT.py

这是一个名为联网的ChatGPT.py的Python程序文件,其中定义了一个函数连接网络回答问题。该函数通过爬取搜索引擎的结果和访问网页来综合回答给定的问题,并使用ChatGPT模型完成回答。此外,该文件还包括一些工具函数,例如从网页中抓取文本和使用代理访问网页。

[28/48] 请对下面的程序文件做一个概述: crazy_functions解析JupyterNotebook.py

这个程序文件包含了两个函数: parseNotebook()解析ipynb文件(),并且引入了一些工具函数和类。parseNotebook()函数将Jupyter Notebook文件解析为文本代码块,解析ipynb文件()函数则用于解析多个Jupyter Notebook文件,使用parseNotebook()解析每个文件和一些其他的处理。函数中使用了多线程处理输入和输出,并且将结果写入到文件中。

[29/48] 请对下面的程序文件做一个概述: crazy_functions解析项目源代码.py

这是一个源代码分析的Python代码文件,其中定义了多个函数,包括解析一个Python项目、解析一个C项目、解析一个C项目的头文件和解析一个Java项目等。其中解析源代码新函数是实际处理源代码分析并生成报告的函数。该函数首先会逐个读取传入的源代码文件,生成对应的请求内容,通过多线程发送到chatgpt进行分析。然后将结果写入文件,并进行汇总分析。最后通过调用update_ui函数刷新界面,完整实现了源代码的分析。

[30/48] 请对下面的程序文件做一个概述: crazy_functions询问多个大语言模型.py

该程序文件包含两个函数:同时问询()和同时问询_指定模型(),它们的作用是使用多个大语言模型同时对用户输入进行处理,返回对应模型的回复结果。同时问询()会默认使用ChatGPT和ChatGLM两个模型,而同时问询_指定模型()则可以指定要使用的模型。该程序文件还引用了其他的模块和函数库。

[31/48] 请对下面的程序文件做一个概述: crazy_functions读文章写摘要.py

这个程序文件是一个Python模块,文件名为crazy_functions读文章写摘要.py。该模块包含了两个函数,其中主要函数是"读文章写摘要"函数,其实现了解析给定文件夹中的tex文件,对其中每个文件的内容进行摘要生成,并根据各论文片段的摘要,最终生成全文摘要。第二个函数是"解析Paper"函数,用于解析单篇论文文件。其中用到了一些工具函数和库,如update_ui、CatchException、report_execption、write_results_to_file等。

[32/48] 请对下面的程序文件做一个概述: crazy_functions谷歌检索小助手.py

该文件是一个Python模块,文件名为“谷歌检索小助手.py”。该模块包含两个函数,一个是“get_meta_information()”,用于从提供的网址中分析出所有相关的学术文献的元数据信息;另一个是“谷歌检索小助手()”,是主函数,用于分析用户提供的谷歌学术搜索页面中出现的文章,并提取相关信息。其中,“谷歌检索小助手()”函数依赖于“get_meta_information()”函数,并调用了其他一些Python模块,如“arxiv”、“math”、“bs4”等。

[33/48] 请对下面的程序文件做一个概述: crazy_functions高级功能函数模板.py

该程序文件定义了一个名为高阶功能模板函数的函数,该函数接受多个参数,包括输入的文本、gpt模型参数、插件模型参数、聊天显示框的句柄、聊天历史等,并利用送出请求,使用 Unsplash API 发送相关图片。其中,为了避免输入溢出,函数会在开始时清空历史。函数也有一些 UI 更新的语句。该程序文件还依赖于其他两个模块:CatchException 和 update_ui,以及一个名为 request_gpt_model_in_new_thread_with_ui_alive 的来自 crazy_utils 模块(应该是自定义的工具包)的函数。

[34/48] 请对下面的程序文件做一个概述: request_llmbridge_all.py

该文件包含两个函数:predict和predict_no_ui_long_connection,用于基于不同的LLM模型进行对话。该文件还包含一个lazyloadTiktoken类和一个LLM_CATCH_EXCEPTION修饰器函数。其中lazyloadTiktoken类用于懒加载模型的tokenizer,LLM_CATCH_EXCEPTION用于错误处理。整个文件还定义了一些全局变量和模型信息字典,用于引用和配置LLM模型。

[35/48] 请对下面的程序文件做一个概述: request_llmbridge_chatglm.py

这是一个Python程序文件,名为bridge_chatglm.py,其中定义了一个名为GetGLMHandle的类和三个方法:predict_no_ui_long_connectionpredictstream_chat。该文件依赖于多个Python库,如transformerssentencepiece。该文件实现了一个聊天机器人,使用ChatGLM模型来生成回复,支持单线程和多线程方式。程序启动时需要加载ChatGLM的模型和tokenizer,需要一段时间。在配置文件config.py中设置参数会影响模型的内存和显存使用,因此程序可能会导致低配计算机卡死。

[36/48] 请对下面的程序文件做一个概述: request_llmbridge_chatgpt.py

该文件为 Python 代码文件,文件名为 request_llmbridge_chatgpt.py。该代码文件主要提供三个函数:predict、predict_no_ui和 predict_no_ui_long_connection,用于发送至 chatGPT 并等待回复,获取输出。该代码文件还包含一些辅助函数,用于处理连接异常、生成 HTTP 请求等。该文件的代码架构清晰,使用了多个自定义函数和模块。

[37/48] 请对下面的程序文件做一个概述: request_llmbridge_jittorllms_llama.py

该代码文件实现了一个聊天机器人,其中使用了 JittorLLMs 模型。主要包括以下几个部分:

  1. GetGLMHandle 类:一个进程类,用于加载 JittorLLMs 模型并接收并处理请求。
  2. predict_no_ui_long_connection 函数:一个多线程方法,用于在后台运行聊天机器人。
  3. predict 函数:一个单线程方法,用于在前端页面上交互式调用聊天机器人,以获取用户输入并返回相应的回复。

这个文件中还有一些辅助函数和全局变量,例如 importlib、time、threading 等。

[38/48] 请对下面的程序文件做一个概述: request_llmbridge_jittorllms_pangualpha.py

这个文件是为了实现使用jittorllms(一种机器学习模型)来进行聊天功能的代码。其中包括了模型加载、模型的参数加载、消息的收发等相关操作。其中使用了多进程和多线程来提高性能和效率。代码中还包括了处理依赖关系的函数和预处理函数等。

[39/48] 请对下面的程序文件做一个概述: request_llmbridge_jittorllms_rwkv.py

这个文件是一个Python程序,文件名为request_llmbridge_jittorllms_rwkv.py。它依赖transformers、time、threading、importlib、multiprocessing等库。在文件中,通过定义GetGLMHandle类加载jittorllms模型参数和定义stream_chat方法来实现与jittorllms模型的交互。同时,该文件还定义了predict_no_ui_long_connection和predict方法来处理历史信息、调用jittorllms模型、接收回复信息并输出结果。

[40/48] 请对下面的程序文件做一个概述: request_llmbridge_moss.py

该文件为一个Python源代码文件,文件名为 request_llmbridge_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)指定的函数对输入进行预处理。

[41/48] 请对下面的程序文件做一个概述: request_llmbridge_newbing.py

这是一个名为bridge_newbing.py的程序文件,包含三个部分:

第一部分使用from语句导入了edge_gpt模块的NewbingChatbot类。

第二部分定义了一个名为NewBingHandle的继承自进程类的子类,该类会检查依赖性并启动进程。同时,该部分还定义了一个名为predict_no_ui_long_connection的多线程方法和一个名为predict的单线程方法,用于与NewBing进行通信。

第三部分定义了一个名为newbing_handle的全局变量,并导出了predict_no_ui_long_connectionpredict这两个方法,以供其他程序可以调用。

[42/48] 请对下面的程序文件做一个概述: request_llmbridge_newbingfree.py

这个Python文件包含了三部分内容。第一部分是来自edge_gpt_free.py文件的聊天机器人程序。第二部分是子进程Worker,用于调用主体。第三部分提供了两个函数:predict_no_ui_long_connection和predict用于调用NewBing聊天机器人和返回响应。其中predict函数还提供了一些参数用于控制聊天机器人的回复和更新UI界面。

[43/48] 请对下面的程序文件做一个概述: request_llmbridge_stackclaude.py

这是一个Python源代码文件,文件名为request_llmbridge_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函数使用多线程方法。

[44/48] 请对下面的程序文件做一个概述: request_llmbridge_tgui.py

该文件是一个Python代码文件,名为request_llmbridge_tgui.py。它包含了一些函数用于与chatbot UI交互,并通过WebSocket协议与远程LLM模型通信完成文本生成任务,其中最重要的函数是predict()和predict_no_ui_long_connection()。这个程序还有其他的辅助函数,如random_hash()。整个代码文件在协作的基础上完成了一次修改。

[45/48] 请对下面的程序文件做一个概述: request_llmedge_gpt.py

该文件是一个用于调用Bing chatbot API的Python程序,它由多个类和辅助函数构成,可以根据给定的对话连接在对话中提出问题,使用websocket与远程服务通信。程序实现了一个聊天机器人,可以为用户提供人工智能聊天。

[46/48] 请对下面的程序文件做一个概述: request_llmedge_gpt_free.py

该代码文件为一个会话API,可通过Chathub发送消息以返回响应。其中使用了 aiohttp 和 httpx 库进行网络请求并发送。代码中包含了一些函数和常量,多数用于生成请求数据或是请求头信息等。同时该代码文件还包含了一个 Conversation 类,调用该类可实现对话交互。

[47/48] 请对下面的程序文件做一个概述: request_llmtest_llms.py

这个文件是用于对llm模型进行单元测试的Python程序。程序导入一个名为"request_llm.bridge_newbingfree"的模块,然后三次使用该模块中的predict_no_ui_long_connection()函数进行预测,并输出结果。此外,还有一些注释掉的代码段,这些代码段也是关于模型预测的。

用一张Markdown表格简要描述以下文件的功能:

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_functionscrazy_functions_test.py, crazy_functionscrazy_utils.py, crazy_functionsLatex全文润色.py, crazy_functionsLatex全文翻译.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_functionscrazy_functions_test.py

测试 crazy_functions 中的各种函数

crazy_functionscrazy_utils.py

工具函数,用于字符串处理、异常检测、Markdown 格式转换等

crazy_functionsLatex全文润色.py

对整个 Latex 项目进行润色和纠错

crazy_functionsLatex全文翻译.py

对整个 Latex 项目进行翻译

crazy_functions_init_.py

模块初始化文件,标识 crazy_functions 是一个包

crazy_functions下载arxiv论文翻译摘要.py

下载 arxiv 论文的 PDF 文件,并提取摘要和翻译

这些程序源文件提供了基础的文本和语言处理功能、工具函数和高级插件,使 Chatbot 能够处理各种复杂的学术文本问题,包括润色、翻译、搜索、下载、解析等。

用一张Markdown表格简要描述以下文件的功能:

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

对论文进行解析和全文摘要生成

概括程序的整体功能:提供了一系列处理文本、文件和代码的功能,使用了各类语言模型、多线程、网络请求和数据解析技术来提高效率和精度。

用一张Markdown表格简要描述以下文件的功能:

crazy_functions谷歌检索小助手.py, crazy_functions高级功能函数模板.py, request_llmbridge_all.py, request_llmbridge_chatglm.py, request_llmbridge_chatgpt.py, request_llmbridge_jittorllms_llama.py, request_llmbridge_jittorllms_pangualpha.py, request_llmbridge_jittorllms_rwkv.py, request_llmbridge_moss.py, request_llmbridge_newbing.py, request_llmbridge_newbingfree.py, request_llmbridge_stackclaude.py, request_llmbridge_tgui.py, request_llmedge_gpt.py, request_llmedge_gpt_free.py, request_llmtest_llms.py。根据以上分析,用一句话概括程序的整体功能。

文件名

功能描述

crazy_functions谷歌检索小助手.py

提供谷歌学术搜索页面中相关文章的元数据信息。

crazy_functions高级功能函数模板.py

使用Unsplash API发送相关图片以回复用户的输入。

request_llmbridge_all.py

基于不同LLM模型进行对话。

request_llmbridge_chatglm.py

使用ChatGLM模型生成回复,支持单线程和多线程方式。

request_llmbridge_chatgpt.py

基于GPT模型完成对话。

request_llmbridge_jittorllms_llama.py

使用JittorLLMs模型完成对话,支持单线程和多线程方式。

request_llmbridge_jittorllms_pangualpha.py

使用JittorLLMs模型完成对话,基于多进程和多线程方式。

request_llmbridge_jittorllms_rwkv.py

使用JittorLLMs模型完成聊天功能,提供包括历史信息、参数调节等在内的多个功能选项。

request_llmbridge_moss.py

加载Moss模型完成对话功能。

request_llmbridge_newbing.py

使用Newbing聊天机器人进行对话,支持单线程和多线程方式。

request_llmbridge_newbingfree.py

基于Bing chatbot API实现聊天机器人的文本生成功能。

request_llmbridge_stackclaude.py

基于Slack API实现Claude与用户的交互。

request_llmbridge_tgui.py

通过websocket实现聊天机器人与UI界面交互。

request_llmedge_gpt.py

调用Bing chatbot API提供聊天机器人服务。

request_llmedge_gpt_free.py

实现聊天机器人API,采用aiohttp和httpx工具库。

request_llmtest_llms.py

对llm模型进行单元测试。

程序整体功能

实现不同种类的聊天机器人,可以根据输入进行文本生成。

推荐学习资料

代码语言:javascript复制
代码中参考了很多其他优秀项目中的设计,顺序不分先后:

# 清华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

0 人点赞