Spaces:
Running
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|日本語|한국어|Русский|Français traduzidos por este próprio projeto.
Para traduzir este projeto para qualquer idioma com o GPT, leia e execute multi_language.py (experimental).
Nota
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!
As funções de cada arquivo neste projeto são detalhadas em
self_analysis.md, 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 nowiki. Instruções de Instalação.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 oAPI_KEY, basta digitar oAPI_KEYtemporá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 | Suporte a atalhos personalizados |
| Projeto modular | Suporte para poderosos pluginsde função personalizada, os plugins suportamhot-reload |
| Análise automática do programa | [Plugin de função]um clique para entender o código-fonte do projeto |
| Análise do programa | [Plugin de função] Um clique pode analisar a árvore de projetos do Python/C/C++/Java/Lua/... |
| Leitura de artigos, tradução 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 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 | [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 escrevertrabalhos relacionados |
| 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 processamentode massa de texto 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, suporte para a nova interface API2D | A sensação de ser atendido simultaneamente por GPT3.5, GPT4, Chatglm THU, Moss Fudan deve ser ótima, certo? |
| Mais modelos LLM incorporados, suporte para a implantaçãohuggingface | Adicione interface Newbing (New Bing), suporte 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.pypara 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-GPT4)
Instalação
Installation-Method 1: Run directly (Windows, Linux or MacOS)
- Download the project
git clone https://github.com/binary-husky/gpt_academic.git
cd gpt_academic
- 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)
- Install dependencies
# (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):
# 【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"]
- Run
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
- ChatGPT + ChatGLM + MOSS (conhecimento de Docker necessário)
# 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
- ChatGPT + LLAMA + Pangu + RWKV (conhecimento de Docker necessário)
# 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
Como usar URLs de proxy inverso/microsoft Azure API Basta configurar o API_URL_REDIRECT de acordo com as instruções em
config.py.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
Usando a WSL2 (sub-sistema do Windows para Linux) Acesse Wiki da implantação da WSL2
Como executar em um subdiretório (ex.
http://localhost/subpath) Acesse Instruções de execução FastAPIExecute 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
- Personalizar novos botões de acesso rápido (atalhos acadêmicos)
Abra
core_functional.pyem 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": "",
},
- 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..
Última atualização
Novas funções dinâmicas.
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.
Geração de relatório. A maioria dos plug-ins gera um relatório de trabalho após a conclusão da execução.
Design modular de funcionalidades, com interfaces simples, mas suporte a recursos poderosos
Este é um projeto de código aberto que é capaz de "auto-traduzir-se".
A tradução de outros projetos de código aberto é simples.
Recursos decorativos para o live2d (desativados por padrão, é necessário modificar o arquivo
config.py)
Suporte ao modelo de linguagem MOSS
Geração de imagens pelo OpenAI
Análise e resumo de áudio pelo OpenAI
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