Spaces:
Runtime error
A newer version of the Gradio SDK is available:
4.42.0
Note
Ce fichier README est généré automatiquement par le plugin de traduction markdown de ce projet et n'est peut - être pas correct à 100%.
During installation, please strictly select the versions specified in requirements.txt.
pip install -r requirements.txt
Optimisation académique GPT (GPT Academic)
**Si vous aimez ce projet, veuillez lui donner une étoile. Si vous avez trouvé des raccourcis académiques ou des plugins fonctionnels plus utiles, n'hésitez pas à ouvrir une demande ou une pull request.
Pour traduire ce projet dans une langue arbitraire avec GPT, lisez et exécutez multi_language.py
(expérimental).
Note
Veuillez noter que seuls les plugins de fonctions (boutons) en rouge prennent en charge la lecture de fichiers. Certains plugins se trouvent dans le menu déroulant de la zone de plugins. De plus, nous accueillons et traitons les nouvelles pull requests pour les plugins avec la plus haute priorité!
Les fonctions de chaque fichier de ce projet sont expliquées en détail dans l'auto-analyse
self_analysis.md
. Avec l'itération des versions, vous pouvez également cliquer sur les plugins de fonctions pertinents et appeler GPT pour régénérer le rapport d'auto-analyse du projet à tout moment. Les FAQ sont résumées dans le wiki. Méthode d'installation.Ce projet est compatible avec et encourage l'utilisation de grands modèles de langage nationaux tels que chatglm, RWKV, Pangu, etc. La coexistence de plusieurs clés API est prise en charge et peut être remplie dans le fichier de configuration, tel que
API_KEY="openai-key1,openai-key2,api2d-key3"
. Lorsque vous souhaitez remplacer temporairementAPI_KEY
, saisissez temporairementAPI_KEY
dans la zone de saisie, puis appuyez sur Entrée pour soumettre et activer.
Functionnalité | Description |
---|---|
Révision en un clic | prend en charge la révision en un clic et la recherche d'erreurs de syntaxe dans les articles |
Traduction chinois-anglais en un clic | Traduction chinois-anglais en un clic |
Explication de code en un clic | Affichage, explication, génération et ajout de commentaires de code |
Raccourcis personnalisés | prend en charge les raccourcis personnalisés |
Conception modulaire | prend en charge de puissants plugins de fonction personnalisée, les plugins prennent en charge la mise à jour à chaud |
Autoscanner | [Plug-in de fonction] Compréhension instantanée du code source de ce projet |
Analyse de programme | [Plug-in de fonction] Analyse en un clic de la structure d'autres projets Python / C / C ++ / Java / Lua / ... |
Lecture d'articles, traduction d'articles | [Plug-in de fonction] Compréhension instantanée de l'article latex / pdf complet et génération de résumés |
Traduction et révision complets en latex | [Plug-in de fonction] traduction ou révision en un clic d'articles en latex |
Génération de commentaires en masse | [Plug-in de fonction] Génération en un clic de commentaires de fonction en masse |
Traduction chinois-anglais en Markdown | [Plug-in de fonction] avez-vous vu la README pour les 5 langues ci-dessus? |
Génération de rapports d'analyse de chat | [Plug-in de fonction] Génère automatiquement un rapport de résumé après l'exécution |
Traduction intégrale en pdf | [Plug-in de fonction] Extraction de titre et de résumé de l'article pdf + traduction intégrale (multi-thread) |
Aide à arxiv | [Plug-in de fonction] Entrer l'url de l'article arxiv pour traduire et télécharger le résumé en un clic |
Aide à la recherche Google Scholar | [Plug-in de fonction] Donnez l'URL de la page de recherche Google Scholar, laissez GPT vous aider à écrire des ouvrages connexes |
Aggrégation d'informations en ligne et GPT | [Plug-in de fonction] Permet à GPT de récupérer des informations en ligne, puis de répondre aux questions, afin que les informations ne soient jamais obsolètes |
Affichage d'équations / images / tableaux | Fournit un affichage simultané de la forme tex et de la forme rendue, prend en charge les formules mathématiques et la coloration syntaxique du code |
Prise en charge des plugins à plusieurs threads | prend en charge l'appel multithread de chatgpt, un clic pour traiter un grand nombre d'articles ou de programmes |
Thème gradio sombre en option de démarrage | Ajoutez/?__theme=dark à la fin de l'URL du navigateur pour basculer vers le thème sombre |
Prise en charge de plusieurs modèles LLM, API2D | Sera probablement très agréable d'être servi simultanément par GPT3.5, GPT4, ChatGLM de Tsinghua, MOSS de Fudan |
Plus de modèles LLM, déploiement de huggingface | Ajout prise en charge de l'interface Newbing (nouvelle bing), introduction du support de Jittorllms de Tsinghua, LLaMA, RWKV et Panguα |
Plus de nouvelles fonctionnalités (génération d'images, etc.) ... | Voir la fin de ce document pour plus de détails ... |
Nouvelle interface (modifier l'option LAYOUT de
config.py
pour passer d'une dispositiongauche-droite
à une dispositionhaut-bas
)Correction d'erreurs/lissage du texte.
Si la sortie contient des équations, elles sont affichées à la fois sous forme de tex et sous forme rendue pour faciliter la lecture et la copie.
Pas envie de lire les codes de ce projet? Tout le projet est directement exposé par ChatGPT.
Appel à une variété de modèles de langage de grande envergure (ChatGLM + OpenAI-GPT3.5 + [API2D] (https://api2d.com/)-GPT4).
Installation
Installation-Method 1: running directly (Windows, Linux or MacOS)
- Télécharger le projet
git clone https://github.com/binary-husky/gpt_academic.git
cd gpt_academic
- Configuration de la clé API
Dans config.py
, configurez la clé API et d'autres paramètres. Consultez [Special network environment settings] (https://github.com/binary-husky/gpt_academic/issues/1).
(P.S. Lorsque le programme est exécuté, il vérifie en premier s'il existe un fichier de configuration privé nommé config_private.py
et remplace les paramètres portant le même nom dans config.py
par les paramètres correspondants dans config_private.py
. Par conséquent, si vous comprenez la logique de lecture de nos configurations, nous vous recommandons vivement de créer un nouveau fichier de configuration nommé config_private.py
à côté de config.py
et de transférer (copier) les configurations de config.py
. config_private.py
n'est pas contrôlé par Git et peut garantir la sécurité de vos informations privées. P.S. Le projet prend également en charge la configuration de la plupart des options via "variables d'environnement", le format d'écriture des variables d'environnement est référencé dans le fichier docker-compose
. Priorité de lecture: "variables d'environnement" > config_private.py
> config.py
)
- Installer les dépendances
# (Option I: python users instalation) (Python version 3.9 or higher, the newer the better). Note: use official pip source or ali pip source. To temporarily change the source: python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python -m pip install -r requirements.txt
# (Option II: non-python users instalation) Use Anaconda, the steps are similar (https://www.bilibili.com/video/BV1rc411W7Dr):
conda create -n gptac_venv python=3.11 # Create anaconda env
conda activate gptac_venv # Activate anaconda env
python -m pip install -r requirements.txt # Same step as pip instalation
Cliquez ici pour afficher le texte si vous souhaitez prendre en charge THU ChatGLM/FDU MOSS en tant que backend.
【Optional】 Si vous souhaitez prendre en charge THU ChatGLM/FDU MOSS en tant que backend, des dépendances supplémentaires doivent être installées (prérequis: compétent en Python + utilisez Pytorch + configuration suffisante de l'ordinateur):
# 【Optional Step I】 Support THU ChatGLM. Remarque sur THU ChatGLM: Si vous rencontrez l'erreur "Appel à ChatGLM échoué, les paramètres ChatGLM ne peuvent pas être chargés normalement", reportez-vous à ce qui suit: 1: La version par défaut installée est torch+cpu, si vous souhaitez utiliser cuda, vous devez désinstaller torch et réinstaller torch+cuda; 2: Si le modèle ne peut pas être chargé en raison d'une configuration insuffisante de l'ordinateur local, vous pouvez modifier la précision du modèle dans request_llm/bridge_chatglm.py, modifier AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True) par 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 FDU MOSS
python -m pip install -r request_llm/requirements_moss.txt
git clone https://github.com/OpenLMLab/MOSS.git request_llm/moss # Note: When running this line of code, you must be in the project root path.
# 【Optional Step III】Make sure the AVAIL_LLM_MODELS in the config.py configuration file contains the desired model. Currently, all models supported are as follows (the jittorllms series currently only supports the docker scheme):
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"]
- Exécution
python main.py
```5. Plugin de fonction de test
- Fonction de modèle de plugin de test (requiert que GPT réponde à ce qui s'est passé dans l'histoire aujourd'hui), vous pouvez utiliser cette fonction comme modèle pour mettre en œuvre des fonctionnalités plus complexes. Cliquez sur "[Démo de modèle de plugin de fonction] Aujourd'hui dans l'histoire"
## Installation - Méthode 2: Utilisation de Docker
1. ChatGPT uniquement (recommandé pour la plupart des gens)
``` sh
git clone https://github.com/binary-husky/gpt_academic.git # Télécharger le projet
cd gpt_academic # Accéder au chemin
nano config.py # Editez config.py avec n'importe quel éditeur de texte en configurant "Proxy", "API_KEY" et "WEB_PORT" (p. ex. 50923)
docker build -t gpt-academic . # Installer
# (Dernière étape - choix1) Dans un environnement Linux, l'utilisation de `--net=host` est plus facile et rapide
docker run --rm -it --net=host gpt-academic
# (Dernière étape - choix 2) Dans un environnement macOS/Windows, seule l'option -p permet d'exposer le port du récipient (p.ex. 50923) au port de l'hôte.
docker run --rm -it -e WEB_PORT=50923 -p 50923:50923 gpt-academic
- ChatGPT + ChatGLM + MOSS (il faut connaître Docker)
# Modifiez docker-compose.yml, supprimez la solution 1 et la solution 3, conservez la solution 2. Modifiez la configuration de la solution 2 dans docker-compose.yml en suivant les commentaires.
docker-compose up
- ChatGPT + LLAMA + PanGu + RWKV (il faut connaître Docker)
# Modifiez docker-compose.yml, supprimez la solution 1 et la solution 2, conservez la solution 3. Modifiez la configuration de la solution 3 dans docker-compose.yml en suivant les commentaires.
docker-compose up
Installation - Méthode 3: Autres méthodes de déploiement
Comment utiliser une URL de proxy inversé / Microsoft Azure Cloud API Configurez simplement API_URL_REDIRECT selon les instructions de config.py.
Déploiement distant sur un serveur cloud (connaissance et expérience des serveurs cloud requises) Veuillez consulter [Wiki de déploiement-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).
Utilisation de WSL2 (sous-système Windows pour Linux) Veuillez consulter [Wiki de déploiement-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).
Comment exécuter sous un sous-répertoire (tel que
http://localhost/subpath
) Veuillez consulter les [instructions d'exécution de FastAPI] (docs/WithFastapi.md).Utilisation de docker-compose Veuillez lire docker-compose.yml, puis suivre les instructions fournies.
Utilisation avancée
Personnalisation de nouveaux boutons pratiques / Plugins de fonctions personnalisées
- Personnalisation de nouveaux boutons pratiques (raccourcis académiques) Ouvrez core_functional.py avec n'importe quel éditeur de texte, ajoutez une entrée comme suit, puis redémarrez le programme. (Si le bouton a été ajouté avec succès et est visible, le préfixe et le suffixe prennent en charge les modifications à chaud et ne nécessitent pas le redémarrage du programme pour prendre effet.) Par exemple
"Super coller sens": {
# Préfixe, sera ajouté avant votre entrée. Par exemple, pour décrire votre demande, telle que traduire, expliquer du code, faire la mise en forme, etc.
"Prefix": "Veuillez traduire le contenu suivant en chinois, puis expliquer chaque terme proprement nommé qui y apparaît avec un tableau markdown:\n\n",
# Suffixe, sera ajouté après votre entrée. Par exemple, en utilisant le préfixe, vous pouvez entourer votre contenu d'entrée de guillemets.
"Suffix": "",
},
![](https://user-images.githubusercontent.com/96192199/226899272-477c2134-ed71-4326-810c-29891fe4a508.png)
- Plugins de fonctions personnalisées
Écrivez des plugins de fonctions puissants pour effectuer toutes les tâches que vous souhaitez ou que vous ne pouvez pas imaginer. Les plugins de ce projet ont une difficulté de programmation et de débogage très faible. Si vous avez des connaissances de base en Python, vous pouvez simuler la fonctionnalité de votre propre plugin en suivant le modèle que nous avons fourni. Veuillez consulter le [Guide du plugin de fonction] (https://github.com/binary-husky/gpt_academic/wiki/%E5%87%BD%E6%95%B0%E6%8F%92%E4%BB%B6%E6%8C%87%E5%8D%97) pour plus de détails.
Latest Update
Nouvelles fonctionnalités en cours de déploiement.
- Fonction de sauvegarde de la conversation. Appelez simplement "Enregistrer la conversation actuelle" dans la zone de plugin de fonction pour enregistrer la conversation actuelle en tant que fichier html lisible et récupérable. De plus, dans la zone de plugin de fonction (menu déroulant), appelez "Charger une archive de l'historique de la conversation" pour restaurer la conversation précédente. Astuce : cliquer directement sur "Charger une archive de l'historique de la conversation" sans spécifier de fichier permet de consulter le cache d'archive html précédent. Cliquez sur "Supprimer tous les enregistrements locaux de l'historique de la conversation" pour supprimer le cache d'archive html.
![](https://user-images.githubusercontent.com/96192199/235222390-24a9acc0-680f-49f5-bc81-2f3161f1e049.png)
Générer un rapport. La plupart des plugins génèrent un rapport de travail après l'exécution.
Conception de fonctionnalités modulaires avec une interface simple mais capable d'une fonctionnalité puissante.
C'est un projet open source qui peut "se traduire de lui-même".
Traduire d'autres projets open source n'est pas un problème.
![](https://user-images.githubusercontent.com/96192199/226969067-968a27c1-1b9c-486b-8b81-ab2de8d3f88a.png)
Fonction de décoration de live2d (désactivée par défaut, nécessite une modification de config.py).
Prise en charge du modèle de langue MOSS.
Génération d'images OpenAI.
Analyse et synthèse vocales OpenAI.
Correction de la totalité des erreurs de Latex.
Versions :
- version 3.5 (À faire) : appel de toutes les fonctions de plugin de ce projet en langage naturel (priorité élevée)
- version 3.4 (À faire) : amélioration du support multi-thread de chatglm en local
- version 3.3 : Fonctionnalité intégrée d'informations d'internet
- version 3.2 : La fonction du plugin de fonction prend désormais en charge des interfaces de paramètres plus nombreuses (fonction de sauvegarde, décodage de n'importe quel langage de code + interrogation simultanée de n'importe quelle combinaison de LLM)
- version 3.1 : Prise en charge de l'interrogation simultanée de plusieurs modèles GPT ! Support api2d, équilibrage de charge multi-clé api.
- version 3.0 : Prise en charge de chatglm et autres LLM de petite taille.
- version 2.6 : Refonte de la structure des plugins, amélioration de l'interactivité, ajout de plus de plugins.
- version 2.5 : Auto-mise à jour, résolution des problèmes de texte trop long et de dépassement de jetons lors de la compilation du projet global.
- version 2.4 : (1) Nouvelle fonction de traduction de texte intégral PDF ; (2) Nouvelle fonction de permutation de position de la zone d'entrée ; (3) Nouvelle option de mise en page verticale ; (4) Amélioration des fonctions multi-thread de plug-in.
- version 2.3 : Amélioration de l'interactivité multithread.
- version 2.2 : Les plugins de fonctions peuvent désormais être rechargés à chaud.
- version 2.1 : Disposition pliable
- version 2.0 : Introduction de plugins de fonctions modulaires
- version 1.0 : Fonctionnalités de base
gpt_academic développeur QQ groupe-2:610599535
- Problèmes connus
- Certains plugins de traduction de navigateur perturbent le fonctionnement de l'interface frontend de ce logiciel
- Des versions gradio trop hautes ou trop basses provoquent de nombreuses anomalies
Référence et apprentissage
De nombreux autres excellents projets ont été référencés dans le code, notamment :
# Projet 1 : ChatGLM-6B de Tsinghua :
https://github.com/THUDM/ChatGLM-6B
# Projet 2 : JittorLLMs de Tsinghua :
https://github.com/Jittor/JittorLLMs
# Projet 3 : Edge-GPT :
https://github.com/acheong08/EdgeGPT
# Projet 4 : ChuanhuChatGPT :
https://github.com/GaiZhenbiao/ChuanhuChatGPT
# Projet 5 : ChatPaper :
https://github.com/kaixindelele/ChatPaper
# Plus :
https://github.com/gradio-app/gradio
https://github.com/fghrsh/live2d_demo