Nota
Durante l'installazione delle dipendenze, selezionare rigorosamente le versioni specificate nel file requirements.txt.
pip install -r requirements.txt
GPT Ottimizzazione Accademica (GPT Academic)
**Se ti piace questo progetto, ti preghiamo di dargli una stella. Se hai sviluppato scorciatoie accademiche o plugin funzionali più utili, non esitare ad aprire una issue o pull request. Abbiamo anche una README in Inglese|Giapponese|Coreano|Russo|Francese tradotta da questo stesso progetto.
Per tradurre questo progetto in qualsiasi lingua con GPT, leggere e eseguire multi_language.py
(sperimentale).
Nota
Si prega di notare che solo i plugin (pulsanti) contrassegnati in rosso supportano la lettura di file, alcuni plugin sono posizionati nel menu a discesa nella zona dei plugin. Accettiamo e gestiamo PR per qualsiasi nuovo plugin con massima priorità!
Le funzionalità di ogni file di questo progetto sono descritte dettagliatamente nella propria analisi di autotraduzione
self_analysis.md
. Con l'iterazione delle versioni, è possibile fare clic sui plugin funzionali correlati in qualsiasi momento per richiamare GPT e generare nuovamente il rapporto di analisi automatica del progetto. Le domande frequenti sono riassunte nellawiki
. [Metodo di installazione] (#installazione).Questo progetto è compatibile e incoraggia l'utilizzo di grandi modelli di linguaggio di produzione nazionale come chatglm, RWKV, Pangu ecc. Supporta la coesistenza di più api-key e può essere compilato nel file di configurazione come
API_KEY="openai-key1,openai-key2,api2d-key3"
. Per sostituire temporaneamenteAPI_KEY
, inserireAPI_KEY
temporaneo nell'area di input e premere Invio per renderlo effettivo.
Funzione | Descrizione |
---|---|
Correzione immediata | Supporta correzione immediata e ricerca degli errori di grammatica del documento con un solo clic |
Traduzione cinese-inglese immediata | Traduzione cinese-inglese immediata con un solo clic |
Spiegazione del codice immediata | Visualizzazione del codice, spiegazione del codice, generazione del codice, annotazione del codice con un solo clic |
Scorciatoie personalizzate | Supporta scorciatoie personalizzate |
Design modularizzato | Supporta potenti plugin di funzioni personalizzati, i plugin supportano l'aggiornamento in tempo reale |
Auto-profiling del programma | [Plugin di funzioni] Comprensione immediata del codice sorgente di questo progetto |
Analisi del programma | [Plugin di funzioni] Un clic può analizzare l'albero di altri progetti Python/C/C++/Java/Lua/... |
Lettura del documento, traduzione del documento | [Plugin di funzioni] La lettura immediata dell'intero documento latex/pdf di un documento e la generazione di un riassunto |
Traduzione completa di un documento Latex, correzione immediata | [Plugin di funzioni] Una traduzione o correzione immediata di un documento Latex |
Generazione di annotazioni in batch | [Plugin di funzioni] Generazione automatica delle annotazioni di funzione con un solo clic |
Traduzione cinese-inglese di Markdown | [Plugin di funzioni] Hai letto il README delle cinque lingue sopra? |
Generazione di report di analisi di chat | [Plugin di funzioni] Generazione automatica di un rapporto di sintesi dopo l'esecuzione |
Funzione di traduzione di tutto il documento PDF | [Plugin di funzioni] Estrarre il titolo e il sommario dell'articolo PDF + tradurre l'intero testo (multithreading) |
Assistente di Arxiv | [Plugin di funzioni] Inserire l'URL dell'articolo di Arxiv e tradurre il sommario con un clic + scaricare il PDF |
Assistente integrato di Google Scholar | [Plugin di funzioni] Con qualsiasi URL di pagina di ricerca di Google Scholar, lascia che GPT ti aiuti a scrivere il tuo relatedworks |
Aggregazione delle informazioni su Internet + GPT | [Plugin di funzioni] Fai in modo che GPT rilevi le informazioni su Internet prima di rispondere alle domande, senza mai diventare obsolete |
Visualizzazione di formule/img/tabelle | È possibile visualizzare un'equazione in forma tex e render contemporaneamente, supporta equazioni e evidenziazione del codice |
Supporto per plugin di funzioni multithreading | Supporto per chiamata multithreaded di chatgpt, elaborazione con un clic di grandi quantità di testo o di un programma |
Avvia il tema di gradio scuro | Aggiungere /?__theme=dark dopo l'URL del browser per passare a un tema scuro |
Supporto per maggiori modelli LLM, supporto API2D | Sentirsi serviti simultaneamente da GPT3.5, GPT4, Tsinghua ChatGLM, Fudan MOSS deve essere una grande sensazione, giusto? |
Ulteriori modelli LLM supportat,i supporto per l'implementazione di Huggingface | Aggiunta di un'interfaccia Newbing (Nuovo Bing), introdotta la compatibilità con Tsinghua Jittorllms, LLaMA, RWKV e PanGu-α |
Ulteriori dimostrazioni di nuove funzionalità (generazione di immagini, ecc.)... | Vedere la fine di questo documento... |
Nuova interfaccia (modificare l'opzione LAYOUT in
config.py
per passare dal layout a sinistra e a destra al layout superiore e inferiore)Tutti i pulsanti vengono generati dinamicamente leggendo il file functional.py, e aggiungerci nuove funzionalità è facile, liberando la clipboard.
Revisione/Correzione
Se l'output contiene una formula, viene visualizzata sia come testo che come formula renderizzata, per facilitare la copia e la visualizzazione.
Non hai tempo di leggere il codice del progetto? Passa direttamente a chatgpt e chiedi informazioni.
Chiamata mista di vari modelli di lingua di grandi dimensioni (ChatGLM + OpenAI-GPT3.5 + API2D-GPT4)
Installazione
Installazione - Metodo 1: Esecuzione diretta (Windows, Linux o MacOS)
- Scarica il progetto
git clone https://github.com/binary-husky/gpt_academic.git
cd gpt_academic
- Configura API_KEY
In config.py
, configura la tua API KEY e altre impostazioni, configs for special network environments.
(N.B. Quando il programma viene eseguito, verifica prima se esiste un file di configurazione privato chiamato config_private.py
e sovrascrive le stesse configurazioni in config.py
. Pertanto, se capisci come funziona la nostra logica di lettura della configurazione, ti consigliamo vivamente di creare un nuovo file di configurazione chiamato config_private.py
accanto a config.py
, e spostare (copiare) le configurazioni di config.py
in config_private.py
. 'config_private.py' non è sotto la gestione di git e può proteggere ulteriormente le tue informazioni personali. NB Il progetto supporta anche la configurazione della maggior parte delle opzioni tramite "variabili d'ambiente". La sintassi della variabile d'ambiente è descritta nel file docker-compose
. Priorità di lettura: "variabili d'ambiente" > "config_private.py" > "config.py")
- Installa le dipendenze
# (Scelta I: se sei familiare con python) (python 3.9 o superiore, più nuovo è meglio), N.B.: utilizza il repository ufficiale pip o l'aliyun pip repository, metodo temporaneo per cambiare il repository: python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python -m pip install -r requirements.txt
# (Scelta II: se non conosci Python) utilizza anaconda, il processo è simile (https://www.bilibili.com/video/BV1rc411W7Dr):
conda create -n gptac_venv python=3.11 # crea l'ambiente anaconda
conda activate gptac_venv # attiva l'ambiente anaconda
python -m pip install -r requirements.txt # questo passaggio funziona allo stesso modo dell'installazione con pip
Se si desidera supportare ChatGLM di Tsinghua/MOSS di Fudan come backend, fare clic qui per espandere
【Passaggio facoltativo】 Se si desidera supportare ChatGLM di Tsinghua/MOSS di Fudan come backend, è necessario installare ulteriori dipendenze (prerequisiti: conoscenza di Python, esperienza con Pytorch e computer sufficientemente potente):
# 【Passaggio facoltativo I】 Supporto a ChatGLM di Tsinghua. Note su ChatGLM di Tsinghua: in caso di errore "Call ChatGLM fail 不能正常加载ChatGLM的参数" , fare quanto segue: 1. Per impostazione predefinita, viene installata la versione di torch + cpu; per usare CUDA, è necessario disinstallare torch e installare nuovamente torch + cuda; 2. Se non è possibile caricare il modello a causa di una configurazione insufficiente del computer, è possibile modificare la precisione del modello in request_llm/bridge_chatglm.py, cambiando AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True) in AutoTokenizer.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True)
python -m pip install -r request_llm/requirements_chatglm.txt
# 【Passaggio facoltativo II】 Supporto a MOSS di Fudan
python -m pip install -r request_llm/requirements_moss.txt
git clone https://github.com/OpenLMLab/MOSS.git request_llm/moss # Si prega di notare che quando si esegue questa riga di codice, si deve essere nella directory radice del progetto
# 【Passaggio facoltativo III】 Assicurati che il file di configurazione config.py includa tutti i modelli desiderati, al momento tutti i modelli supportati sono i seguenti (i modelli della serie jittorllms attualmente supportano solo la soluzione docker):
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"]
- Esegui
python main.py
```5. Plugin di test delle funzioni
- Funzione plugin di test (richiede una risposta gpt su cosa è successo oggi in passato), puoi utilizzare questa funzione come template per implementare funzionalità più complesse Clicca su "[Demo del plugin di funzione] Oggi nella storia"
## Installazione - Metodo 2: Utilizzo di Docker
1. Solo ChatGPT (consigliato per la maggior parte delle persone)
``` sh
git clone https://github.com/binary-husky/gpt_academic.git # scarica il progetto
cd gpt_academic # entra nel percorso
nano config.py # con un qualsiasi editor di testo, modifica config.py configurando "Proxy", "API_KEY" e "WEB_PORT" (ad esempio 50923)
docker build -t gpt-academic . # installa
#(ultimo passaggio - selezione 1) In un ambiente Linux, utilizzare '--net=host' è più conveniente e veloce
docker run --rm -it --net=host gpt-academic
#(ultimo passaggio - selezione 2) In un ambiente MacOS/Windows, l'opzione -p può essere utilizzata per esporre la porta del contenitore (ad es. 50923) alla porta della macchina
docker run --rm -it -e WEB_PORT=50923 -p 50923:50923 gpt-academic
- ChatGPT + ChatGLM + MOSS (richiede familiarità con Docker)
# Modifica docker-compose.yml, elimina i piani 1 e 3, mantieni il piano 2. Modifica la configurazione del piano 2 in docker-compose.yml, si prega di fare riferimento alle relative annotazioni
docker-compose up
- ChatGPT + LLAMA + Pangu + RWKV (richiede familiarità con Docker)
# Modifica docker-compose.yml, elimina i piani 1 e 2, mantieni il piano 3. Modifica la configurazione del piano 3 in docker-compose.yml, si prega di fare riferimento alle relative annotazioni
docker-compose up
Installazione - Metodo 3: Altre modalità di distribuzione
Come utilizzare un URL di reindirizzamento / AzureAPI Cloud Microsoft Configura API_URL_REDIRECT seguendo le istruzioni nel file
config.py
.Distribuzione su un server cloud remoto (richiede conoscenze ed esperienza di server cloud) Si prega di visitare [wiki di distribuzione-1] (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)
Utilizzo di WSL2 (Windows Subsystem for Linux) Si prega di visitare [wiki di distribuzione-2] (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)
Come far funzionare ChatGPT all'interno di un sottodominio (ad es.
http://localhost/subpath
) Si prega di visitare [Istruzioni per l'esecuzione con FastAPI] (docs/WithFastapi.md)Utilizzo di docker-compose per l'esecuzione Si prega di leggere il file docker-compose.yml e seguire le istruzioni fornite.
Uso avanzato
Personalizzazione dei pulsanti / Plugin di funzione personalizzati
- Personalizzazione dei pulsanti (scorciatoie accademiche)
Apri
core_functional.py
con qualsiasi editor di testo e aggiungi la voce seguente, quindi riavvia il programma (se il pulsante è già stato aggiunto con successo e visibile, il prefisso e il suffisso supportano la modifica in tempo reale, senza bisogno di riavviare il programma).
ad esempio
"超级英译中": {
# Prefisso, verrà aggiunto prima del tuo input. Ad esempio, descrivi la tua richiesta, come tradurre, spiegare il codice, correggere errori, ecc.
"Prefix": "Per favore traduci questo testo in Cinese, e poi spiega tutti i termini tecnici nel testo con una tabella markdown:\n\n",
# Suffisso, verrà aggiunto dopo il tuo input. Ad esempio, con il prefisso puoi circondare il tuo input con le virgolette.
"Suffix": "",
},
- Plugin di funzione personalizzati
Scrivi plugin di funzione personalizzati e esegui tutte le attività che desideri o non hai mai pensato di fare. La difficoltà di scrittura e debug dei plugin del nostro progetto è molto bassa. Se si dispone di una certa conoscenza di base di Python, è possibile realizzare la propria funzione del plugin seguendo il nostro modello. Per maggiori dettagli, consultare la guida al plugin per funzioni.
Ultimo aggiornamento
Nuove funzionalità dinamiche
Funzionalità di salvataggio della conversazione. Nell'area dei plugin della funzione, fare clic su "Salva la conversazione corrente" per salvare la conversazione corrente come file html leggibile e ripristinabile, inoltre, nell'area dei plugin della funzione (menu a discesa), fare clic su "Carica la cronologia della conversazione archiviata" per ripristinare la conversazione precedente. Suggerimento: fare clic su "Carica la cronologia della conversazione archiviata" senza specificare il file consente di visualizzare la cache degli archivi html di cronologia, fare clic su "Elimina tutti i record di cronologia delle conversazioni locali" per eliminare tutte le cache degli archivi html.
Generazione di rapporti. La maggior parte dei plugin genera un rapporto di lavoro dopo l'esecuzione.
Progettazione modulare delle funzioni, semplici interfacce ma in grado di supportare potenti funzionalità.
Questo è un progetto open source che può "tradursi da solo".
Tradurre altri progetti open source è semplice.
Piccola funzione decorativa per live2d (disattivata per impostazione predefinita, è necessario modificare
config.py
).Supporto del grande modello linguistico MOSS
Generazione di immagini OpenAI
Analisi e sintesi audio OpenAI
Verifica completa dei testi in LaTeX
Versione:
versione 3.5(Todo): utilizzo del linguaggio naturale per chiamare tutti i plugin di funzioni del progetto (alta priorità)
versione 3.4(Todo): supporto multi-threading per il grande modello linguistico locale Chatglm
versione 3.3: +funzionalità di sintesi delle informazioni su Internet
versione 3.2: i plugin di funzioni supportano più interfacce dei parametri (funzionalità di salvataggio della conversazione, lettura del codice in qualsiasi lingua + richiesta simultanea di qualsiasi combinazione di LLM)
versione 3.1: supporto per interrogare contemporaneamente più modelli gpt! Supporto api2d, bilanciamento del carico per più apikey
versione 3.0: supporto per Chatglm e altri piccoli LLM
versione 2.6: ristrutturazione della struttura del plugin, miglioramento dell'interattività, aggiunta di più plugin
versione 2.5: auto-aggiornamento, risoluzione del problema di testo troppo lungo e overflow del token durante la sintesi di grandi progetti di ingegneria
versione 2.4: (1) funzionalità di traduzione dell'intero documento in formato PDF aggiunta; (2) funzionalità di scambio dell'area di input aggiunta; (3) opzione di layout verticale aggiunta; (4) ottimizzazione della funzione di plugin multi-threading.
versione 2.3: miglioramento dell'interattività multi-threading
versione 2.2: i plugin di funzioni supportano l'hot-reload
versione 2.1: layout ripiegabile
versione 2.0: introduzione di plugin di funzioni modulari
versione 1.0: funzione di basegpt_academic sviluppatori gruppo QQ-2: 610599535
Problemi noti
- Alcuni plugin di traduzione del browser interferiscono con l'esecuzione del frontend di questo software
- La versione di gradio troppo alta o troppo bassa può causare diversi malfunzionamenti
Riferimenti e apprendimento
Il codice fa riferimento a molte altre eccellenti progettazioni di progetti, principalmente:
# Progetto 1: ChatGLM-6B di Tsinghua:
https://github.com/THUDM/ChatGLM-6B
# Progetto 2: JittorLLMs di Tsinghua:
https://github.com/Jittor/JittorLLMs
# Progetto 3: Edge-GPT:
https://github.com/acheong08/EdgeGPT
# Progetto 4: ChuanhuChatGPT:
https://github.com/GaiZhenbiao/ChuanhuChatGPT
# Progetto 5: ChatPaper:
https://github.com/kaixindelele/ChatPaper
# Altro:
https://github.com/gradio-app/gradio
https://github.com/fghrsh/live2d_demo