22 KiB
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