Spaces:
Running
Nota
Este README foi traduzido pelo GPT (implementado por um plugin deste projeto) e não é 100% confiável. Por favor, verifique cuidadosamente o resultado da tradução.
7 de novembro de 2023: Ao instalar as dependências, favor selecionar as versões especificadas no
requirements.txt
. Comando de instalação:pip install -r requirements.txt
.
GPT Acadêmico
![](/spaces/eastsheng/gpt_academic/resolve/main/docs/logo.png)
Se você gosta deste projeto, por favor, dê uma estrela nele. Se você inventou atalhos de teclado ou plugins úteis, fique à vontade para criar pull requests!
Para traduzir este projeto para qualquer idioma utilizando o GPT, leia e execute multi_language.py
(experimental).
Nota
Observe que apenas os plugins (botões) marcados em destaque são capazes de ler arquivos, alguns plugins estão localizados no menu suspenso do plugin area. Também damos boas-vindas e prioridade máxima a qualquer novo plugin via PR.
As funcionalidades de cada arquivo deste projeto estão detalhadamente explicadas em autoanálise
self_analysis.md
. Com a iteração das versões, você também pode clicar nos plugins de funções relevantes a qualquer momento para chamar o GPT para regerar o relatório de autonálise do projeto. Perguntas frequenteswiki
| Método de instalação convencional | Script de instalação em um clique | Explicação de configuração。Este projeto é compatível e encoraja o uso de modelos de linguagem chineses, como ChatGLM. Vários api-keys podem ser usados simultaneamente, podendo ser especificados no arquivo de configuração como
API_KEY="openai-key1,openai-key2,azure-key3,api2d-key4"
. Quando precisar alterar temporariamente oAPI_KEY
, insira oAPI_KEY
temporário na área de entrada e pressione Enter para que ele seja efetivo.
Funcionalidades (⭐= funcionalidade recentemente adicionada) | Descrição |
---|---|
⭐Integração com novos modelos! | Qianfan da Baidu, Wenxin e Tongyi Qianwen, Shusheng da Shanghai AI-Lab, Xinghuo da Iflytek, LLaMa2, Zhipu API, DALLE3 |
Aprimoramento, tradução, explicação de códigos | Aprimoramento com um clique, tradução, busca de erros gramaticais em artigos e explicação de códigos |
Atalhos de teclado personalizados | Suporte para atalhos de teclado personalizados |
Design modular | Suporte a plugins poderosos e personalizáveis, plugins com suporte a atualização a quente |
Análise de código | [Plugin] Análise instantânea da estrutura de projetos em Python/C/C++/Java/Lua/... ou autoanálise |
Leitura de artigos, tradução de artigos | [Plugin] Interpretação instantânea de artigos completos em latex/pdf e geração de resumos |
Tradução completa de artigos em latex PDF, aprimoramento | [Plugin] Tradução completa ou aprimoramento de artigos em latex com um clique |
Geração em lote de comentários | [Plugin] Geração em lote de comentários de funções com um clique |
Tradução (inglês-chinês) de Markdown | [Plugin] Você já viu o README nas 5 línguas acima? |
Criação de relatório de análise de bate-papo | [Plugin] Geração automática de relatório de resumo após a execução |
Tradução completa de artigos em PDF | [Plugin] Extração de título e resumo de artigos em PDF + tradução completa (multithreading) |
Auxiliar Arxiv | [Plugin] Insira o URL de um artigo Arxiv para traduzir o resumo + baixar o PDF com um clique |
Correção automática de artigos em latex | [Plugin] Correções gramaticais e ortográficas de artigos em latex semelhante ao Grammarly + saída PDF comparativo |
Auxiliar Google Scholar | [Plugin] Insira qualquer URL da busca do Google Acadêmico e deixe o GPT escrever trabalhos relacionados para você |
Agregação de informações da Internet + GPT | [Plugin] Capturar informações da Internet e obter respostas de perguntas com o GPT em um clique, para que as informações nunca fiquem desatualizadas |
⭐Tradução refinada de artigos do Arxiv (Docker) | [Plugin] Tradução de alta qualidade de artigos do Arxiv com um clique, a melhor ferramenta de tradução de artigos atualmente |
⭐Entrada de conversa de voz em tempo real | [Plugin] Monitoramento de áudio assíncrono, segmentação automática de frases, detecção automática de momentos de resposta |
Exibição de fórmulas, imagens e tabelas | Exibição de fórmulas em formato tex e renderizadas simultaneamente, suporte a fórmulas e destaque de código |
⭐Plugin AutoGen para vários agentes | [Plugin] Explore a emergência de múltiplos agentes com o AutoGen da Microsoft! |
Ativar o tema escuro | Adicione /?__theme=dark ao final da URL para alternar para o tema escuro |
Suporte a múltiplos modelos LLM | Ser atendido simultaneamente pelo GPT3.5, GPT4, ChatGLM2 do Tsinghua University e MOSS da Fudan University se sente incrível, não é mesmo? |
⭐Modelo de ajuste fino ChatGLM2 | Suporte para carregar o modelo ChatGLM2 ajustado e fornecer plugins de assistência ao ajuste fino do ChatGLM2 |
Mais modelos LLM e suporte para implantação pela HuggingFace | Integração com a interface Newbing (Bing novo), introdução do Jittorllms da Tsinghua University com suporte a LLaMA e Panguα |
⭐Pacote pip void-terminal | Chame todas as funções plugins deste projeto diretamente em Python, sem a GUI (em desenvolvimento) |
⭐Plugin Terminal do Vácuo | [Plugin] Chame outros plugins deste projeto diretamente usando linguagem natural |
Apresentação de mais novas funcionalidades (geração de imagens, etc.) ... | Veja no final deste documento ... |
Nova interface (altere a opção LAYOUT em
config.py
para alternar entre os "Layouts de lado a lado" e "Layout de cima para baixo")Todos os botões são gerados dinamicamente através da leitura do
functional.py
, você pode adicionar funcionalidades personalizadas à vontade, liberando sua área de transferênciaAprimoramento/Correção
Se a saída contiver fórmulas, elas serão exibidas tanto em formato tex quanto renderizado para facilitar a cópia e a leitura.
Não tem vontade de ver o código do projeto? O projeto inteiro está diretamente na boca do chatgpt.
Combinação de vários modelos de linguagem (ChatGLM + OpenAI-GPT3.5 + API2D-GPT4)
Instalação
Método de instalação I: Executar diretamente (Windows, Linux ou MacOS)
- Baixe o projeto
git clone --depth=1 https://github.com/binary-husky/gpt_academic.git
cd gpt_academic
- Configure a API_KEY
No arquivo config.py
, configure a API KEY e outras configurações. Clique aqui para ver o método de configuração em redes especiais. Página Wiki.
「 O programa verificará primeiro se existe um arquivo de configuração privada chamado config_private.py
e substituirá as configurações correspondentes no arquivo config.py
. Se você entender essa lógica de leitura, é altamente recomendável criar um novo arquivo de configuração chamado config_private.py
ao lado do config.py
e copiar as configurações do config.py
para o config_private.py
(copiando apenas os itens de configuração que você modificou). 」
「 Suporte para configurar o projeto por meio de variáveis de ambiente
, o formato de gravação das variáveis de ambiente pode ser encontrado no arquivo docker-compose.yml
ou em nossa página Wiki. A prioridade de leitura das configurações é: variáveis de ambiente
> config_private.py
> config.py
. 」
- Instale as dependências
# (Opção I: Se você está familiarizado com o Python, Python>=3.9) Observação: Use o pip oficial ou o pip da Aliyun. Método temporário para alternar fontes: python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python -m pip install -r requirements.txt
# (Opção II: Use o Anaconda) Os passos também são semelhantes (https://www.bilibili.com/video/BV1rc411W7Dr):
conda create -n gptac_venv python=3.11 # Crie um ambiente do Anaconda
conda activate gptac_venv # Ative o ambiente do Anaconda
python -m pip install -r requirements.txt # Este passo é igual ao da instalação do pip
Se você quiser suporte para o ChatGLM2 do THU/ MOSS do Fudan/RWKV como backend, clique para expandir
[Opcional] Se você quiser suporte para o ChatGLM2 do THU/ MOSS do Fudan, precisará instalar dependências extras (pré-requisitos: familiarizado com o Python + já usou o PyTorch + o computador tem configuração suficiente):
# [Opcional Passo I] Suporte para ChatGLM2 do THU. Observações sobre o ChatGLM2 do THU: Se você encontrar o erro "Call ChatGLM fail 不能正常加载ChatGLM的参数" (Falha ao chamar o ChatGLM, não é possível carregar os parâmetros do ChatGLM), consulte o seguinte: 1: A versão instalada por padrão é a versão torch+cpu. Se você quiser usar a versão cuda, desinstale o torch e reinstale uma versão com torch+cuda; 2: Se a sua configuração não for suficiente para carregar o modelo, você pode modificar a precisão do modelo em request_llm/bridge_chatglm.py, alterando todas as ocorrências de AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True) para AutoTokenizer.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True)
python -m pip install -r request_llms/requirements_chatglm.txt
# [Opcional Passo II] Suporte para MOSS do Fudan
python -m pip install -r request_llms/requirements_moss.txt
git clone --depth=1 https://github.com/OpenLMLab/MOSS.git request_llms/moss # Observe que você deve estar no diretório raiz do projeto ao executar este comando
# [Opcional Passo III] Suporte para RWKV Runner
Consulte a página Wiki: https://github.com/binary-husky/gpt_academic/wiki/%E9%80%82%E9%85%8DRWKV-Runner
# [Opcional Passo IV] Verifique se o arquivo de configuração config.py contém os modelos desejados, os modelos compatíveis são os seguintes (a série jittorllms suporta apenas a solução 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"]
- Execute
python main.py
Método de instalação II: Usando o Docker
- Implante todas as capacidades do projeto (este é um contêiner grande que inclui CUDA e LaTeX. Não recomendado se você tiver uma conexão lenta com a internet ou pouco espaço em disco)
# Modifique o arquivo docker-compose.yml para incluir apenas a seção 0 e excluir as outras seções. Em seguida, execute:
docker-compose up
# Modifique o arquivo docker-compose.yml para incluir apenas a seção 1 e excluir as outras seções. Em seguida, execute:
docker-compose up
Obs.: Se você precisar do plugin Latex, consulte a Wiki. Além disso, você também pode usar a seção 4 ou 0 para obter a funcionalidade do LaTeX.
- ChatGPT + ChatGLM2 + MOSS + LLAMA2 + 通义千问 (você precisa estar familiarizado com o Nvidia Docker para executar este modo)
# Modifique o arquivo docker-compose.yml para incluir apenas a seção 2 e excluir as outras seções. Em seguida, execute:
docker-compose up
Método de instalação III: Outros métodos de implantação
Script de execução com um clique para Windows. Usuários do Windows que não estão familiarizados com o ambiente Python podem baixar o script de execução com um clique da Release para instalar a versão sem modelos locais. A contribuição do script vem de oobabooga.
Usar APIs de terceiros, Azure, etc., 文心一言, 星火, consulte a página Wiki.
Guia para evitar armadilhas na implantação em servidor em nuvem. Consulte o wiki de implantação em servidor em nuvem.
Algumas novas plataformas ou métodos de implantação
- Use Sealos implantação com um clique.
- Use o WSL2 (Subsistema do Windows para Linux). Consulte wiki de implantação.
- Como executar em um subdiretório da URL (como
http://localhost/subpath
). Consulte instruções de execução com o FastAPI
Uso Avançado
I: Personalização de Novos Botões de Atalho (Atalhos Acadêmicos)
Abra o arquivo core_functional.py
em qualquer editor de texto, adicione o seguinte item e reinicie o programa. (Se o botão já existir, o prefixo e o sufixo podem ser modificados a qualquer momento sem reiniciar o programa).
Por exemplo:
"超级英译中": {
# Prefixo, adicionado antes do seu input. Por exemplo, usado para descrever sua solicitação, como traduzir, explicar o código, revisar, etc.
"Prefix": "Por favor, traduza o parágrafo abaixo para o chinês e explique cada termo técnico dentro de uma tabela markdown:\n\n",
# Sufixo, adicionado após o seu input. Por exemplo, em conjunto com o prefixo, pode-se colocar seu input entre aspas.
"Suffix": "",
},
![](https://user-images.githubusercontent.com/96192199/226899272-477c2134-ed71-4326-810c-29891fe4a508.png)
II: Personalização de Funções Plugins
Crie poderosos plugins de função para executar tarefas que você pode e não pode imaginar. Criar plugins neste projeto é fácil, basta seguir o modelo fornecido, desde que você tenha conhecimento básico de Python. Consulte o Guia dos Plugins de Função para mais detalhes.
Atualizações
I: Dinâmico
Função de salvar conversas. Chame a função "Salvar a conversa atual" na área de plugins para salvar a conversa atual em um arquivo HTML legível e recuperável. Além disso, chame a função "Carregar histórico de conversas" na área de plugins (menu suspenso) para restaurar conversas anteriores. Dica: Se você clicar diretamente em "Carregar histórico de conversas" sem especificar o arquivo, poderá visualizar o cache do histórico do arquivo HTML.
⭐Tradução de artigos Latex/Arxiv⭐
===>
Terminal vazio (entendendo a intenção do usuário a partir do texto em linguagem natural e chamando automaticamente outros plugins)
- Passo 1: Digite "Por favor, chame o plugin 'Traduzir artigo PDF' e forneça o link https://openreview.net/pdf?id=rJl0r3R9KX"
- Passo 2: Clique em "Terminal vazio"
Design de recursos modular, interface simples com suporte a recursos poderosos
Tradução e interpretação de outros projetos de código aberto
Recursos adicionais para live2d (desativados por padrão, requer modificação no arquivo
config.py
)Geração de imagens pela OpenAI
Análise e resumo de áudio pela OpenAI
Correção de erros em texto e código LaTeX
===>
Alternância de idioma e tema
II: Versões:
- Versão 3.70 (a fazer): Melhorar o plugin AutoGen e projetar uma série de plugins relacionados.
- Versão 3.60: Introdução do AutoGen como base para a próxima geração de plugins.
- Versão 3.57: Suporte para GLM3, Starfire v3, Wenxin Yiyan v4, correção de bugs relacionados a modelos locais executados simultaneamente.
- Versão 3.56: Suporte para adicionar dinamicamente botões de função básicos e nova página de resumo em PDF.
- Versão 3.55: Reformulação da interface do usuário, introdução de janelas flutuantes e menus.
- Versão 3.54: Novo interpretador de código dinâmico (Code Interpreter) (em desenvolvimento)
- Versão 3.53: Suporte para alterar dinamicamente o tema da interface, melhorias de estabilidade e correção de conflitos entre vários usuários.
- Versão 3.50: Chamada de todas as funções de plugins deste projeto usando linguagem natural (Terminal vazio), suporte a categorização de plugins, melhorias na interface do usuário e design de novos temas.
- Versão 3.49: Suporte para Baidu Qianfan Platform e Wenxin Yiyan.
- Versão 3.48: Suporte para Alibaba DAMO Academy Tongyi Qianwen, Shanghai AI-Lab Shusheng e Xunfei Xinghuo.
- Versão 3.46: Suporte para diálogos em tempo real totalmente automáticos.
- Versão 3.45: Suporte para personalização do modelo ChatGLM2.
- Versão 3.44: Suporte oficial ao Azure, aprimoramentos na usabilidade da interface.
- Versão 3.4: Tradução completa de artigos Arxiv/Latex, correção de artigos Latex.
- Versão 3.3: Funcionalidade de consulta a informações na internet.
- Versão 3.2: Maior suporte para parâmetros de função de plugins (função de salvar conversas, interpretação de código em qualquer linguagem + perguntas sobre combinações LLM arbitrariamente).
- Versão 3.1: Suporte para fazer perguntas a modelos GPT múltiplos! Suporte para API2D, balanceamento de carga em vários APIKeys.
- Versão 3.0: Suporte para chatglm e outros pequenos modelos LLM.
- Versão 2.6: Refatoração da estrutura de plugins, melhoria na interação, adição de mais plugins.
- Versão 2.5: Auto-atualizável, resolve problemas de texto muito longo ou estouro de tokens ao resumir grandes projetos de código.
- Versão 2.4: (1) Novo recurso de tradução completa de PDF; (2) Nova função para alternar a posição da área de input; (3) Nova opção de layout vertical; (4) Melhoria dos plugins de função em várias threads.
- Versão 2.3: Melhorias na interação em várias threads.
- Versão 2.2: Suporte para recarregar plugins sem reiniciar o programa.
- Versão 2.1: Layout dobrável.
- Versão 2.0: Introdução de plugins de função modular.
- Versão 1.0: Funcionalidades básicas.
GPT Academic QQ Group: 610599535
- Problemas conhecidos
- Alguns plugins de tradução de navegadores podem interferir na execução deste software.
- A biblioteca Gradio possui alguns bugs de compatibilidade conhecidos. Certifique-se de instalar o Gradio usando o arquivo
requirement.txt
.
III: Temas
Você pode alterar o tema atualizando a opção THEME
(config.py).
Chuanhu-Small-and-Beautiful
Link
IV: Branches de Desenvolvimento deste Projeto
- Branch
master
: Branch principal, versão estável. - Branch
frontier
: Branch de desenvolvimento, versão de teste.
V: Referências para Aprendizado
O código referenciou muitos projetos excelentes, em ordem aleatória:
# Tsinghua ChatGLM2-6B:
https://github.com/THUDM/ChatGLM2-6B
# Tsinghua JittorLLMs:
https://github.com/Jittor/JittorLLMs
# ChatPaper:
https://github.com/kaixindelele/ChatPaper
# Edge-GPT:
https://github.com/acheong08/EdgeGPT
# ChuanhuChatGPT:
https://github.com/GaiZhenbiao/ChuanhuChatGPT
# Oobabooga instalador com um clique:
https://github.com/oobabooga/instaladores-de-um-clique
# Mais:
https://github.com/gradio-app/gradio
https://github.com/fghrsh/live2d_demo