GPT Academic 技术指南:基于官方文档解析 gpt_academic 的安装、配置与插件化定制
【免费下载链接】gpt_academic为GPT/GLM等LLM大语言模型提供实用化交互接口,特别优化论文阅读/润色/写作体验,模块化设计,支持自定义快捷按钮&函数插件,支持Python和C++等项目剖析&自译解功能,PDF/LaTex论文翻译&总结功能,支持并行问询多种LLM模型,支持chatglm3等本地模型。接入通义千问, deepseekcoder, 讯飞星火, 文心一言, llama2, rwkv, claude2, moss等。项目地址: https://gitcode.com/GitHub_Trending/gp/gpt_academic
本篇基于 gpt_academic 仓库中的官方文档 docs/README.Italian.md(项目多语言 README 的意大利语版本,由项目自带的 GPT 翻译插件生成)展开,完整覆盖该文档中的核心内容:安装方式(直接运行、Docker、其他部署)、三层配置优先级机制、快捷键自定义与函数插件体系、版本演进与分支策略。读完后你可以独立完成该项目的部署,理解 config.py 的配置读取链路,并能为自己新增“学术快捷键”和功能插件。
一、项目定位与功能总览
GPT Academic(gpt_academic)是一个为 GPT/GLM 等大语言模型提供实用化交互接口的项目,针对论文阅读、润色、写作场景做了深度优化。从 docs/README.Italian.md 的功能矩阵来看,其核心能力可以归纳为以下几类:
| 能力类别 | 具体功能 |
|---|---|
| 模型接入 | 支持 OpenAI 家族(GPT3.5/GPT4/Azure)、清华 ChatGLM、复旦 MOSS、通义千问、文心一言/百度千帆、讯飞星火、LLaMA2、智谱、DALLE3 等;支持多 API-KEY 共存与负载均衡 |
| 文档处理 | PDF/LaTeX 全文翻译与校对(多线程)、文档解读与摘要生成、Arxiv 论文翻译与下载 |
| 代码处理 | 代码审查/翻译/语法纠错/一键解释,Python/C/C++/Java/Lua 等项目结构分析(self analysis) |
| 扩展体系 | 模块化设计,支持自定义快捷按钮与强类型函数插件,插件支持热更新 |
| 智能体 | 多模型并行问询、AutoGen 多智能体插件、"虚空终端"(自然语言调用任意插件) |
| 交互体验 | 公式同时以 tex 源码与渲染形式展示、代码高亮、深色/浅色主题、实时语音对话、Live2D 桌面宠物(可选) |
该文档同时给出了一条重要实践提示:安装依赖时应选用requirements.txt中指定的版本,安装命令为:
pip install -r requirements.txt项目自身的逐文件功能说明沉淀在 docs/self_analysis.md(自译解报告)中;此外项目还内置了一个"自我剖析"插件,可以调用 GPT 随时重新生成该报告。
二、安装方式一:直接运行(Windows / Linux / MacOS)
这是文档推荐的主安装路径,共四步。
1. 获取代码
git clone --depth=1 https://gitcode.com/GitHub_Trending/gp/gpt_academic.git cd gpt_academic2. 配置 API_KEY 与其他参数
在 config.py 中填写 API 密钥及各项配置。该文件头部注释明确声明了配置的读取规则:
读取优先级:环境变量 > config_private.py > config.py文档特别建议使用config_private.py管理私有配置:程序会先检查同目录下是否存在名为config_private.py的私有配置文件,并用其中的值覆盖config.py中的同名配置。推荐的实践是新建config_private.py,仅把改动过的配置项从config.py复制过去,避免把密钥混在公共配置里。
这一优先级在源码中得到直接印证。shared_utils/config_loader.py 中的read_single_conf_with_lru_cache按三级回退顺序取配置:
- 先读环境变量(支持
GPT_ACADEMIC_前缀或直接变量名,见 shared_utils/config_loader.py); - 失败则
importlib动态导入config_private模块取同名属性; - 再失败才回落到
config模块的默认值。
值得注意的实现细节:环境变量值会参照config.py中同名默认值的类型进行转换——布尔值只接受字面量True/False,字典和列表用eval解析。这也解释了为什么 docker-compose.yml 中的环境变量要写成字符串化的 Python 字面量(如AVAIL_LLM_MODELS: ' ["gpt-3.5-turbo", "gpt-4"] ')。
另一个来自文档的实用技巧:当需要临时替换API_KEY 时,无需改配置文件,直接在聊天输入区粘贴新的API_KEY值并按回车即可生效(该提示同样出现在 shared_utils/config_loader.py 的启动日志中)。
3. 安装依赖
# 方案一:直接使用 pip(要求 python >= 3.9) python -m pip install -r requirements.txt # 网络不佳时可临时更换镜像源: # python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ # 方案二:使用 Anaconda 建立独立环境 conda create -n gptac_venv python=3.11 conda activate gptac_venv python -m pip install -r requirements.txt如果还要启用本地模型后端(清华 ChatGLM2 / 复旦 MOSS / RWKV Runner),需要额外安装对应依赖,前提是具有 Python + PyTorch 基础与较高端显卡:
# 可选步骤一:支持清华 ChatGLM2 python -m pip install -r request_llms/requirements_chatglm.txt # 可选步骤二:支持复旦 MOSS python -m pip install -r request_llms/requirements_moss.txt git clone --depth=1 https://github.com/OpenLMLab/MOSS.git request_llms/moss # 在项目根目录下执行 # 可选步骤三:确保 config.py 的 AVAIL_LLM_MODELS 包含所需模型 AVAIL_LLM_MODELS = ["gpt-3.5-turbo", "api2d-gpt-3.5-turbo", "gpt-4", "chatglm", "moss", "jittorllms_rwkv", "jittorllms_pangualpha", "jittorllms_llama"]文档还给出了一条 ChatGLM2 排错经验:若报错"无法加载 ChatGLM 参数",(1) 默认安装的是 torch+CPU 版,要用 CUDA 需卸载后重装 torch+CUDA 版;(2) 显存不足时可把 request_llms/bridge_chatglm.py 中AutoTokenizer.from_pretrained("THUDM/chatglm-6b", ...)换成chatglm-6b-int4量化版本。
4. 启动
python main.py启动后会通过 Gradio 拉起 Web 界面,浏览器可直接访问。界面布局由 config.py 的LAYOUT控制:"LEFT-RIGHT"(左右布局)或"TOP-DOWN"(上下布局),切换后重启程序即可。
三、安装方式二:Docker 部署
Docker 路径面向希望免本地环境搭建的用户。docker-compose.yml 内预置了多套部署方案,文档说明的用法是:只保留你要的方案、删掉其余方案,然后执行docker-compose up。
| 方案 | 镜像内容 | 适用场景 |
|---|---|---|
方案零:gpt_academic_full_capability | 全能力大镜像(含 CUDA 与 LaTeX) | 需要 Arxiv 翻译等完整能力;网速慢、磁盘小、无显卡者不推荐 |
方案一:gpt_academic_nolocalllms | 仅在线模型(ChatGPT/文心/星火等) | 文档标注"推荐大多数人选此项" |
方案二:gpt_academic_chatglm_moss | 含 ChatGLM2 + MOSS + LLaMA2 + 通义等本地模型 | 需要 Nvidia Docker 显卡运行时 |
从 docker-compose.yml 可见其端口暴露的两种机制:
- 方法一(Linux):
network_mode: "host"与宿主机网络融合,默认配置; - 方法二(全平台):端口映射
ports: - "12345:12345",注意宿主机端口必须与容器内WEB_PORT环境变量一致。
方案二中若要使用 GPU,需开启被注释的 Nvidia 显卡运行时配置(runtime: nvidia或deploy.resources.reservations.devices),并把LOCAL_MODEL_DEVICE设为cuda。文档另提示:如需 LaTeX 插件能力,可直接使用方案零或方案四的镜像。
对应的 Dockerfile 构建配方在仓库 docs/ 目录下以GithubAction+*系列文件组织,例如 docs/GithubAction+NoLocal 对应方案一的无本地模型镜像。
四、安装方式三:其他部署选项
文档还列出了若干补充部署途径:
- Windows 一键脚本:不熟悉 Python 环境时,可从项目 Release 页面下载由 oobabooga 提供的一键执行脚本,安装不含本地模型的版本;
- 第三方 API 接入:Azure、文心、讯飞星火等第三方 API 的配置方法参见 wiki 的"项目配置说明"(仓库中 docs/models/ 目录提供了 OpenAI、Azure、中转 API、本地模型等模型接入文档,如 docs/models/azure.md);
- 云服务器远程部署:参见 wiki 的云服务器部署指南(仓库内对应 docs/deployment/cloud_deploy.md);
- 其他平台/方式:Sealos 一键部署、WSL2 部署、以及通过 FastAPI 让服务运行在子路径(如
http://localhost/subpath)下——子路径方式详见 docs/WithFastapi.md,配合 config.py 的CUSTOM_PATH选项实现。
五、关键配置项速览
结合 config.py 源码,与文档描述最相关的核心配置项如下(均可被环境变量或config_private.py覆盖):
| 配置项 | 默认值 | 说明 |
|---|---|---|
API_KEY | 占位符 | 支持多个 KEY 用英文逗号分隔,如"sk-key1,sk-key2,azure-key3",多 KEY 自动负载均衡 |
LLM_MODEL/AVAIL_LLM_MODELS | gpt-3.5-turbo-16k等 | 默认模型必须包含在可用模型列表中;可用模型含 qwen、gpt-4o、glm-4、deepseek、dashscope 系列等 |
USE_PROXY/proxies | False | 代理开关与地址端口,格式[协议]://[地址]:[端口];proxies单独生效会被 shared_utils/config_loader.py 拦截 |
THEME/AVAIL_THEMES | Default | 界面主题,文档提到可选Chuanhu-Small-and-Beautiful;当前还内置High-Contrast及 Gradio 主题商店主题 |
LAYOUT | LEFT-RIGHT | 左右 / 上下两种窗口布局 |
WEB_PORT | -1(随机端口) | 与 Docker 端口映射必须对应 |
DARK_MODE | True | 深浅色模式;文档提示也可在浏览器 URL 末尾追加/?__theme=dark临时切换深色主题 |
DEFAULT_WORKER_NUM | 8 | 多线程插件中同时访问 OpenAI 的线程数,文档给出经验值:免费额度用户填 3,绑卡用户可填 16 以上 |
ADD_WAIFU | False | 是否加载 Live2D 装饰(对应themes/waifu_plugin/目录) |
AUTHENTICATION | [] | 用户名密码列表,用于多人访问控制 |
此外,API_URL_REDIRECT可用于把 OpenAI API 地址重定向到自建反代(文档标注为高危设置,常规不要修改);check_proxy.py 是项目自带的代理连通性自检脚本。
六、进阶用法一:自定义学术快捷键
这是文档"Advanced Usage"的核心内容。打开 core_functional.py,在get_core_functions()返回的字典中追加一个条目,重启程序即可生成新按钮;若按钮已存在,仅修改前缀/后缀文案可热更新,无需重启。
"高级中-英翻译": { # 前缀:加在你的输入之前。例如描述你的要求(翻译、解释代码、润色等) "Prefix": "请把下列文本翻译成中文,并用 markdown 表格逐一解释其中使用的技术术语:\n\n", # 后缀:加在你的输入之后。例如配合前缀把输入内容用引号圈起来 "Suffix": "", },从 core_functional.py 的现有实现可以看到,每个按钮完整支持七个可选字段:
Prefix/Suffix:包裹用户输入的首尾提示词(必填);Color:按钮颜色(primary/secondary/stop,对应主题中的色板,可选,默认 secondary);Visible:按钮是否可见(默认 True);AutoClearHistory:触发时是否清空历史对话(默认 False);PreProcess:文本预处理函数(默认 None,例如可写函数去除换行符);ModelOverride:强制该按钮使用指定模型(默认沿用全局模型)。
仓库中已内置的"学术语料润色""总结绘制脑图"(自动生成 mermaid flowchart)、"查找语法错误"等按钮均是这一机制的实例——脑图按钮的 Suffix 甚至内嵌了一段完整的 mermaid 提示词模板(见 core_functional.py)。
七、进阶用法二:函数插件体系
文档将"模块化设计、支持热更新插件"列为项目卖点之一,并指引读者查阅插件开发指南(仓库内对应 docs/customization/plugin_development.md)。插件开发只需 Python 基础知识,模板位于 crazy_functions/plugin_template/plugin_class_template.py,项目内置插件则分布在crazy_functions/目录下,例如:
- crazy_functions/Latex_Function.py:LaTeX 翻译/校对;
- crazy_functions/Arxiv_Downloader.py:Arxiv 论文下载与翻译;
- crazy_functions/PDF_Translate.py:PDF 全文多线程翻译;
- crazy_functions/Void_Terminal.py:"虚空终端"——用自然语言理解用户意图并自动调用其他插件(文档示例:输入"调用插件翻译一篇 PDF 文档,地址是 ...",再点击"虚空终端"按钮);
- 插件注册入口为 crazy_functional.py。
界面中只有高亮的插件按钮支持读取文件;部分插件收在插件区的下拉菜单中。新插件一律通过 pull request 合入。
八、多语言机制:multi_language.py 与本文档的来历
docs/README.Italian.md 开头声明其由 GPT(项目自带插件)翻译而成、"并非 100% 可靠",这正对应 multi_language.py 的能力:用 LLM 把整个项目的字符串翻译成任意语言。其工作流(见文件头注释):
- 在
config.py配好LLM_MODEL与API_KEY; - 修改脚本中的
LANG(如"English")与对应的TransPrompt翻译指令; - 运行
python multi_language.py;由于 GPT 偶有错误,需要多次运行以提高覆盖率,也可用CACHE_ONLY=True python multi_language.py仅使用缓存映射; - 翻译结果保存在
multi-language/<语言>/目录,翻译映射缓存于docs/translation_*.json(仓库中已沉淀了 docs/translate_english.json、docs/translate_japanese.json 等映射文件)。
multi_language.py内部还实现了文件级 LRU 缓存装饰器lru_file_cache(见 multi_language.py),避免重复请求相同文本。这也解释了 README 中"上面看到过 5 种语言的 README"这句话——多语言 README 正是该脚本的产物。
九、版本演进与分支策略
文档给出了 1.0 → 3.70(todo) 的完整版本线,关键节点:
- 2.0:引入模块化插件;2.2:插件支持热重载;2.4:PDF 翻译、布局上下互换、多线程插件优化;
- 3.0:支持 ChatGLM 等小参数 LLM;3.1:多 GPT 模型并发问询、多 apikey 负载均衡、api2d 支持;
- 3.4:arXiv 文档翻译与 LaTeX 文档校对;3.44:官方支持 Azure;3.49:百度千帆与文心一言;3.50:"虚空终端"以自然语言调用全部插件功能、插件分类;
- 3.57:GLM3/星火 v3/文心 v4 支持与本地模型并发 bug 修复;3.60:引入 AutoGen 作为新一代插件基础;
- 3.70(todo):AutoGen 主题展示优化与配套插件开发。
需要说明的是,仓库根目录的版本标记文件 version 当前为 4.00(附新特性说明"优化文件对话使用逻辑、新增速读论文"),即该意大利语文档所记录的版本线略早于仓库当前版本,阅读版本历史时以实际 docs/reference/changelog.md 为准。
分支策略方面,文档明确两个分支:master(稳定版)与frontier(开发测试版)。
十、已知问题与注意事项
文档在结尾列出的已知问题值得在部署前了解:
- 部分浏览器翻译插件会干扰本软件前端运行,访问页面时建议关闭;
- Gradio 官方 app 存在兼容性 bug,建议通过
requirements.txt安装 Gradio 而非另行 pip 安装; - 界面主题通过 config.py 的
THEME修改,文档点名的Chuanhu-Small-and-Beautiful主题与当前 config.py 的AVAIL_THEMES一致。
小结
以 docs/README.Italian.md 为骨架可以完整勾勒出 gpt_academic 的使用主线:三种安装路径(pip install -r requirements.txt+python main.py直跑、docker-compose up多方案镜像、一键脚本/云部署)覆盖从个人到服务器的部署场景;三层配置优先级(环境变量 >config_private.py>config.py)由 shared_utils/config_loader.py 严格实现,是理解其 Docker 环境变量写法的关键;快捷键与插件两级扩展机制(core_functional.py 字典配置 +crazy_functions/插件类)则保证了"按钮即提示词、插件即能力"的模块化设计落地。想进一步深入,可依次阅读 docs/get_started/quickstart.md、docs/customization/plugin_development.md 与 docs/self_analysis.md。
【免费下载链接】gpt_academic为GPT/GLM等LLM大语言模型提供实用化交互接口,特别优化论文阅读/润色/写作体验,模块化设计,支持自定义快捷按钮&函数插件,支持Python和C++等项目剖析&自译解功能,PDF/LaTex论文翻译&总结功能,支持并行问询多种LLM模型,支持chatglm3等本地模型。接入通义千问, deepseekcoder, 讯飞星火, 文心一言, llama2, rwkv, claude2, moss等。项目地址: https://gitcode.com/GitHub_Trending/gp/gpt_academic
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考