Open-source project
binary-husky/gpt_academic avatar
binary-husky/gpt_academic

gpt_academic: paper plugins generated from functional.py

为GPT/GLM等LLM大语言模型提供实用化交互接口,特别优化论文阅读/润色/写作体验,模块化设计,支持自定义快捷按钮&函数插件,支持Python和C++等项目剖析&自译解功能,PDF/LaTex论文翻译&总结功能,支持并行问询多种LLM模型,支持chatglm3等本地模型。接入通义千问, deepseekcoder, 讯飞星火, 文心一言, llama2, rwkv, claude2, moss等。

71,392 stars8,308 forksPythonGPL-3.0

At a glance

What is it?
A GPL-3.0 Python interface to GPT and Chinese base models where the screen itself is generated from code. LaTeX and PDF translation, project analysis and arxiv handling arrive as plugins, and the newest release tag predates the last push by more than a year.
Who is it for?
Adopt gpt_academic if your work is LaTeX and PDF papers and you want one plugin per task instead of a chat box, and be ready to build the container yourself, because the pinned Gradio wheel and the CUDA plus LaTeX image are both things you cannot skip. Do not adopt it expecting a settled interface: the new frontend was still listed as Coming Soon on 2026-01-25, the date of the last push, while the newest tag, version3.91, is from 2024-12-19.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Activity is slowing. The repository last received commits 8 months ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Buttons are generated by reading functional.py, not placed by hand

The interface is not a layout anyone maintains by hand. All buttons are generated dynamically by reading functional.py, and the stated benefit is that you can add custom functions freely and stop copying text back and forth to the clipboard. The arrangement itself is a single setting: change the LAYOUT option in config.py to switch between a left-right layout and a top-bottom one. That design choice matters because the plugin list is long, covering paper reading, LaTeX translation and polishing, proofreading, project analysis, arxiv handling and voice input. Hand-placing each of those into a grid would be unmaintainable, so the code is the source of truth for what appears on screen. The side effect is that configuration and interface live in the same file, which is convenient for one person and awkward for a team that wants the layout pinned apart from the model settings.

The new GUI has been under test since the last push on 2026-01-25

The project's own changelog line for 2026-01-25 records that the new GUI frontend is in testing and is marked Coming Soon, and that is the last activity noted for the master branch. Nothing later appears in the notes. So the interface most screenshots describe may not be the one you get from master, and the repository does not document the difference between the two. The release history points the same way. The newest GitHub release is version3.91 dated 2024-12-19, preceded by version3.90patch1 from 2024-10-13 and version3.83-fix-1 from 2024-08-02, which means the current tag predates the last push by more than a year. If you need to pin this project, pin a commit hash rather than a release, and expect the tag to describe code that predates the frontend work entirely.

requirements.txt opens with a wheel hosted off PyPI

The first line of requirements.txt is not a package name but a direct URL to a Gradio wheel hosted on a third-party machine at public.agent-matrix.com, pinned to version 3.32.15. Everything after that line resolves from an index as usual. The single URL changes how an install fails, because a pip run that cannot reach that host stops before it resolves anything else, and the error names the URL rather than a version conflict. The rest of the file pins tightly: fastapi at 0.110, pydantic at 2.9.2, protobuf at 3.20, spacy at 3.7.4, pypdf2 at 2.12.1, and transformers constrained to a range above 4.27.1 and below 4.42. The README is explicit that you should install the versions specified in requirements.txt, which is advice worth following precisely because several of those ranges are narrow.

The minimal container drops LaTeX and every local model

There are two container paths and they do not do the same job. The Dockerfile is described as building a minimal runtime with no local model, and it redirects you to docker-compose.yml when you need chatglm style local models or the LaTeX runtime dependencies. The compose file's first option deploys the project's full capability in a large image that includes CUDA and LaTeX, and the file's own comment says that option is not recommended if your network is slow, your disk is small, or you have no graphics card. Because LaTeX translation and proofreading are among the headline plugins, the small image cannot deliver the features most people install this project for.

bash
docker build -t gpt-academic .
docker run --rm -it --net=host gpt-academic

Port exposure differs by platform and 12345 is not arbitrary

Exposing the service takes one of two forms and the compose file makes you pick. Method one is network_mode host, described as convenient on Linux but unsupported on Windows, and it is the default in the file. Method two maps a container port to a host port, is described as working on all systems including Windows and MacOS, and requires you to delete the network_mode line before adding it. The port number is not free choice: the comment states that 12345 must correspond to the WEB_PORT environment variable, while the Dockerfile's non-Linux example uses 50923 with WEB_PORT set to match. Choose wrongly and the container still starts while your browser waits on a port nothing is listening on. The final step in the file's own sequence is a compose up.

bash
docker-compose up

Keys live in config.py and a session key can supersede them

Model access is configured in one place, and several keys can coexist there. The documented form is a comma-separated list written into the config file, with the example showing an OpenAI key, a second OpenAI key, an Azure key and an api2d key inside one string. There is also a session-level override: type a temporary API_KEY into the input area and press enter, and it takes effect immediately. The project states that it is compatible with and encourages Chinese base models such as Tongyi Qianwen and Zhipu GLM, and the request_llms directory at the top of the tree holds the per-model integrations. The consequence is that credentials sit in config.py, a Python file in the repository, rather than in a secret store, and a temporary key typed during a session quietly supersedes the configured one until the process restarts.

The self-analysis report is generated by the tool it describes

Documentation comes from the same kind of model the project serves. The README states that every file's function is explained in a self-analysis report called self_analysis.md, and that you can regenerate that report whenever you want by clicking the relevant function plugin and having GPT redo the project's own parse. Translations work the same way: multi_language.py is provided for translating the project into an arbitrary language and is marked experimental. That makes the self-analysis a generated map rather than reviewed documentation, which is genuinely useful for navigating a codebase this size and unreliable as a specification, because nothing in the repository records a human reviewing it. Configuration questions and the FAQ are pointed at the wiki instead. The license is GPL-3.0 and the repository is not archived.

Editorial conclusion

Adopt gpt_academic if your work is LaTeX and PDF papers and you want one plugin per task instead of a chat box, and be ready to build the container yourself, because the pinned Gradio wheel and the CUDA plus LaTeX image are both things you cannot skip. Do not adopt it expecting a settled interface: the new frontend was still listed as Coming Soon on 2026-01-25, the date of the last push, while the newest tag, version3.91, is from 2024-12-19. Check first whether the third-party host still serves that Gradio wheel, because every install depends on it.

Frequently asked questions

What does gpt_academic do that a plain chat window does not?

It turns fixed tasks into plugins behind generated buttons. The listed plugins include one-click interpretation of LaTeX or PDF papers with a generated summary, full LaTeX translation and polishing, one-click analysis of a Python, C, C++, Java or Lua project tree, arxiv URL handling, and Mermaid rendering of flowcharts, Gantt charts and GitGraph diagrams.

How do you install gpt_academic?

The README instructs you to install the versions named in requirements.txt, using pip install -r requirements.txt. Container installs are documented too: a minimal Dockerfile built for running with no local model, and a compose file whose first option carries CUDA and LaTeX.

Can gpt_academic run a local model?

Yes, but not from the minimal image. The Dockerfile is described as an environment with no local model and points you to docker-compose.yml for chatglm style local models or the LaTeX runtime dependencies. The compose file also flags LOCAL_MODEL_DEVICE and the Nvidia GPU runtime as the settings to watch.

How current is gpt_academic?

The repository is not archived. The last push was on 2026-01-25, when the new GUI frontend was still listed as under test and Coming Soon, and the newest GitHub release is version3.91 from 2024-12-19.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/binary-husky-gpt-academic.svg)](https://hysenlabs.com/projects/binary-husky-gpt-academic)