MCPcopy
hub / github.com/binary-husky/gpt_academic

github.com/binary-husky/gpt_academic @version3.91 sqlite

repository ↗ · DeepWiki ↗ · release version3.91 ↗
1,569 symbols 6,908 edges 198 files 269 documented · 17%
README

[!IMPORTANT] frontier开发分支最新动态(2024.12.9): 更新对话时间线功能,优化xelatex论文翻译
wiki文档最新动态(2024.12.5): 更新ollama接入指南

2024.10.10: 突发停电,紧急恢复了提供whl包的文件服务器
2024.10.8: 版本3.90加入对llama-index的初步支持,版本3.80加入插件二级菜单功能(详见wiki)
2024.5.1: 加入Doc2x翻译PDF论文的功能,查看详情
2024.3.11: 全力支持Qwen、GLM、DeepseekCoder等中文大语言模型! SoVits语音克隆模块,查看详情 2024.1.17: 安装依赖时,请选择requirements.txt指定的版本。 安装命令:pip install -r requirements.txt。本项目完全开源免费,您可通过订阅在线服务的方式鼓励本项目的发展。

GPT 学术优化 (GPT Academic)

Github License Releases Installation Wiki PR

如果喜欢这个项目,请给它一个Star;如果您发明了好用的快捷键或插件,欢迎发pull requests!

If you like this project, please give it a Star. Read this in English | 日本語 | 한국어 | Русский | Français. All translations have been provided by the project itself. To translate this project to arbitrary language with GPT, read and run multi_language.py (experimental).

[!NOTE] 1.本项目中每个文件的功能都在自译解报告self_analysis.md详细说明。随着版本的迭代,您也可以随时自行点击相关函数插件,调用GPT重新生成项目的自我解析报告。常见问题请查阅wiki。 常规安装方法 一键安装脚本 配置说明 wiki

2.本项目兼容并鼓励尝试国内中文大语言基座模型如通义千问,智谱GLM等。支持多个api-key共存,可在配置文件中填写如API_KEY="openai-key1,openai-key2,azure-key3,api2d-key4"。需要临时更换API_KEY时,在输入区输入临时的API_KEY然后回车键提交即可生效。

功能(⭐= 近期新增功能) 描述
接入新模型 百度千帆与文心一言, 通义千问Qwen,上海AI-Lab书生,讯飞星火LLaMa2智谱GLM4,DALLE3, DeepseekCoder
⭐支持mermaid图像渲染 支持让GPT生成流程图、状态转移图、甘特图、饼状图、GitGraph等等(3.7版本)
⭐Arxiv论文精细翻译 (Docker) [插件] 一键以超高质量翻译arxiv论文,目前最好的论文翻译工具
实时语音对话输入 [插件] 异步监听音频,自动断句,自动寻找回答时机
⭐AutoGen多智能体插件 [插件] 借助微软AutoGen,探索多Agent的智能涌现可能!
⭐虚空终端插件 [插件] 能够使用自然语言直接调度本项目其他插件
润色、翻译、代码解释 一键润色、翻译、查找论文语法错误、解释代码
自定义快捷键 支持自定义快捷键
模块化设计 支持自定义强大的插件,插件支持热更新
程序剖析 [插件] 一键剖析Python/C/C++/Java/Lua/...项目树 或 自我剖析
读论文、翻译论文 [插件] 一键解读latex/pdf论文全文并生成摘要
Latex全文翻译润色 [插件] 一键翻译或润色latex论文
批量注释生成 [插件] 一键批量生成函数注释
Markdown中英互译 [插件] 看到上面5种语言的README了吗?就是出自他的手笔
PDF论文全文翻译功能 [插件] PDF论文提取题目&摘要+翻译全文(多线程)
Arxiv小助手 [插件] 输入arxiv文章url即可一键翻译摘要+下载PDF
Latex论文一键校对 [插件] 仿Grammarly对Latex文章进行语法、拼写纠错+输出对照PDF
谷歌学术统合小助手 [插件] 给定任意谷歌学术搜索页面URL,让gpt帮你写relatedworks
互联网信息聚合+GPT [插件] 一键让GPT从互联网获取信息回答问题,让信息永不过时
公式/图片/表格显示 可以同时显示公式的tex形式和渲染形式,支持公式、代码高亮
启动暗色主题 在浏览器url后面添加/?__theme=dark可以切换dark主题
多LLM模型支持 同时被GPT3.5、GPT4、清华ChatGLM2复旦MOSS伺候的感觉一定会很不错吧?
更多LLM模型接入,支持huggingface部署 加入Newbing接口(新必应),引入清华Jittorllms支持LLaMA盘古α
void-terminal pip包 脱离GUI,在Python中直接调用本项目的所有函数插件(开发中)
更多新功能展示 (图像生成等) …… 见本文档结尾处 ……
  • 新界面(修改config.py中的LAYOUT选项即可实现“左右布局”和“上下布局”的切换)

  • 所有按钮都通过读取functional.py动态生成,可随意加自定义功能,解放剪贴板

  • 润色/纠错

  • 如果输出包含公式,会以tex形式和渲染形式同时显示,方便复制和阅读

  • 懒得看项目代码?直接把整个工程炫ChatGPT嘴里

  • 多种大语言模型混合调用(ChatGLM + OpenAI-GPT3.5 + GPT4)

Installation

flowchart TD
    A{"安装方法"} --> W1("I. 🔑直接运行 (Windows, Linux or MacOS)")
    W1 --> W11["1. Python pip包管理依赖"]
    W1 --> W12["2. Anaconda包管理依赖(推荐⭐)"]

    A --> W2["II. 🐳使用Docker (Windows, Linux or MacOS)"]

    W2 --> k1["1. 部署项目全部能力的大镜像(推荐⭐)"]
    W2 --> k2["2. 仅在线模型(GPT, GLM4等)镜像"]
    W2 --> k3["3. 在线模型 + Latex的大镜像"]

    A --> W4["IV. 🚀其他部署方法"]
    W4 --> C1["1. Windows/MacOS 一键安装运行脚本(推荐⭐)"]
    W4 --> C2["2. Huggingface, Sealos远程部署"]
    W4 --> C4["3. ... 其他 ..."]

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

  1. 下载项目

    sh git clone --depth=1 https://github.com/binary-husky/gpt_academic.git cd gpt_academic

  2. 配置API_KEY等变量

    config.py中,配置API KEY等变量。特殊网络环境设置方法Wiki-项目配置说明

    「 程序会优先检查是否存在名为config_private.py的私密配置文件,并用其中的配置覆盖config.py的同名配置。如您能理解以上读取逻辑,我们强烈建议您在config.py同路径下创建一个名为config_private.py的新配置文件,并使用config_private.py配置项目,从而确保自动更新时不会丢失配置 」。

    「 支持通过环境变量配置项目,环境变量的书写格式参考docker-compose.yml文件或者我们的Wiki页面。配置读取优先级: 环境变量 > config_private.py > config.py 」。

  3. 安装依赖 ```sh # (选择I: 如熟悉python, python推荐版本 3.9 ~ 3.11)备注:使用官方pip源或者阿里pip源, 临时换源方法:python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ python -m pip install -r requirements.txt

    (选择II: 使用Anaconda)步骤也是类似的 (https://www.bilibili.com/video/BV1rc411W7Dr):

    conda create -n gptac_venv python=3.11 # 创建anaconda环境 conda activate gptac_venv # 激活anaconda环境 python -m pip install -r requirements.txt # 这个步骤和pip安装一样的步骤 ```

如果需要支持清华ChatGLM系列/复旦MOSS/RWKV作为后端,请点击展开此处

【可选步骤】如果需要支持清华ChatGLM系列/复旦MOSS作为后端,需要额外安装更多依赖(前提条件:熟悉Python + 用过Pytorch + 电脑配置够强):

# 【可选步骤I】支持清华ChatGLM3。清华ChatGLM备注:如果遇到"Call ChatGLM fail 不能正常加载ChatGLM的参数" 错误,参考如下: 1:以上默认安装的为torch+cpu版,使用cuda需要卸载torch重新安装torch+cuda; 2:如因本机配置不够无法加载模型,可以修改request_llm/bridge_chatglm.py中的模型精度, 将 AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True) 都修改为 AutoTokenizer.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True)
python -m pip install -r request_llms/requirements_chatglm.txt

# 【可选步骤II】支持清华ChatGLM4 注意:此模型至少需要24G显存
python -m pip install -r request_llms/requirements_chatglm4.txt
# 可使用modelscope下载ChatGLM4模型
# pip install modelscope
# modelscope download --model ZhipuAI/glm-4-9b-chat --local_dir ./THUDM/glm-4-9b-chat

# 【可选步骤III】支持复旦MOSS
python -m pip install -r request_llms/requirements_moss.txt
git clone --depth=1 https://github.com/OpenLMLab/MOSS.git request_llms/moss  # 注意执行此行代码时,必须处于项目根路径

# 【可选步骤IV】支持RWKV Runner
参考wiki:https://github.com/binary-husky/gpt_academic/wiki/%E9%80%82%E9%85%8DRWKV-Runner

# 【可选步骤V】确保config.py配置文件的AVAIL_LLM_MODELS包含了期望的模型,目前支持的全部模型如下(jittorllms系列目前仅支持docker方案):
AVAIL_LLM_MODELS = ["gpt-3.5-turbo", "api2d-gpt-3.5-turbo", "gpt-4", "api2d-gpt-4", "chatglm", "moss"] # + ["jittorllms_rwkv", "jittorllms_pangualpha", "jittorllms_llama"]

# 【可选步骤VI】支持本地模型INT8,INT4量化(这里所指的模型本身不是量化版本,目前deepseek-coder支持,后面测试后会加入更多模型量化选择)
pip install bitsandbyte
# windows用户安装bitsandbytes需要使用下面bitsandbytes-windows-webui
python -m pip install bitsandbytes --prefer-binary --extra-index-url=https://jllllll.github.io/bitsandbytes-windows-webui
pip install -U git+https://github.com/huggingface/transformers.git
pip install -U git+https://github.com/huggingface/accelerate.git
pip install peft
  1. 运行 sh python main.py

安装方法II:使用Docker

  1. 部署项目的全部能力(这个是包含cuda和latex的大型镜像。但如果您网速慢、硬盘小,则不推荐该方法部署完整项目) fullcapacity

    ``` sh

    修改docker-compose.yml,保留方案0并删除其他方案。然后运行:

    docker-compose up ```

  2. 仅ChatGPT + GLM4 + 文心一言+spark等在线模型(推荐大多数人选择) basic basiclatex basicaudio

    ``` sh

    修改docker-compose.yml,保留方案1并删除其他方案。然后运行:

    docker-compose up ```

P.S. 如果需要依赖Latex的插件功能,请见Wiki。另外,您也可以直接使用方案4或者方案0获取Latex功能。

  1. ChatGPT + GLM3 + MOSS + LLAMA2 + 通义千问(需要熟悉Nvidia Docker运行时) chatglm

    ``` sh

    修改docker-compose.yml,保留方案2并删除其他方案。然后运行:

    docker-compose up ```

安装方法III:其他部署方法

  1. Windows一键运行脚本。 完全不熟悉python环境的Windows用户可以下载Release中发布的一键运行脚本安装无本地模型的版本。脚本贡献来源:oobabooga

  2. 使用第三方API、Azure等、文心一言、星火等,见Wiki页面

  3. 云服务器远程部署避坑指南。 请访问[云服务器远程部署wiki](https://github.com/binary-husky/gpt_academic/wiki/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%9C%E7%A8%8B%E9%83%A8%E7%BD%B2%E

Core symbols most depended-on inside this repo

update_ui
called by 443
toolbox.py
get
called by 228
crazy_functions/agent_fns/persistent.py
split
called by 149
crazy_functions/latex_fns/latex_actions.py
get_conf
called by 129
shared_utils/config_loader.py
update
called by 93
themes/welcome.js
report_exception
called by 92
toolbox.py
update_ui_lastest_msg
called by 86
toolbox.py
trimmed_format_exc
called by 82
toolbox.py

Shape

Function 950
Method 486
Class 128
Route 5

Languages

Python81%
TypeScript19%

Modules by API surface

themes/waifu_plugin/live2d.js83 symbols
themes/waifu_plugin/jquery.min.js75 symbols
themes/common.js64 symbols
toolbox.py63 symbols
request_llms/edge_gpt_free.py49 symbols
shared_utils/colorful.py36 symbols
crazy_functions/latex_fns/latex_toolbox.py33 symbols
request_llms/local_llm_class.py28 symbols
themes/tts.js25 symbols
crazy_functions/crazy_utils.py21 symbols
shared_utils/fastapi_server.py20 symbols
crazy_functions/latex_fns/latex_actions.py20 symbols

Dependencies from manifests, versioned

anthropic0.18.1 · 1×
edge-tts7.0.0 · 1×
fastapi0.110 · 1×
gradio-client0.8 · 1×
httpx0.25.2 · 1×
jittor1.3.7.9 · 1×
jtorch0.1.3 · 1×
linkify-it-py2.0.3 · 1×
llama-index-core0.10.68 · 1×
llama-index-embeddings-azure-openai0.1.10 · 1×
llama-index-embeddings-openai0.1.10 · 1×
llama-index-legacy0.9.48 · 1×

For agents

$ claude mcp add gpt_academic \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact