ChatGPT-Plus est une application qui utilise l'API officielle ChatGPT.
Démontrer les problèmes de démonstration/de commentaires/développer Gitpod/déployer Vercel
Chinois simplifié | Anglais
Vous aimez ce projet ? S'il vous plaît, donnez-moi une étoile ️
Ou partagez-le avec vos amis pour l'aider à s'améliorer !
Le client ChatGPT-Plus est une application de l'API officielle ChatGPT. Cette application est une application wrapper pour l'API officielle de ChatGPT d'OpenAI.
Il existe deux manières d'y accéder. Pour utiliser ce module dans Node.js, vous devez choisir entre deux méthodes :
méthode | gratuit? | robuste? | qualité? |
---|---|---|---|
ChatGPTAPI | Non | ✅ Oui | ✅️Modèle réel ChatGPT |
ChatGPTUnofficialProxyAPI | ✅ Oui | ☑️ Peut-être | ✅ Chat réelGPT |
ChatGPTAPI
- Utilise gpt-3.5-turbo-0301
avec l'API officielle de complétion de chat OpenAI (méthode officielle et puissante, mais pas gratuite). Vous pouvez remplacer les modèles, les paramètres d'achèvement et les messages système pour personnaliser entièrement votre assistant.
ChatGPTUnofficialProxyAPI
- Utilisez un serveur proxy non officiel pour accéder à l'API backend de ChatGPT d'une manière qui contourne Cloudflare (utilise le vrai ChatGPT, qui est léger, mais s'appuie sur des serveurs tiers et a des limites de débit).
Ces deux méthodes ont des API très similaires, donc basculer entre elles devrait être simple.
Remarque : Nous vous recommandons fortement d'utiliser ChatGPTAPI
car il utilise l'API officiellement prise en charge par OpenAI. Dans une prochaine version, nous pourrions interrompre la prise en charge de ChatGPTUnofficialProxyAPI
.
Le principe de la requête utilise le module fonction fourni par chatgpt-api.
Vous pouvez utiliser Gitpod pour le développement en ligne :
Ou clonez vers le développement local et suivez ces étapes :
# clone the project
git clone https://github.com/zhpd/chatgpt-plus.git
Si vous ne disposez pas d'un environnement git, vous pouvez directement télécharger le package zip, le décompresser et accéder au répertoire du projet.
Ce projet est développé sur la base de Node.js et nécessite l'environnement Node.js 14.0+. Assurez-vous que vous utilisez
node >= 18
pour quefetch
soit disponible (ounode >= 14
si vous installez un polyfill de récupération).
Ce projet utilise l'API officiellement fournie par OpenAI et nécessite une application pour API Key et AccessToken.
- Adresse officielle de demande d'inscription à OpenAI : https://platform.openai.com/, un accès scientifique à Internet est requis
- Obtenez
ApiKey
ouAccessToken
via d'autres méthodes Cliquez pour afficher.
Une fois l'application réussie, remplissez l'APIKey et l'AccessToken dans le fichier chatgpt-plus/service/.env
Il est recommandé d'utiliser l'éditeur VSCode pour le développement, d'installer les plug-ins
ESLint
etPrettier
et d'activerFormat On Save
dans les paramètres.
Configurez l'adresse de demande de port et d'interface dans le répertoire racine .env. Vous pouvez directement copier le fichier .env.example dans le répertoire racine pour modification et changer le nom du fichier en .env)
Nom de la variable d'environnement | valeur par défaut | illustrer |
---|---|---|
PORT | 3000 | port |
NEXT_PUBLIC_API_URL | http://localhost:3002 | adresse de l'interface |
Vous pouvez directement copier le fichier .env.example dans le répertoire racine pour modification et changer le nom du fichier en .env
# port
PORT = 3000
# api url
NEXT_PUBLIC_API_URL = http://localhost:3002
# enter the project directory
cd chatgpt-plus
# install dependency
npm install
# develop
npm run dev
Une fois l'opération démarrée avec succès, vous pouvez ouvrir http://localhost:3000 dans le navigateur pour voir l'effet.
Configurez le port, l'ApiKey et AccessToken dans .env dans le répertoire de service.
Nom de la variable d'environnement | valeur par défaut | illustrer |
---|---|---|
PORT | 3002 | port |
OPENAI_API_KEY | - | API_KEY |
OPENAI_ACCESS_TOKEN | - | ACCESS_TOKEN |
API_REVERSE_PROXY | https://api.pawan.krd/backend-api/conversation | par intérim |
TIMEOUT_MS | 60000 | Délai d'expiration en millisecondes |
Vous pouvez directement copier le fichier .env.example dans le répertoire du service pour modification et changer le nom du fichier en .env
# service/.env
# OpenAI API Key - https://platform.openai.com/overview
OPENAI_API_KEY =
# change this to an `accessToken` extracted from the ChatGPT site's `https://chat.openai.com/api/auth/session` response
OPENAI_ACCESS_TOKEN =
# Reverse Proxy default 'https://bypass.churchless.tech/api/conversation'
API_REVERSE_PROXY =
# timeout
TIMEOUT_MS = 100000
# enter the project directory
cd chatgpt-plus
# enter the service directory
cd service
# install dependency
npm install
# develop
npm run dev
Une fois l’opération démarrée avec succès, le service backend peut s’exécuter normalement.
Pour déployer à l'aide de Docker, vous devez installer l'environnement Docker
Utilisez le fichier de configuration dans le dossier docker-compose pour l'extraire et l'exécuter
Utilisez Vercel pour le déploiement, déploiement en un clic
API_URL
dans le fichier .env
dans le répertoire racine par l'adresse réseau publique réelle de votre interface backend.npm install
pour installer les dépendancesnpm run build
pour empaqueter le codedist
dans le répertoire du前端服务
de votre site Webdist
npm run start
pour démarrer le service service
npm install
pour installer les dépendancesnpm run build
pour empaqueter le codeservice/dist
dans le répertoire du后端服务
de votre site Webservice/dist
npm run start
pour démarrer le serviceRemarque : Si vous ne souhaitez pas créer de package, vous pouvez directement copier le dossier
service
sur le serveur et exécuternpm install
etnpm run start
pour démarrer le service.
Vous pouvez y accéder en configurant OPENAI_API_KEY
du backend service.env :
# R OpenAI API Key
OPENAI_API_KEY =
Ce projet utilise l'API officiellement fournie par OpenAI. Vous devez d'abord demander un compte OpenAI.
Vous pouvez y accéder en configurant le jeton d'accès OPENAI_ACCESS_TOKEN
au service backend.env :
# change this to an `accessToken` extracted from the ChatGPT
OPENAI_ACCESS_TOKEN =
Vous devez obtenir un jeton d'accès OpenAI auprès de l'application Web ChatGPT. Vous pouvez utiliser l'une des méthodes suivantes, qui nécessitent un email
et password
et renvoient un jeton d'accès :
Ces bibliothèques fonctionnent avec des comptes qui s'authentifient avec une adresse e-mail et un mot de passe (par exemple, elles ne prennent pas en charge les comptes authentifiés auprès de Microsoft/Google).
Alternativement, vous pouvez obtenir manuellement un accessToken
en vous connectant à l'application Web ChatGPT et en ouvrant https://chat.openai.com/api/auth/session
, qui renverra un objet JSON contenant votre chaîne accessToken
.
Les jetons d'accès sont valables plusieurs jours.
Remarque : L'utilisation d'un proxy inverse exposera votre jeton d'accès à des tiers. Cela n'aura aucun effet indésirable, mais considérez les risques avant d'utiliser cette méthode.
Vous pouvez remplacer le proxy inverse en configurant l'adresse du proxy API_REVERSE_PROXY
dans le service backend.env :
# Reverse Proxy
API_REVERSE_PROXY =
Les proxys inverses connus gérés par les membres de la communauté incluent :
URL du proxy inverse | auteur | limite de taux | date du dernier chèque |
---|---|---|---|
https://bypass.churchless.tech/api/conversation | @acheong08 | 5 requêtes / 10 secondes par IP | 24/03/2023 |
https://api.pawan.krd/backend-api/conversation | @PawanOsman | 50 demandes / 15 secondes (~3 r/s) | 23/03/2023 |
Remarque : les informations sur le fonctionnement du proxy inverse ne sont actuellement pas publiées pour empêcher OpenAI de désactiver l'accès.
Q : Si j'utilise uniquement la page frontale, où puis-je modifier l'interface de requête ?
R : Le champ API_URL
dans le fichier .env
dans le répertoire racine.
Q : Il n’y a pas d’effet machine à écrire sur le front-end ?
R : Une raison possible est qu'après l'activation du proxy inverse Nginx et l'activation du tampon, Nginx essaiera de mettre en mémoire tampon une certaine taille de données du backend avant de les envoyer au navigateur. Veuillez essayer d'ajouter proxy_buffering off;
après l'anti-paramètre, puis rechargez Nginx. La configuration des autres serveurs Web est la même.
Merci à tous ceux qui ont contribué !
Si vous pensez que ce projet vous est utile, vous pouvez lui donner une étoile ️ ou le partager avec vos amis. Votre soutien est ma plus grande motivation !
MIT © zhpd