ChatGPT-Plus ist eine Anwendung, die die offizielle ChatGPT-API verwendet.
Demo demonstrieren/Feedback-Probleme/Gitpod entwickeln/Vercel bereitstellen
Vereinfachtes Chinesisch |
Gefällt Ihnen dieses Projekt? Bitte gib mir einen Stern ️
Oder teilen Sie es mit Ihren Freunden, um es zu verbessern!
Der ChatGPT-Plus-Client ist eine Anwendung der offiziellen ChatGPT-API. Diese Anwendung ist eine Wrapper-Anwendung für die offizielle API von OpenAIs ChatGPT.
Es gibt zwei Möglichkeiten, darauf zuzugreifen. Um dieses Modul in Node.js zu verwenden, müssen Sie zwischen zwei Methoden wählen:
Verfahren | frei? | robust? | Qualität? |
---|---|---|---|
ChatGPTAPI | NEIN | ✅ Ja | ✅️Echtes ChatGPT-Modell |
ChatGPTUnofficialProxyAPI | ✅ Ja | ☑️ Möglicherweise | ✅ Echter ChatGPT |
ChatGPTAPI
– Verwendet gpt-3.5-turbo-0301
Modell mit der offiziellen OpenAI-Chat-Vervollständigungs-API (offizielle, leistungsstarke Methode, aber nicht kostenlos). Sie können Modelle, Abschlussparameter und Systemmeldungen überschreiben, um Ihren Assistenten vollständig anzupassen.
ChatGPTUnofficialProxyAPI
– Verwenden Sie einen inoffiziellen Proxyserver, um auf die Backend-API von ChatGPT auf eine Weise zuzugreifen, die Cloudflare umgeht (verwendet das echte ChatGPT, das leichtgewichtig ist, aber auf Servern von Drittanbietern basiert und Ratenbeschränkungen hat).
Diese beiden Methoden verfügen über sehr ähnliche APIs, daher sollte der Wechsel zwischen ihnen einfach sein.
Hinweis: Wir empfehlen dringend die Verwendung von ChatGPTAPI
, da es die offiziell unterstützte API von OpenAI verwendet. In einer zukünftigen Version stellen wir möglicherweise die Unterstützung für ChatGPTUnofficialProxyAPI
ein.
Das Anforderungsprinzip nutzt den von chatgpt-api bereitgestellten Funktionsbaustein.
Sie können Gitpod für die Online-Entwicklung verwenden:
Oder klonen Sie auf die lokale Entwicklung und befolgen Sie diese Schritte:
# clone the project
git clone https://github.com/zhpd/chatgpt-plus.git
Wenn Sie keine Git-Umgebung haben, können Sie das Zip-Paket direkt herunterladen, entpacken und das Projektverzeichnis aufrufen.
Dieses Projekt wurde auf Basis von Node.js entwickelt und erfordert die Umgebung Node.js 14.0+. Stellen Sie sicher, dass Sie
node >= 18
verwenden, damitfetch
verfügbar ist (odernode >= 14
wenn Sie ein Fetch-Polyfill installieren).
Dieses Projekt verwendet die offiziell von OpenAI bereitgestellte API und erfordert die Anwendung eines API-Schlüssels und eines AccessToken.
- Offizielle Adresse des OpenAI-Registrierungsantrags: https://platform.openai.com/, wissenschaftlicher Internetzugang ist erforderlich
- Erhalten Sie
ApiKey
oderAccessToken
über andere Methoden. Klicken Sie zum Anzeigen
Nachdem die Anwendung erfolgreich war, geben Sie den APIKey und das AccessToken in die Datei chatgpt-plus/service/.env
ein
Es wird empfohlen, für die Entwicklung den VSCode-Editor zu verwenden, die Plug-Ins
ESLint
undPrettier
zu installieren und in den EinstellungenFormat On Save
zu aktivieren.
Konfigurieren Sie den Port und die Schnittstellenanforderungsadresse im Stammverzeichnis .env. Sie können die Datei .env.example zur Änderung direkt in das Stammverzeichnis kopieren und den Dateinamen in .env ändern.
Name der Umgebungsvariablen | Standardwert | veranschaulichen |
---|---|---|
PORT | 3000 | Hafen |
NEXT_PUBLIC_API_URL | http://localhost:3002 | Schnittstellenadresse |
Sie können die Datei .env.example zur Änderung direkt in das Stammverzeichnis kopieren und den Dateinamen in .env ändern
# 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
Nachdem der Vorgang erfolgreich gestartet wurde, können Sie http://localhost:3000 im Browser öffnen, um den Effekt anzuzeigen.
Konfigurieren Sie den Port, ApiKey und AccessToken in .env im Dienstverzeichnis.
Name der Umgebungsvariablen | Standardwert | veranschaulichen |
---|---|---|
PORT | 3002 | Hafen |
OPENAI_API_KEY | - | API_KEY |
OPENAI_ACCESS_TOKEN | - | ACCESS_TOKEN |
API_REVERSE_PROXY | https://api.pawan.krd/backend-api/conversation | Schauspiel |
TIMEOUT_MS | 60000 | Timeout in Millisekunden |
Sie können die Datei .env.example zur Änderung direkt in das Dienstverzeichnis kopieren und den Dateinamen in .env ändern
# 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
Nachdem der Vorgang erfolgreich gestartet wurde, kann der Backend-Dienst normal ausgeführt werden.
Für die Bereitstellung mit Docker müssen Sie die Docker-Umgebung installieren
Verwenden Sie die Konfigurationsdatei im Docker-Compose-Ordner, um sie abzurufen und auszuführen
Verwenden Sie Vercel für die Bereitstellung, Bereitstellung mit einem Klick
API_URL
in der .env
Datei im Stammverzeichnis in die tatsächliche öffentliche Netzwerkadresse Ihrer Backend-Schnittstellenpm install
aus, um Abhängigkeiten zu installierennpm run build
aus, um den Code zu packendist
in das Verzeichnis des前端服务
Ihrer Websitedist
-Ordner einnpm run start
um den Dienst zu starten service
einnpm install
aus, um Abhängigkeiten zu installierennpm run build
aus, um den Code zu packenservice/dist
in das Verzeichnis des后端服务
Ihrer Websiteservice/dist
einnpm run start
um den Dienst zu startenHinweis : Wenn Sie kein Paket erstellen möchten, können Sie den
service
direkt auf den Server kopieren undnpm install
undnpm run start
ausführen, um den Dienst zu starten.
Sie können darauf zugreifen, indem Sie OPENAI_API_KEY
für das Backend service.env konfigurieren:
# R OpenAI API Key
OPENAI_API_KEY =
Dieses Projekt verwendet die offiziell von OpenAI bereitgestellte API. Sie müssen zuerst ein OpenAI-Konto beantragen.
Sie können darauf zugreifen, indem Sie das Zugriffstoken OPENAI_ACCESS_TOKEN
für das Backend service.env konfigurieren:
# change this to an `accessToken` extracted from the ChatGPT
OPENAI_ACCESS_TOKEN =
Sie müssen ein OpenAI-Zugriffstoken von der ChatGPT-Webanwendung erhalten. Sie können eine der folgenden Methoden verwenden, die eine email
und password
erfordern und ein Zugriffstoken zurückgeben:
Diese Bibliotheken funktionieren mit Konten, die sich mit E-Mail und Passwort authentifizieren (sie unterstützen beispielsweise keine bei Microsoft/Google authentifizierten Konten).
Alternativ können Sie manuell ein accessToken
erhalten, indem Sie sich bei der ChatGPT-Webanwendung anmelden und https://chat.openai.com/api/auth/session
öffnen. Dadurch wird ein JSON-Objekt zurückgegeben, das Ihre accessToken
Zeichenfolge enthält.
Zugriffstoken sind mehrere Tage lang gültig.
Hinweis : Durch die Verwendung eines Reverse-Proxys wird Ihr Zugriffstoken Dritten zugänglich gemacht. Dies wird keine nachteiligen Auswirkungen haben, aber bedenken Sie die Risiken, bevor Sie diese Methode anwenden.
Sie können den Reverse-Proxy überschreiben, indem Sie die Proxy-Adresse API_REVERSE_PROXY
im Backend service.env konfigurieren:
# Reverse Proxy
API_REVERSE_PROXY =
Zu den bekannten Reverse-Proxys, die von Community-Mitgliedern betrieben werden, gehören:
Reverse-Proxy-URL | Autor | Tarifbegrenzung | letztes Kontrolldatum |
---|---|---|---|
https://bypass.churchless.tech/api/conversation | @acheong08 | 5 Anforderungen / 10 Sekunden per IP | 24.03.2023 |
https://api.pawan.krd/backend-api/conversation | @PawanOsman | 50 req / 15 Sekunden (~3 U/s) | 23.03.2023 |
Hinweis: Informationen zur Funktionsweise des Reverse-Proxys werden derzeit nicht veröffentlicht, um zu verhindern, dass OpenAI den Zugriff deaktiviert.
F: Wenn ich nur die Frontend-Seite verwende, wo ändere ich dann die Anforderungsschnittstelle?
A: Das API_URL
Feld in der .env
Datei im Stammverzeichnis.
F: Gibt es am Frontend keinen Schreibmaschineneffekt?
A: Ein möglicher Grund ist, dass Nginx nach dem Einschalten des Nginx-Reverse-Proxys und des Puffers versucht, eine bestimmte Datengröße vom Backend zu puffern, bevor es sie an den Browser sendet. Bitte versuchen Sie proxy_buffering off;
nach dem Anti-Parameter hinzuzufügen, und laden Sie dann Nginx neu. Die Konfiguration anderer Webserver ist gleich.
Vielen Dank an alle, die dazu beigetragen haben!
Wenn Sie glauben, dass dieses Projekt für Sie hilfreich ist, können Sie ihm einen Stern geben oder es mit Ihren Freunden teilen. Ihre Unterstützung ist meine größte Motivation!
MIT © zhpd