13

电脑技术+人工智能:GPT 学术优化 (ChatGPT Academic)项目

 1 year ago
source link: https://www.taholab.com/26298
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

本项目来自GitHub:GPT 学术优化 (ChatGPT Academic)

tahoroom/gpt_academic: 为GPT/GLM提供图形交互界面,特别优化论文阅读润色体验,模块化设计支持自定义快捷按钮&函数插件,支持代码块表格显示,Tex公式双显示,新增Python和C 项目剖析&自译解功能,PDF/LaTex论文翻译&总结功能,支持并行问询多种LLM模型,支持清华chatglm等本地模型 (github.com)


本项目依赖的Gradio组件的新版pip包(Gradio 3.26~3.27)有严重bug。所以,请在安装时严格选择requirements.txt中指定的版本

pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

1.请注意只有红颜色标识的函数插件(按钮)才支持读取文件,部分插件位于插件区的下拉菜单中。另外我们以最高优先级欢迎和处理任何新插件的PR!

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

3.已支持OpenAI和API2D的api-key共存,可在配置文件中填写如API_KEY="openai-key1,openai-key2,api2d-key3"。需要临时更换API_KEY时,在输入区输入临时的API_KEY然后回车键提交后即可生效。

功能 描述
一键润色 支持一键润色、一键查找论文语法错误
一键中英互译 一键中英互译
一键代码解释 显示代码、解释代码、生成代码、给代码加注释
自定义快捷键 支持自定义快捷键
模块化设计 支持自定义强大的函数插件,插件支持热更新
自我程序剖析 [函数插件] 一键读懂本项目的源代码
程序剖析 [函数插件] 一键可以剖析其他Python/C/C /Java/Lua/…项目树
读论文、翻译论文 [函数插件] 一键解读latex/pdf论文全文并生成摘要
Latex全文翻译润色 [函数插件] 一键翻译或润色latex论文
批量注释生成 [函数插件] 一键批量生成函数注释
Markdown中英互译 [函数插件] 看到上面5种语言的README了吗?
chat分析报告生成 [函数插件] 运行后自动生成总结汇报
PDF论文全文翻译功能 [函数插件] PDF论文提取题目&摘要 翻译全文(多线程)
Arxiv小助手 [函数插件] 输入arxiv文章url即可一键翻译摘要 下载PDF
谷歌学术统合小助手 [函数插件] 给定任意谷歌学术搜索页面URL,让gpt帮你写relatedworks
互联网信息聚合 GPT [函数插件] 一键让GPT先从互联网获取信息,再回答问题,让信息永不过时
公式/图片/表格显示 可以同时显示公式的tex形式和渲染形式,支持公式、代码高亮
多线程函数插件支持 支持多线调用chatgpt,一键处理海量文本或程序
启动暗色gradio主题 在浏览器url后面添加/?__dark-theme=true可以切换dark主题
多LLM模型支持,API2D接口支持 同时被GPT3.5、GPT4和清华ChatGLM伺候的感觉一定会很不错吧?
更多LLM模型接入,支持huggingface部署 新加入Newbing测试接口(新必应AI)
…… ……
  • 新界面(修改config.py中的LAYOUT选项即可实现“左右布局”和“上下布局”的切换)
230361456-61078362-a966-4eb5-b49e-3c62ef18b860.gif
  • 所有按钮都通过读取functional.py动态生成,可随意加自定义功能,解放粘贴板
231975334-b4788e91-4887-412f-8b43-2b9c5f41d248.gif
  • 润色/纠错
231980294-f374bdcb-3309-4560-b424-38ef39f04ebd.gif
  • 如果输出包含公式,会同时以tex形式和渲染形式显示,方便复制和阅读
230598842-1d7fcddd-815d-40ee-af60-baf488a199df.png
  • 懒得看项目代码?整个工程直接给chatgpt炫嘴里
226935232-6b6a73ce-8900-4aee-93f9-733c7e6fef53.png
  • 多种大语言模型混合调用(ChatGLM OpenAI-GPT3.5  API2D-GPT4)
232537274-deca0563-7aa6-4b5d-94a2-b7c453c47794.png

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

  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管控,可以让您的隐私信息更加安全。)

如果需要支持清华ChatGLM后端,需要额外安装更多依赖(前提条件:熟悉python 电脑配置够强):

  1. 测试函数插件
- 测试函数插件模板函数(要求gpt回答历史上的今天发生了什么),您可以根据此函数为模板,实现更复杂的功能
    点击 "[函数插件模板Demo] 历史上的今天"

安装-方法2:使用Docker

  1. 仅ChatGPT(推荐大多数人选择)
  1. ChatGPT ChatGLM(需要对Docker熟悉 读懂Dockerfile 电脑配置够强)

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

  1. 如何使用反代URL/AzureAPI 按照config.py中的说明配置API_URL_REDIRECT即可。

  2. 远程云服务器部署(需要云服务器知识与经验) 请访问部署wiki-1

  3. 使用WSL2(Windows Subsystem for Linux 子系统) 请访问部署wiki-2

  4. 如何在二级网址(如http://localhost/subpath)下运行 请访问FastAPI运行说明


自定义新的便捷按钮 / 自定义函数插件

  1. 自定义新的便捷按钮(学术快捷键) 任意文本编辑器打开core_functional.py,添加条目如下,然后重启程序即可。(如果按钮已经添加成功并可见,那么前缀、后缀都支持热修改,无需重启程序即可生效。) 例如
"超级英译中": {
    # 前缀,会被加在你的输入之前。例如,用来描述你的要求,例如翻译、解释代码、润色等等
    "Prefix": "请翻译把下面一段内容成中文,然后用一个markdown表格逐一解释文中出现的专有名词:nn",
    # 后缀,会被加在你的输入之后。例如,配合前缀可以把你的输入内容用引号圈起来。
    "Suffix": "",
226899272-477c2134-ed71-4326-810c-29891fe4a508.png
  1. 自定义函数插件

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


其他功能说明

  1. 对话保存功能。在函数插件区调用 保存当前的对话 即可将当前对话保存为可读 可复原的html文件,如图:
235222390-24a9acc0-680f-49f5-bc81-2f3161f1e049.png

在函数插件区(下拉菜单)调用 载入对话历史存档 ,即可还原之前的会话。

  1. 生成报告。大部分插件都会在执行结束后,生成工作报告
227503770-fe29ce2c-53fd-47b0-b0ff-93805f0c2ff4.png
 
227504617-7a497bb3-0a2a-4b50-9a8a-95ae60ea7afd.png
 
227504005-efeaefe0-b687-49d0-bf95-2d7b7e66c348.png
  1. 模块化功能设计,简单的接口却能支持强大的功能
229288270-093643c1-0018-487a-81e6-1d7809b6e90f.png
 
227504931-19955f78-45cd-4d1c-adac-e71e50957915.png
  1. 这是一个能够“自我译解”的开源项目
226936850-c77d7183-0749-4c1c-9875-fd4891842d0c.png
  1. 译解其他开源项目,不在话下
226935232-6b6a73ce-8900-4aee-93f9-733c7e6fef53.png
226969067-968a27c1-1b9c-486b-8b81-ab2de8d3f88a.png
  • version 3.5(Todo): 使用自然语言调用本项目的所有函数插件(高优先级)
  • version 3.4(Todo): 完善chatglm本地大模型的多线支持
  • 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: 基础功能

gpt_academic开发者QQ群:734063350

参考与学习

代码中参考了很多其他优秀项目中的设计,主要包括:
# 借鉴项目1:借鉴了ChuanhuChatGPT中诸多技巧
https://github.com/GaiZhenbiao/ChuanhuChatGPT
# 借鉴项目2:清华ChatGLM-6B:
https://github.com/THUDM/ChatGLM-6B

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK