Gnib's picture
Upload 834 files
444f09e verified
|
raw
history blame
25.5 kB

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

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

  1. 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.

  2. 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 frequentes wiki | Método de instalação convencional | Script de instalação em um clique | Explicação de configuração

  3. 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 o API_KEY, insira o API_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ência

  • Aprimoramento/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)

  1. Baixe o projeto
git clone --depth=1 https://github.com/binary-husky/gpt_academic.git
cd gpt_academic
  1. 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. 」

  1. 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"]

  1. Execute
python main.py

Método de instalação II: Usando o Docker

  1. 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) fullcapacity
# 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
  1. ChatGPT + 文心一言 + spark + outros modelos online (recomendado para a maioria dos usuários) basic basiclatex basicaudio
# 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.

  1. ChatGPT + ChatGLM2 + MOSS + LLAMA2 + 通义千问 (você precisa estar familiarizado com o Nvidia Docker para executar este modo) chatglm
# 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

  1. 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.

  2. Usar APIs de terceiros, Azure, etc., 文心一言, 星火, consulte a página Wiki.

  3. Guia para evitar armadilhas na implantação em servidor em nuvem. Consulte o wiki de implantação em servidor em nuvem.

  4. Algumas novas plataformas ou métodos de implantação

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": "",
},

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

  1. 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.

  2. ⭐Tradução de artigos Latex/Arxiv⭐

    ===>
  3. Terminal vazio (entendendo a intenção do usuário a partir do texto em linguagem natural e chamando automaticamente outros plugins)

  1. Design de recursos modular, interface simples com suporte a recursos poderosos

  2. Tradução e interpretação de outros projetos de código aberto

  3. Recursos adicionais para live2d (desativados por padrão, requer modificação no arquivo config.py)

  4. Geração de imagens pela OpenAI

  5. Análise e resumo de áudio pela OpenAI

  6. Correção de erros em texto e código LaTeX

    ===>
  7. 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).

  1. Chuanhu-Small-and-Beautiful Link

IV: Branches de Desenvolvimento deste Projeto

  1. Branch master: Branch principal, versão estável.
  2. 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