> **Nota** > > Ao instalar as dependências, por favor, selecione rigorosamente as versões **especificadas** no arquivo requirements.txt. > > `pip install -r requirements.txt` > # Otimização acadêmica GPT (GPT Academic) **Se você gostou deste projeto, por favor dê um Star. Se você criou atalhos acadêmicos mais úteis ou plugins funcionais, sinta-se livre para abrir uma issue ou pull request. Nós também temos um README em [Inglês|](README_EN.md)[日本語|](README_JP.md)[한국어|](https://github.com/mldljyh/ko_gpt_academic)[Русский|](README_RS.md)[Français](README_FR.md) traduzidos por este próprio projeto. Para traduzir este projeto para qualquer idioma com o GPT, leia e execute [`multi_language.py`](multi_language.py) (experimental). > **Nota** > > 1. Por favor, preste atenção que somente os plugins de funções (botões) com a cor **vermelha** podem ler arquivos. Alguns plugins estão localizados no **menu suspenso** na área de plugins. Além disso, nós damos as boas-vindas com a **maior prioridade** e gerenciamos quaisquer novos plugins PR! > > 2. As funções de cada arquivo neste projeto são detalhadas em [`self_analysis.md`](https://github.com/binary-husky/gpt_academic/wiki/chatgpt-academic%E9%A1%B9%E7%9B%AE%E8%87%AA%E8%AF%91%E8%A7%A3%E6%8A%A5%E5%91%8A), auto-análises do projeto geradas pelo GPT também estão podem ser chamadas a qualquer momento ao clicar nos plugins relacionados. As perguntas frequentes estão resumidas no [`wiki`](https://github.com/binary-husky/gpt_academic/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98). [Instruções de Instalação](#installation). > > 3. Este projeto é compatível com e incentiva o uso de modelos de linguagem nacionais, como chatglm e RWKV, Pangolin, etc. Suporta a coexistência de várias chaves de API e pode ser preenchido no arquivo de configuração como `API_KEY="openai-key1,openai-key2,api2d-key3"`. Quando precisar alterar temporariamente o `API_KEY`, basta digitar o `API_KEY` temporário na área de entrada e pressionar Enter para que ele entre em vigor.
Funcionalidade | Descrição --- | --- Um clique de polimento | Suporte a um clique polimento, um clique encontrar erros de gramática no artigo Tradução chinês-inglês de um clique | Tradução chinês-inglês de um clique Explicação de código de um único clique | Exibir código, explicar código, gerar código, adicionar comentários ao código [Teclas de atalho personalizadas](https://www.bilibili.com/video/BV14s4y1E7jN) | Suporte a atalhos personalizados Projeto modular | Suporte para poderosos plugins[de função personalizada](https://github.com/binary-husky/gpt_academic/tree/master/crazy_functions), os plugins suportam[hot-reload](https://github.com/binary-husky/gpt_academic/wiki/%E5%87%BD%E6%95%B0%E6%8F%92%E4%BB%B6%E6%8C%87%E5%8D%97) [Análise automática do programa](https://www.bilibili.com/video/BV1cj411A7VW) | [Plugin de função][um clique para entender](https://github.com/binary-husky/gpt_academic/wiki/chatgpt-academic%E9%A1%B9%E7%9B%AE%E8%87%AA%E8%AF%91%E8%A7%A3%E6%8A%A5%E5%91%8A) o código-fonte do projeto [Análise do programa](https://www.bilibili.com/video/BV1cj411A7VW) | [Plugin de função] Um clique pode analisar a árvore de projetos do Python/C/C++/Java/Lua/... Leitura de artigos, [tradução](https://www.bilibili.com/video/BV1KT411x7Wn) de artigos | [Plugin de função] um clique para interpretar o resumo de artigos LaTeX/PDF e gerar resumo Tradução completa LATEX, polimento|[Plugin de função] Uma clique para traduzir ou polir um artigo LATEX Geração em lote de comentários | [Plugin de função] Um clique gera comentários de função em lote [Tradução chinês-inglês](https://www.bilibili.com/video/BV1yo4y157jV/) markdown | [Plugin de função] Você viu o README em 5 linguagens acima? Relatório de análise de chat | [Plugin de função] Gera automaticamente um resumo após a execução [Funcionalidade de tradução de artigos completos em PDF](https://www.bilibili.com/video/BV1KT411x7Wn) | [Plugin de função] Extrai o título e o resumo do artigo PDF e traduz o artigo completo (multithread) Assistente arXiv | [Plugin de função] Insira o url do artigo arXiv para traduzir o resumo + baixar PDF Assistente de integração acadêmica do Google | [Plugin de função] Dê qualquer URL de página de pesquisa acadêmica do Google e deixe o GPT escrever[trabalhos relacionados](https://www.bilibili.com/video/BV1GP411U7Az/) Agregação de informações da Internet + GPT | [Plugin de função] Um clique para obter informações do GPT através da Internet e depois responde a perguntas para informações nunca ficarem desatualizadas Exibição de fórmulas/imagem/tabela | Pode exibir simultaneamente a forma de renderização e[TEX] das fórmulas, suporte a fórmulas e realce de código Suporte de plugins de várias linhas | Suporte a várias chamadas em linha do chatgpt, um clique para processamento[de massa de texto](https://www.bilibili.com/video/BV1FT411H7c5/) ou programa Tema gradio escuro | Adicione ``` /?__theme=dark``` ao final da url do navegador para ativar o tema escuro [Suporte para vários modelos LLM](https://www.bilibili.com/video/BV1wT411p7yf), suporte para a nova interface API2D | A sensação de ser atendido simultaneamente por GPT3.5, GPT4, [Chatglm THU](https://github.com/THUDM/ChatGLM-6B), [Moss Fudan](https://github.com/OpenLMLab/MOSS) deve ser ótima, certo? Mais modelos LLM incorporados, suporte para a implantação[huggingface](https://huggingface.co/spaces/qingxu98/gpt-academic) | Adicione interface Newbing (New Bing), suporte [JittorLLMs](https://github.com/Jittor/JittorLLMs) THU Introdução ao suporte do LLaMA, RWKV e Pan Gu Alpha Mais recursos novos mostrados (geração de imagens, etc.) ... | Consulte o final deste documento ...
- Nova interface (Modifique a opção LAYOUT em `config.py` para alternar entre o layout esquerdo/direito e o layout superior/inferior)
- All buttons are dynamically generated by reading functional.py, and you can add custom functions at will, liberating the clipboard
- Proofreading/errors correction
- If the output contains formulas, it will be displayed in both tex and rendering format at the same time, which is convenient for copying and reading
- Don't want to read the project code? Just show the whole project to chatgpt
- Mix the use of multiple large language models (ChatGLM + OpenAI-GPT3.5 + [API2D](https://api2d.com/)-GPT4)
--- # Instalação ## Installation-Method 1: Run directly (Windows, Linux or MacOS) 1. Download the project ```sh git clone https://github.com/binary-husky/gpt_academic.git cd gpt_academic ``` 2. Configure the API KEY In `config.py`, configure API KEY and other settings, [Special Network Environment Settings] (https://github.com/binary-husky/gpt_academic/issues/1). (P.S. When the program runs, it will first check whether there is a private configuration file named `config_private.py`, and use the configuration in it to cover the configuration with the same name in `config.py`. Therefore, if you can understand our configuration reading logic, we strongly recommend that you create a new configuration file named `config_private.py` next to `config.py`, and transfer (copy) the configuration in `config.py` to `config_private.py`. `config_private.py` is not controlled by git and can make your privacy information more secure. P.S. The project also supports configuring most options through `environment variables`. The writing format of environment variables is referenced to the `docker-compose` file. Reading priority: `environment variable` > `config_private.py` > `config.py`) 3. Install dependencies ```sh # (Option I: for those familiar with python)(python version is 3.9 or above, the newer the better), note: use the official pip source or the Alibaba pip source. Temporary solution for changing source: python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ python -m pip install -r requirements.txt # (Option II: for those who are unfamiliar with python) use anaconda, the steps are also similar (https://www.bilibili.com/video/BV1rc411W7Dr): conda create -n gptac_venv python=3.11 # create anaconda environment conda activate gptac_venv # activate anaconda environment python -m pip install -r requirements.txt # This step is the same as the pip installation step ```
If you need to support Tsinghua ChatGLM / Fudan MOSS as the backend, click to expand here

[Optional Step] If you need to support Tsinghua ChatGLM / Fudan MOSS as the backend, you need to install more dependencies (prerequisite: familiar with Python + used Pytorch + computer configuration is strong): ```sh # 【Optional Step I】support Tsinghua ChatGLM。Tsinghua ChatGLM Note: If you encounter a "Call ChatGLM fails cannot load ChatGLM parameters normally" error, refer to the following: 1: The default installed is torch+cpu version, and using cuda requires uninstalling torch and reinstalling torch+cuda; 2: If the model cannot be loaded due to insufficient computer configuration, you can modify the model accuracy in request_llm/bridge_chatglm.py and change AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True) to AutoTokenizer.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True) python -m pip install -r request_llm/requirements_chatglm.txt # 【Optional Step II】support Fudan MOSS python -m pip install -r request_llm/requirements_moss.txt git clone https://github.com/OpenLMLab/MOSS.git request_llm/moss # Note: When executing this line of code, you must be in the project root path # 【Optional Step III】Make sure that the AVAIL_LLM_MODELS in the config.py configuration file contains the expected model. Currently, all supported models are as follows (jittorllms series currently only supports docker solutions): AVAIL_LLM_MODELS = ["gpt-3.5-turbo", "api2d-gpt-3.5-turbo", "gpt-4", "api2d-gpt-4", "chatglm", "newbing", "moss"] # + ["jittorllms_rwkv", "jittorllms_pangualpha", "jittorllms_llama"] ```

4. Run ```sh python main.py ```5. Plugin de Função de Teste ``` - Função de modelo de plug-in de teste (exige que o GPT responda ao que aconteceu hoje na história), você pode usar esta função como modelo para implementar funções mais complexas Clique em "[Função de plug-in de modelo de demonstração] O que aconteceu hoje na história?" ``` ## Instalação - Método 2: Usando o Docker 1. Apenas ChatGPT (recomendado para a maioria das pessoas) ``` sh git clone https://github.com/binary-husky/gpt_academic.git # Baixar o projeto cd gpt_academic # Entrar no caminho nano config.py # Editar config.py com qualquer editor de texto configurando "Proxy", "API_KEY" e "WEB_PORT" (por exemplo, 50923), etc. docker build -t gpt-academic . # Instale # (Ùltima etapa - escolha 1) Dentro do ambiente Linux, é mais fácil e rápido usar `--net=host` docker run --rm -it --net=host gpt-academic # (Última etapa - escolha 2) Em ambientes macOS/windows, você só pode usar a opção -p para expor a porta do contêiner (por exemplo, 50923) para a porta no host docker run --rm -it -e WEB_PORT=50923 -p 50923:50923 gpt-academic ``` 2. ChatGPT + ChatGLM + MOSS (conhecimento de Docker necessário) ``` sh # Edite o arquivo docker-compose.yml, remova as soluções 1 e 3, mantenha a solução 2, e siga as instruções nos comentários do arquivo docker-compose up ``` 3. ChatGPT + LLAMA + Pangu + RWKV (conhecimento de Docker necessário) ``` sh # Edite o arquivo docker-compose.yml, remova as soluções 1 e 2, mantenha a solução 3, e siga as instruções nos comentários do arquivo docker-compose up ``` ## Instalação - Método 3: Outros Métodos de Implantação 1. Como usar URLs de proxy inverso/microsoft Azure API Basta configurar o API_URL_REDIRECT de acordo com as instruções em `config.py`. 2. Implantação em servidores em nuvem remotos (requer conhecimento e experiência de servidores em nuvem) Acesse [Wiki de implementação remota do servidor em nuvem](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%E6%8C%87%E5%8D%97) 3. Usando a WSL2 (sub-sistema do Windows para Linux) Acesse [Wiki da implantação da WSL2](https://github.com/binary-husky/gpt_academic/wiki/%E4%BD%BF%E7%94%A8WSL2%EF%BC%88Windows-Subsystem-for-Linux-%E5%AD%90%E7%B3%BB%E7%BB%9F%EF%BC%89%E9%83%A8%E7%BD%B2) 4. Como executar em um subdiretório (ex. `http://localhost/subpath`) Acesse [Instruções de execução FastAPI](docs/WithFastapi.md) 5. Execute usando o docker-compose Leia o arquivo docker-compose.yml e siga as instruções. # Uso Avançado ## Customize novos botões de acesso rápido / plug-ins de função personalizados 1. Personalizar novos botões de acesso rápido (atalhos acadêmicos) Abra `core_functional.py` em qualquer editor de texto e adicione os seguintes itens e reinicie o programa (Se o botão já foi adicionado e pode ser visto, prefixos e sufixos são compatíveis com modificações em tempo real e não exigem reinício do programa para ter efeito.) Por exemplo, ``` "Super Eng:": {   # Prefixo, será adicionado antes da sua entrada. Por exemplo, para descrever sua solicitação, como tradução, explicação de código, polimento, etc.   "Prefix": "Por favor, traduza o seguinte conteúdo para chinês e use uma tabela em Markdown para explicar termos próprios no texto: \n \n",   # Sufixo, será adicionado após a sua entrada. Por exemplo, emparelhado com o prefixo, pode colocar sua entrada entre aspas.   "Suffix": "", }, ```
2. Personalizar plug-ins de função Escreva plug-ins de função poderosos para executar tarefas que você deseja e não pensava possível. A dificuldade geral de escrever e depurar plug-ins neste projeto é baixa e, se você tem algum conhecimento básico de python, pode implementar suas próprias funções sobre o modelo que fornecemos. Para mais detalhes, consulte o [Guia do plug-in de função.](https://github.com/binary-husky/gpt_academic/wiki/%E5%87%BD%E6%95%B0%E6%8F%92%E4%BB%B6%E6%8C%87%E5%8D%97). --- # Última atualização ## Novas funções dinâmicas. 1. Função de salvamento de diálogo. Ao chamar o plug-in de função "Salvar diálogo atual", é possível salvar o diálogo atual em um arquivo html legível e reversível. Além disso, ao chamar o plug-in de função "Carregar arquivo de histórico de diálogo" no menu suspenso da área de plug-in, é possível restaurar uma conversa anterior. Dica: clicar em "Carregar arquivo de histórico de diálogo" sem especificar um arquivo permite visualizar o cache do arquivo html de histórico. Clicar em "Excluir todo o registro de histórico de diálogo local" permite excluir todo o cache de arquivo html.
2. Geração de relatório. A maioria dos plug-ins gera um relatório de trabalho após a conclusão da execução.
3. Design modular de funcionalidades, com interfaces simples, mas suporte a recursos poderosos
4. Este é um projeto de código aberto que é capaz de "auto-traduzir-se".
5. A tradução de outros projetos de código aberto é simples.
6. Recursos decorativos para o [live2d](https://github.com/fghrsh/live2d_demo) (desativados por padrão, é necessário modificar o arquivo `config.py`)
7. Suporte ao modelo de linguagem MOSS
8. Geração de imagens pelo OpenAI
9. Análise e resumo de áudio pelo OpenAI
10. Revisão e correção de erros de texto em Latex.
## Versão: - Versão 3.5(Todo): Usar linguagem natural para chamar todas as funções do projeto (prioridade alta) - Versão 3.4(Todo): Melhorar o suporte à multithread para o chatglm local - Versão 3.3: +Funções integradas de internet - Versão 3.2: Suporte a mais interfaces de parâmetros de plug-in (função de salvar diálogo, interpretação de códigos de várias linguagens, perguntas de combinações LLM arbitrárias ao mesmo tempo) - Versão 3.1: Suporte a perguntas a vários modelos de gpt simultaneamente! Suporte para api2d e balanceamento de carga para várias chaves api - Versão 3.0: Suporte ao chatglm e outros LLMs de pequeno porte - Versão 2.6: Refatoração da estrutura de plug-in, melhoria da interatividade e adição de mais plug-ins - Versão 2.5: Autoatualização, resolvendo problemas de token de texto excessivamente longo e estouro ao compilar grandes projetos - Versão 2.4: (1) Adição de funcionalidade de tradução de texto completo em PDF; (2) Adição de funcionalidade de mudança de posição da área de entrada; (3) Adição de opção de layout vertical; (4) Otimização de plug-ins de multithread. - Versão 2.3: Melhoria da interatividade de multithread - Versão 2.2: Suporte à recarga a quente de plug-ins - Versão 2.1: Layout dobrável - Versão 2.0: Introdução de plug-ins de função modular - Versão 1.0: Funcionalidades básicasgpt_academic desenvolvedores QQ grupo-2: 610599535 - Problemas conhecidos - Extensões de tradução de alguns navegadores podem interferir na execução do front-end deste software - Uma versão muito alta ou muito baixa do Gradio pode causar vários erros ## Referências e Aprendizado ``` Foi feita referência a muitos projetos excelentes em código, principalmente: # Projeto1: ChatGLM-6B da Tsinghua: https://github.com/THUDM/ChatGLM-6B # Projeto2: JittorLLMs da Tsinghua: https://github.com/Jittor/JittorLLMs # Projeto3: Edge-GPT: https://github.com/acheong08/EdgeGPT # Projeto4: ChuanhuChatGPT: https://github.com/GaiZhenbiao/ChuanhuChatGPT # Projeto5: ChatPaper: https://github.com/kaixindelele/ChatPaper # Mais: https://github.com/gradio-app/gradio https://github.com/fghrsh/live2d_demo ```