Nota
Ao instalar as dependências, por favor, selecione rigorosamente as versões especificadas no arquivo requirements.txt.
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
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_KEY
temporário na área de entrada e pressionar Enter para que ele entre em vigor.
- Nova interface (Modifique a opção LAYOUT em
config.py
para alternar entre o layout esquerdo/direito e o layout superior/inferior)
- 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/chatgpt_academic.git
cd chatgpt_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/chatgpt_academic.git # Baixar o projeto
cd chatgpt_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.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": "",
},
- 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.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.
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