
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本文基于仓库中 docs/README.Korean.md该项目 README 的韩文版展开系统讲解 GPT Academic 这个为 GPT/GLM 等大语言模型提供实用化交互接口的开源项目包括其完整功能版图、三种安装部署方式、环境变量 config_private.py config.py的三层配置体系以及自定义快捷键按钮与函数插件的扩展机制。读完本文你将能够独立完成该项目的部署配置理解界面按钮如何由 core_functional.py 与 crazy_functional.py 动态生成并掌握插件热更新HotReload的实现原理。说明韩文版 README 开头声明该文档由 GPT 翻译生成由本项目自身的插件实现翻译结果可能不精确100% 不可盲信。因此本文以仓库源码为最终事实依据对原文档中的每一项内容进行核对与扩充仓库当前版本见 version 文件为 4.00。一、功能版图围绕学术写作的 LLM 交互接口GPT Academic 的定位在 README.md 中写得很清楚为 GPT/GLM 等大语言模型提供实用化交互界面特别优化论文阅读/润色/写作体验。韩文版 README 以一张功能总表功能 / 설명即描述呈现了项目的全部能力这里将其完整整理如下⭐ 为近期新增功能功能说明⭐接入新模型百度千帆与文心一言、通义千问、上海 AI-Lab 书生、讯飞星火、LLaMa2、智谱 API、DALLE3文风改善、翻译、代码解释批量文风润色、翻译、论文语法错误检索、代码解释自定义快捷键支持用户自定义快捷键按钮模块化设计支持自定义强大的函数插件位于 crazy_functions 目录插件支持热更新程序剖析插件一次剖析 Python/C/C/Java/Lua/… 项目树或自我剖析论文阅读、论文翻译插件LaTeX/PDF 论文全文阅读并生成摘要LaTeX 全文翻译、润色插件LaTeX 论文翻译或润色批量注释生成插件函数注释批量生成Markdown 中英互译仓库内五种语言的 README 即由该功能生成对话分析报告生成插件执行后自动生成摘要报告PDF 论文全文翻译插件PDF 论文标题与摘要抽取 全文翻译多线程Arxiv 助手插件输入 arxiv 论文 URL 即可摘要翻译 PDF 下载LaTeX 论文批量校对插件仿 Grammarly 对 LaTeX 论文进行语法与拼写纠错 输出对照 PDFGoogle 学术统合助手给定任意 Google 学术搜索页 URL让 GPT 帮你撰写 related works互联网信息聚合 GPT插件让 GPT 自动从互联网获取信息后回答问题⭐Arxiv 论文精细翻译插件以高质量翻译 arxiv 论文提供含 Latex 环境的 Docker 镜像⭐实时语音对话输入插件异步监听音频、自动断句、自动寻找回答时机见 docs/use_audio.md公式/图片/表格显示公式同时显示 tex 形式与渲染形式支持公式与代码高亮⭐AutoGen multi-agent 插件借助 Microsoft AutoGen 探索多智能体协作暗色主题支持在浏览器 URL 后追加/?__themedark切换暗色模式多 LLM 模型支持GPT3.5、GPT4、清华 ChatGLM2、复旦 MOSS 混合调用⭐ChatGLM2 微调模型支持加载 ChatGLM2 微调模型并提供微调辅助插件更多 LLM 接入Newbing 接口新必应、清华 JittorLLMs支持 LLaMA 与盘古α⭐void-terminal 包脱离 GUI在 Python 中直接调用本项目全部函数插件⭐虚空终端插件用自然语言直接调度本项目的其他插件从源码结构看这张表与 crazy_functional.py 中的插件注册表一一对应get_crazy_functions()返回一个字典每个插件带有Group分组对话/编程/学术/智能体、AsButton是否显示为按钮否则进入下拉菜单、Function处理函数、Class新一代插件类等元数据。其中大量学术类能力对应真实实现文件例如 crazy_functions/Arxiv_Downloader.py、crazy_functions/Paper_Reading.py、crazy_functions/PDF_Translate.py、crazy_functions/Latex_Function_Wrap.py 等。界面布局方面修改 config.py 中的LAYOUT选项可在左右布局与上下布局之间切换这一机制在 main.py 中体现为当LAYOUT TOP-DOWN时布局容器从gr.Row()/gr.Column()换成gr.Row()包裹并且CHATBOT_HEIGHT会减半。所有按钮均由 main.py 动态读取功能字典生成——这正是所有按钮通过读取 functional.py 动态生成、可随意添加自定义功能这句 README 描述的代码出处。二、安装方式一直接运行Windows / Linux / macOS韩文版 README 给出的标准安装流程为四步这里逐条展开并结合源码补充细节。1. 获取项目git clone --depth1 https://github.com/binary-husky/gpt_academic.git cd gpt_academic2. 配置 API_KEY在 config.py 中配置 API KEY 与其他设置。原文档特别强调两点均与源码实现吻合1config_private.py覆盖机制。程序会先检查是否存在名为config_private.py的保密配置文件并用其配置覆盖config.py中的同名配置。官方强烈建议在config.py旁新建config_private.py只把修改过的配置项复制过去。2环境变量配置。项目支持通过环境变量配置格式可参考 docker-compose.yml读取优先级为环境变量 config_private.py config.py。这条优先级链的实现在 shared_utils/config_loader.py 的read_single_conf_with_lru_cache函数中可以清晰地看到三级回退# 优先级1. 获取环境变量作为配置 default_ref getattr(importlib.import_module(config), arg) # 读取默认值作为数据类型转换的参考 r read_env_variable(arg, default_ref) # ... # 优先级2. 获取config_private中的配置 r getattr(importlib.import_module(config_private), arg) # 优先级3. 获取config中的配置 r getattr(importlib.import_module(config), arg)环境变量同时支持裸名API_KEY...与带前缀的GPT_ACADEMIC_形式GPT_ACADEMIC_API_KEY...且带前缀者优先布尔、整数、浮点、字符串、字典、列表等类型会按config.py中默认值的类型自动转换。读取结果带lru_cache缓存运行时若需修改配置可走set_conf写回环境变量并清缓存。3多 API KEY 与临时换 KEY。API_KEY可同时填写多个密钥用英文逗号分隔例如API_KEYopenai-key1,openai-key2,azure-key3,api2d-key4。需要临时更换API_KEY时在输入区直接输入临时 KEY 再回车提交即可生效刷新网页后失效——main.py 顶部的帮助菜单也印证了如何临时更换API_KEY在输入区输入临时API_KEY后提交网页刷新后失效。另外注意韩文版 README 开头的提示2023.11.7 起安装依赖时必须使用requirements.txt中指定的版本官方 Gradio 存在兼容性问题务必按内置版本安装。3. 安装依赖# 方案一若熟悉 pythonpython3.9注意使用官方 pip 源或阿里云 pip 源 # 临时切换源的方法python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ python -m pip install -r requirements.txt # 方案二使用 Anaconda conda create -n gptac_venv python3.11 # 创建 Anaconda 环境 conda activate gptac_venv # 激活环境 python -m pip install -r requirements.txt # 与 pip 安装步骤相同[可选步骤] 本地模型后端支持前提熟悉 Python 用过 PyTorch 电脑配置足够# [可选步骤一] 支持清华 ChatGLM2 # 提示默认安装的是 torchcpu 版如需 cuda 请卸载后重装 torchcuda # 如显存不足无法加载模型可修改 request_llms/bridge_chatglm.py 中的模型精度 # 将 AutoTokenizer.from_pretrained(THUDM/chatglm-6b, trust_remote_codeTrue) # 改为 AutoTokenizer.from_pretrained(THUDM/chatglm-6b-int4, trust_remote_codeTrue) python -m pip install -r request_llms/requirements_chatglm.txt # [可选步骤二] 支持复旦 MOSS python -m pip install -r request_llms/requirements_moss.txt git clone --depth1 https://github.com/OpenLMLab/MOSS.git request_llms/moss # 务必在项目根路径下执行 # [可选步骤三] 支持 RWKV Runner参见项目 Wiki # [可选步骤四] 确保 config.py 中 AVAIL_LLM_MODELS 包含期望的模型例如 AVAIL_LLM_MODELS [gpt-3.5-turbo, api2d-gpt-3.5-turbo, gpt-4, api2d-gpt-4, chatglm, moss]本地模型相关的请求桥接器位于 request_llms 目录如 request_llms/bridge_chatglm.py、request_llms/bridge_moss.py、request_llms/bridge_qwen.py 等各桥接器的依赖分别由request_llms/requirements_*.txt文件声明。4. 运行python main.py运行 main.py 后入口函数会做一系列启动动作校验 Gradio 版本必须与requirements.txt内置版本一致否则抛出提示安装内置依赖的异常、初始化日志PATH_LOGGING、读取配置、检测代理、自动更新检查、预热 tiktoken 模块、自动打开浏览器AUTO_OPEN_BROWSER最后经由 shared_utils/fastapi_server.py 的start_app启动 Web 服务。若WEB_PORT为 -1则自动选取空闲端口。三、安装方式二Docker 部署韩文版 README 给出三种 Docker 方案对应 docker-compose.yml 中的方案零/一/二核心操作均为修改 docker-compose.yml只保留所选方案、删除其他方案然后docker-compose up方案零部署项目全部能力含 cuda 与 latex 的大型镜像网速慢或硬盘小不推荐# 修改 docker-compose.yml只保留方案 0删除其他方案然后运行 docker-compose up方案一ChatGPT 在线模型星火等 Wikipedia 摘要推荐给大多数人同上保留方案 1。若需要 Latex 插件功能可参考 Wiki或直接使用方案 4 / 方案 0 获得 Latex 能力。方案二ChatGPT ChatGLM2 MOSS LLaMA2 通义千问需熟悉 Nvidia Docker 运行时同上保留方案 2。从 docker-compose.yml 实际内容看三个方案分别使用镜像gpt_academic_with_all_capacity、gpt_academic_nolocal、gpt_academic_chatglm_moss容器内环境变量即上文三层配置体系中的环境变量层例如environment: API_KEY: sk-xxxxxxxxxxxxxxxxxxxxxxxx LLM_MODEL: gpt-3.5-turbo AVAIL_LLM_MODELS: [gpt-3.5-turbo, gpt-4, qianfan, spark] WEB_PORT: 22303 端口暴露支持两种方式Linux 下推荐network_mode: host与宿主网络融合全平台含 Windows/macOS可用端口映射ports: - 12345:12345注意映射端口必须与WEB_PORT环境变量一致。需要显卡时启用runtime: nvidia或 deploy.resources.reservations.devices并将LOCAL_MODEL_DEVICE设为cuda。四、安装方式三其他部署途径Windows 一键运行脚本完全不熟悉 Python 环境的 Windows 用户可从 Release 页下载不含本地模型的一键脚本脚本贡献来自 oobabooga。第三方 API / Azure 等支持 Azure、随机引文、星火等接入见项目 Wiki仓库内另附 docs/use_azure.md 说明 Azure 的两种接入方式单模型部署与多模型动态切换对应config.py中的AZURE_ENDPOINT/AZURE_API_KEY/AZURE_ENGINE与AZURE_CFG_ARRAY。云服务器远程部署避坑指南见项目 Wiki。其他平台Sealos 一键部署、WSL2 部署在子路径如http://localhost/subpath下运行参见 docs/WithFastapi.md对应config.py中的CUSTOM_PATH选项。五、配置体系深入config.py 的关键项与关联关系config.py 文件末尾附有一段配置关联关系说明是理解配置的好地图。结合韩文版 README 的模型接入要求这里梳理最常改动的几组配置模型接入组API_KEY可同时填多个 OpenAI/Azure 密钥英文逗号分隔API_ORG极少数需要组织编码的 OpenAI KEY、API_URL_REDIRECTURL 重定向高危设置常规不要修改。DASHSCOPE_API_KEY通义千问/百炼ZHIPUAI_API_KEY智谱 GLMANTHROPIC_API_KEYClaudeMOONSHOT_API_KEY月之暗面YIMODEL_API_KEY零一万物BAIDU_CLOUD_API_KEY/BAIDU_CLOUD_SECRET_KEY/BAIDU_CLOUD_QIANFAN_MODEL百度千帆XFYUN_APPID/XFYUN_API_SECRET/XFYUN_API_KEY讯飞星火。LLM_MODEL与AVAIL_LLM_MODELS默认选中模型必须包含在可用列表内main.py 中有一条防御逻辑if LLM_MODEL not in AVAIL_LLM_MODELS: AVAIL_LLM_MODELS [LLM_MODEL]。当前 config.py 的AVAIL_LLM_MODELS包含qwen-max、o1系列、gpt-4o、glm-4、deepseek-chat/coder/reasoner、dashscope-deepseek-r1等另可用one-api-*、vllm-*、ollama-*、openrouter-*前缀以非标准方式接入其他模型。MULTI_QUERY_LLM_MODELS定义询问多个 GPT 模型插件使用的模型组合用分隔例如gpt-3.5-turbochatglm3crazy_functional.py 还注册了询问多个GPT模型手动指定询问哪些模型插件可在高级参数区输入任意数量的模型接口chatglmgpt-3.5-turbogpt-4。本地模型CHATGLM_LOCAL_MODEL_PATH、CHATGLM_PTUNING_CHECKPOINTChatGLM2 微调、QWEN_LOCAL_MODEL_SELECTION、LOCAL_MODEL_DEVICEcpu/cuda、LOCAL_MODEL_QUANTFP16/INT4/INT8。体验优化组THEME/AVAIL_THEMES/FONT色彩主题与字体可选Default、Chuanhu-Small-and-Beautiful、High-Contrast及 HuggingFace Gradio 主题商店主题LAYOUTLEFT-RIGHT/TOP-DOWN、DARK_MODE、CHATBOT_HEIGHT仅上下布局生效、CODE_HIGHLIGHT、AUTO_CLEAR_TXTDEFAULT_WORKER_NUM多线程插件中同时访问 OpenAI 的线程数免费额度用户填 3绑定信用卡的用户可填 16 或更高TIMEOUT_SECONDS默认 30 秒、MAX_RETRY默认 2 次、WEB_PORT-1 为随机端口、AUTO_OPEN_BROWSERADD_WAIFUlive2d 装饰默认关闭需修改 config 开启对应 themes/waifu_plugin 资源DEFAULT_FN_GROUPS插件分类默认选项默认[对话, 编程, 学术, 智能体]与插件注册表中的Group字段联动控制按钮显隐PLUGIN_HOT_RELOAD插件热加载开关默认 FalseNUM_CUSTOM_BASIC_BTN自定义按钮的最大数量默认 4。插件在线服务组SEARXNG_URLS互联网检索、GROBID_URLSPDF 精准解析、MATHPIX_APPID/MATHPIX_APPKEY、ENABLE_AUDIO/ALIYUN_TOKEN/ALIYUN_APPKEY实时语音、TTS_TYPE/EDGE_TTS_VOICE/GPT_SOVITS_URL文本转语音等。六、高级用法 I自定义快捷键按钮学术快捷键这是韩文版 README 고급 사용법高级用法的第一节用任意文本编辑器打开 core_functional.py添加如下条目后重启程序即可已有按钮的文案可以实时修改无需重启초급영문 번역: { # 前缀会添加在输入内容之前。例如用于说明要求如翻译、代码解释、校对等 Prefix: 请将以下内容翻译成中文并使用 Markdown 表格对术语进行解释\n\n, # 后缀会添加在输入内容之后。例如配合前缀将输入内容用引号包起来。 Suffix: , },源码级解释core_functional.py的get_core_functions()返回一个字典每个键是按钮名值是一个包含以下可选键的字典仓库内置按钮如学术语料润色总结绘制脑图查找语法错误解释代码均按此结构编写键作用默认值Prefix拼在输入文本之前的提示词必填Suffix拼在输入文本之后的字符串rColor按钮颜色primary/secondary/stopsecondaryVisible按钮是否可见TrueAutoClearHistory触发时是否清空历史对话FalsePreProcess文本预处理函数如清除换行符NoneModelOverride强制指定该按钮使用的模型使用全局模型点击按钮后的执行逻辑在handle_core_functionality中先importlib.reload(core_functional)实现 prompt 热更新再按Prefix inputs Suffix拼装并按输入语言做提示词掩码build_gpt_academic_string_mask_langbased若命中AutoClearHistory则清空 history。按钮的注册在 main.py 的基础功能区中完成NUM_CUSTOM_BASIC_BTN个隐藏自定义按钮 所有Visible的预置按钮每个按钮点击都绑定到统一的predict对话入口。七、高级用法 II自定义函数插件韩文版 README 第二节指出可以编写有能力的函数插件完成你想做的事本项目插件的编写与调试难度较低只要具备一定 Python 基础知识照模板即可实现个性化插件功能详见项目 Wiki 的函数插件指南。仓库给出的模板是 crazy_functions/高级功能函数模板.py配套的调试入口是 crazy_functions/Interactive_Func_Template.py交互功能模板Demo函数。插件的开发工作流由 crazy_functional.py 中的注册表决定在crazy_functions/下新建模块实现yield生成器形式的处理函数在get_crazy_functions()中注册一个字典项声明Group/AsButton/Info悬停说明建议注明输入参数是什么/AdvancedArgs是否需要高级参数区等元数据函数用HotReload(函数名)包装——HotReload封装了importlib.reload修改插件代码后无需重启程序即可生效这正是 README 宣传的插件支持热更新的实现见 crazy_functional.py 首行注释HotReload 的意思是热更新。从源码结构看插件注册还有两类进阶形态注册Class新一代插件可自定义 JS 菜单与高级参数交互如PDF_Tran、Arxiv_Localize、Conversation_To_File_Wrap以及AsButton: False的插件仅出现在更多函数插件下拉菜单中。main.py 在构建界面时会为每个按钮型插件生成register_plugin_init前端注册代码点击事件通过run_classic_plugin_via_id/run_advanced_plugin_launch_code分发到后端虚空终端插件crazy_functions/Void_Terminal.py则允许用自然语言直接调度这些插件——韩文版 README 中给出的操作示例是输入使用插件翻译 PDF 论文地址是 https://openreview.net/pdf?idrJl0r3R9KX然后点击虚空终端按钮。除插件外对话侧还提供保存当前的对话与载入对话历史存档两个入口crazy_functions/Conversation_To_File.py不指定文件直接点击载入对话历史存档可查看此前的 HTML 记录缓存运行结束后会自动生成摘要报告。八、主题、版本与开发分支主题切换修改config.py的THEME选项即可仓库 themes 目录内置default、contrastHigh-Contrast、green、chuanhu等主题实现themes/default.py、themes/contrast.py界面也支持运行时通过主题下拉框动态切换main.py 中on_theme_dropdown_changed会重新加载主题 CSS 注入页面暗色模式除DARK_MODE配置外还可在浏览器 URL 后追加/?__themedark快速切换。版本演进韩文版 README 收录了从 1.0 到 3.70 的版本线3.0 支持 chatglm 等小型 LLM3.1 支持多模型并行问询与多 API key 负载均衡3.2 插件支持更多参数接口3.3 互联网信息综合3.4 arxiv 论文翻译与 latex 校对3.44 Azure 正式支持3.46 全自动化实时语音对话3.50 虚空终端3.53 主题动态选择3.55 前端界面重构、跟随屏幕的窗口与菜单栏3.56 动态基础功能按钮3.57 GLM3/星火 v3/文心一言 v4 支持3.60 引入 AutoGen 作为新一代插件基础。而仓库 version 文件当前显示 4.00最新动态为优化文件对话使用逻辑 - 新增速读论文对应 crazy_functions/Paper_Reading.py 中的速读论文插件支持论文路径或 DOI/arXiv ID 输入——可见韩文版 README 的版本记录止于 3.70 规划期实际仓库已迭代更久具体版本能力以当前源码为准。已知问题原文档如实记录某些浏览器翻译插件会干扰本软件前端运行官方 Gradio 兼容性问题较多务必用requirements.txt指定的版本安装 Gradio。开发分支master为主分支稳定版frontier为开发分支测试版。翻译说明韩文版 README 由项目自身的翻译能力生成仓库通过 multi_language.py 提供用 GPT 将本项目翻译成任意语言实验性的脚本docs 目录下另有 Japanese/Russian/English 等多语版 README 与translate_*.json词表均可作为对照材料。九、小结事项关键路径 / 配置入口与界面构建main.py三层配置体系环境变量 config_private.py config.pyshared_utils/config_loader.py全部配置项与关联关系config.py基础功能按钮自定义快捷键core_functional.py函数插件注册表与热更新crazy_functional.py、crazy_functions插件开发模板crazy_functions/高级功能函数模板.py模型桥接器ChatGLM/MOSS/Qwen 等request_llmsDocker 三种部署方案docker-compose.yml、Dockerfile主题与 GUI 组件themes子路径/FastAPI 部署说明docs/WithFastapi.mdGPT Academic 的技术主线可以概括为三句话统一对话入口predict桥接任意 LLM声明式按钮/插件注册表字典驱动 UI 动态生成HotReload 免重启三层可覆盖的配置体系从单机config.py平滑过渡到 Docker 环境变量。理解了这三条主线即可独立扩展按钮、编写插件并在不同部署形态下稳定运行这套学术写作辅助系统。【免费下载链接】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),仅供参考