Skip to content

科研工作专用ChatGPT拓展,特别优化学术Paper润色体验,支持自定义快捷按钮,支持自定义函数插件,支持markdown表格显示,Tex公式双显示,代码显示功能完善,新增本地Python/C++/Go项目树剖析功能/项目源代码自译解能力,新增PDF和Word文献批量总结功能/PDF论文全文翻译功能

License

Notifications You must be signed in to change notification settings

timeismylife/chatgpt_academic

This branch is 427 commits ahead of, 2368 commits behind binary-husky/gpt_academic:master.

Folders and files

NameName
Last commit message
Last commit date
Apr 4, 2023
Apr 7, 2023
Mar 24, 2023
Apr 7, 2023
Mar 24, 2023
Apr 7, 2023
Apr 7, 2023
Mar 20, 2023
Apr 7, 2023
Apr 7, 2023
Apr 7, 2023
Apr 9, 2023
Apr 7, 2023
Apr 8, 2023
Apr 9, 2023
Apr 6, 2023
Mar 22, 2023
Apr 7, 2023
Apr 9, 2023
Apr 8, 2023

Repository files navigation

ChatGPT 学术优化

如果喜欢这个项目,请给它一个Star;如果你发明了更好用的快捷键或函数插件,欢迎发issue或者pull requests(dev分支)

If you like this project, please give it a Star. If you've come up with more useful academic shortcuts or functional plugins, feel free to open an issue or pull request (to dev branch).

Note

1.请注意只有“红颜色”标识的函数插件(按钮)才支持读取文件。目前对pdf/word格式文件的支持插件正在逐步完善中,需要更多developer的帮助。

2.本项目中每个文件的功能都在自译解self_analysis.md详细说明。随着版本的迭代,您也可以随时自行点击相关函数插件,调用GPT重新生成项目的自我解析报告。常见问题汇总在wiki当中。

3.如果您不太习惯部分中文命名的函数、注释或者界面,您可以随时点击相关函数插件,调用ChatGPT一键生成纯英文的项目源代码。

4.项目使用OpenAI的gpt-3.5-turbo模型,期待gpt-4早点放宽门槛😂

功能 描述
一键润色 支持一键润色、一键查找论文语法错误
一键中英互译 一键中英互译
一键代码解释 可以正确显示代码、解释代码
自定义快捷键 支持自定义快捷键
配置代理服务器 支持配置代理服务器
模块化设计 支持自定义高阶的实验性功能与[函数插件],插件支持热更新
自我程序剖析 [函数插件] 一键读懂本项目的源代码
程序剖析 [函数插件] 一键可以剖析其他Python/C/C++/Java项目树
读论文 [函数插件] 一键解读latex论文全文并生成摘要
批量注释生成 [函数插件] 一键批量生成函数注释
chat分析报告生成 [函数插件] 运行后自动生成总结汇报
arxiv小助手 [函数插件] 输入arxiv文章url即可一键翻译摘要+下载PDF
PDF论文全文翻译功能 [函数插件] PDF论文提取题目&摘要+翻译全文(多线程)
谷歌学术统合小助手 (Version>=2.45) [函数插件] 给定任意谷歌学术搜索页面URL,让gpt帮你选择有趣的文章
公式显示 可以同时显示公式的tex形式和渲染形式
图片显示 可以在markdown中显示图片
多线程函数插件支持 支持多线调用chatgpt,一键处理海量文本或程序
支持GPT输出的markdown表格 可以输出支持GPT的markdown表格
启动暗色gradio主题 在浏览器url后面添加/?__dark-theme=true可以切换dark主题
huggingface免科学上网在线体验 登陆huggingface后复制此空间
…… ……
  • 新界面
  • 所有按钮都通过读取functional.py动态生成,可随意加自定义功能,解放粘贴板
  • 润色/纠错
  • 支持GPT输出的markdown表格
  • 如果输出包含公式,会同时以tex形式和渲染形式显示,方便复制和阅读
  • 懒得看项目代码?整个工程直接给chatgpt炫嘴里

直接运行 (Windows, Linux or MacOS)

1. 下载项目

git clone https://github.com/binary-husky/chatgpt_academic.git
cd chatgpt_academic

2. 配置API_KEY和代理设置

config.py中,配置 海外Proxy 和 OpenAI API KEY,说明如下

1. 如果你在国内,需要设置海外代理才能够顺利使用 OpenAI API,设置方法请仔细阅读config.py(1.修改其中的USE_PROXY为True; 2.按照说明修改其中的proxies)。
2. 配置 OpenAI API KEY。你需要在 OpenAI 官网上注册并获取 API KEY。一旦你拿到了 API KEY,在 config.py 文件里配置好即可。
3. 与代理网络有关的issue(网络超时、代理不起作用)汇总到 https://github.com/binary-husky/chatgpt_academic/issues/1

(P.S. 程序运行时会优先检查是否存在名为config_private.py的私密配置文件,并用其中的配置覆盖config.py的同名配置。因此,如果您能理解我们的配置读取逻辑,我们强烈建议您在config.py旁边创建一个名为config_private.py的新配置文件,并把config.py中的配置转移(复制)到config_private.py中。config_private.py不受git管控,可以让您的隐私信息更加安全。)

3. 安装依赖

# (选择一)推荐
python -m pip install -r requirements.txt   

# (选择二)如果您使用anaconda,步骤也是类似的:
# (选择二.1)conda create -n gptac_venv python=3.11
# (选择二.2)conda activate gptac_venv
# (选择二.3)python -m pip install -r requirements.txt

# 备注:使用官方pip源或者阿里pip源,其他pip源(如一些大学的pip)有可能出问题,临时换源方法: 
# python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

4. 运行

python main.py

5. 测试实验性功能

- 测试C++项目头文件分析
    input区域 输入 `./crazy_functions/test_project/cpp/libJPG` , 然后点击 "[实验] 解析整个C++项目(input输入项目根路径)"
- 测试给Latex项目写摘要
    input区域 输入 `./crazy_functions/test_project/latex/attention` , 然后点击 "[实验] 读tex论文写摘要(input输入项目根路径)"
- 测试Python项目分析
    input区域 输入 `./crazy_functions/test_project/python/dqn` , 然后点击 "[实验] 解析整个py项目(input输入项目根路径)"
- 测试自我代码解读
    点击 "[实验] 请解析并解构此项目本身"
- 测试实验功能模板函数(要求gpt回答历史上的今天发生了什么),您可以根据此函数为模板,实现更复杂的功能
    点击 "[实验] 实验功能函数模板"

使用docker (Linux)

# 下载项目
git clone https://github.com/binary-husky/chatgpt_academic.git
cd chatgpt_academic
# 配置 海外Proxy 和 OpenAI API KEY
用任意文本编辑器编辑 config.py
# 安装
docker build -t gpt-academic .
# 运行
docker run --rm -it --net=host gpt-academic

# 测试实验性功能
## 测试自我代码解读
点击 "[实验] 请解析并解构此项目本身"
## 测试实验功能模板函数(要求gpt回答历史上的今天发生了什么),您可以根据此函数为模板,实现更复杂的功能
点击 "[实验] 实验功能函数模板"
##(请注意在docker中运行时,需要额外注意程序的文件访问权限问题)
## 测试C++项目头文件分析
input区域 输入 ./crazy_functions/test_project/cpp/libJPG , 然后点击 "[实验] 解析整个C++项目(input输入项目根路径)"
## 测试给Latex项目写摘要
input区域 输入 ./crazy_functions/test_project/latex/attention , 然后点击 "[实验] 读tex论文写摘要(input输入项目根路径)"
## 测试Python项目分析
input区域 输入 ./crazy_functions/test_project/python/dqn , 然后点击 "[实验] 解析整个py项目(input输入项目根路径)"

其他部署方式

自定义新的便捷按钮(学术快捷键自定义)

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

"超级英译中": {

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

如果你发明了更好用的学术快捷键,欢迎发issue或者pull requests!

配置代理

方法一:常规方法

config.py中修改端口与代理软件对应

配置完成后,你可以用以下命令测试代理是否工作,如果一切正常,下面的代码将输出你的代理服务器所在地:

python check_proxy.py

方法二:纯新手教程

纯新手教程

兼容性测试

图片显示:

如果一个程序能够读懂并剖析自己:

其他任意Python/Cpp项目剖析:

Latex论文一键阅读理解与摘要生成

自动报告生成

模块化功能设计

源代码转译英文

Todo 与 版本规划:

  • version 3 (Todo):
    • 支持gpt4和其他更多llm
  • version 2.4+ (Todo):
    • 总结大工程源代码时文本过长、token溢出的问题
    • 实现项目打包部署
    • 函数插件参数接口优化
    • 自更新
  • version 2.4: (1)新增PDF全文翻译功能; (2)新增输入区切换位置的功能; (3)新增垂直布局选项; (4)多线程函数插件优化。
  • version 2.3: 增强多线程交互性
  • version 2.2: 函数插件支持热重载
  • version 2.1: 可折叠式布局
  • version 2.0: 引入模块化函数插件
  • version 1.0: 基础功能

参考与学习

代码中参考了很多其他优秀项目中的设计,主要包括:

# 借鉴项目1:借鉴了ChuanhuChatGPT中读取OpenAI json的方法、记录历史问询记录的方法以及gradio queue的使用技巧
https://github.com/GaiZhenbiao/ChuanhuChatGPT

# 借鉴项目2:借鉴了mdtex2html中公式处理的方法
https://github.com/polarwinkel/mdtex2html


About

科研工作专用ChatGPT拓展,特别优化学术Paper润色体验,支持自定义快捷按钮,支持自定义函数插件,支持markdown表格显示,Tex公式双显示,代码显示功能完善,新增本地Python/C++/Go项目树剖析功能/项目源代码自译解能力,新增PDF和Word文献批量总结功能/PDF论文全文翻译功能

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.8%
  • Dockerfile 0.2%