Bauen Sie den unternehmensinternen ChatGPT-Server auf Basis von ChatGPT auf

I. Einleitung

Ich bin ChatGPT, ein großes Sprachmodell, das von OpenAI trainiert wurde. Ich wurde entwickelt, um verschiedene Fragen zu beantworten und Text zu generieren, und kann eine Vielzahl von Aufgaben in natürlicher Sprache erledigen, z. B. Fragen beantworten, zusammenfassen und übersetzen. Während meines Studiums habe ich Millionen von Texten gelesen und sie verwendet, um mein Verständnis und meine Reaktionsfähigkeit zu verbessern. Ich lerne ständig dazu und verbessere mich, um den Benutzern das beste Q&A-Erlebnis zu bieten. ——Antwort von ChatGPT.
Dieser Artikel erklärt hauptsächlich, wie man das chatGPT-WEB-Terminal erstellt.
Bildbeschreibung hier einfügen
Dies ist die fertige Schnittstelle.

2. Lernprogramm

Da sich der Server von chatgpt im Ausland befindet, braucht es Magie, um online zu gehen, also verwenden wir ausländische Server, damit wir Netzwerkprobleme lösen können.

2.1 Erstellen Sie einen fremden Server

Ausländische Server sind nicht billig. Ich verwende UHOST, einen Server in Los Angeles. Der Preis ist etwas teuer, etwa 150 Yuan pro Monat. Ich verwende einen 2-Kern-2G-Host mit einer Netzwerkbandbreite von 2 MB, was sich nach der Verwendung als ausreichend anfühlt.
Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügenBildbeschreibung hier einfügen
Nachdem die Erstellung abgeschlossen ist, müssen Sie das Protokoll und den Port öffnen, und Sie müssen ICMP und alle DCP-Ports öffnen. Wir können nur darauf zugreifen, nachdem es eingeschaltet ist.
Bildbeschreibung hier einfügen

2.2. Erstellen Sie das Projekt

Stellen Sie zuerst eine SSH-Verbindung her, Sie können die Remote-Befehle verwenden, die mit UHOST geliefert werden, oder Sie können FinalShell verwenden. Ich verwende FinalShell , das relativ einfach zu verwenden ist.

2.2.1 NODE installieren

In Node.js ist ein Modul eine Organisationsform von wiederverwendbarem Code. Module können verschiedene Datentypen wie Funktionen, Objekte, Klassen usw. enthalten und von anderen Programmen eingeführt und wiederverwendet werden, wodurch die Wartbarkeit und Wiederverwendbarkeit des Codes verbessert werden. Die modulare Programmierung in Node.js kann Probleme wie Namenskonflikte und globale Variablenverschmutzung effektiv vermeiden und die Codestruktur übersichtlicher und einfacher zu verwalten machen.
In Node.js können Sie die require-Funktion verwenden, um andere Module zu importieren. Durch die Definition von Datentypen wie Funktionen und Objekten, die als Modul exportiert werden müssen, können andere Dateien über die require-Funktion auf diese Datentypen zugreifen. Node.js bietet auch einige integrierte Kernmodule wie fs, http, path usw. Diese Module bieten viele häufig verwendete Funktionen und Tools, mit denen Entwickler verschiedene Anforderungen leichter realisieren können.

cd /usr/local
wget https://npmmirror.com/mirrors/node/v16.18.1/node-v16.18.1-linux-x64.tar.xz

Entpacken und in nodejs umbenennen:

tar -xvf node-v16.18.1-linux-x64.tar.xz
mv node-v16.18.1-linux-x64 nodejs
rm -rf node-v16.18.1-linux-x64.tar.xz

Erstellen Sie einen Softlink:

ln -s /usr/local/nodejs/bin/node /usr/bin
ln -s /usr/local/nodejs/bin/npm /usr/bin
ln -s /usr/local/nodejs/bin/npx /usr/bin

Druckversion

node -v  //v16.18.1

Wenn es ausgedruckt wird, wurde es erfolgreich installiert.

2.2.2 Installieren Sie PNPM

PNPM ist ein Node.js-Paketmanager, ähnlich wie npm und Yarn. Im Gegensatz zu npm und Yarn verfügt PNPM über eine flexiblere Installationsmethode und ein flexibleres Installationsverzeichnis. Es kann abhängige Pakete sowohl auf globaler als auch auf lokaler Ebene installieren und unterstützt die Koexistenz mehrerer Versionen. Darüber hinaus verwendet PNPM auch eine einzigartige Abhängigkeitsverwaltungsmethode, die dieselbe Abhängigkeitspaketinstanz gemeinsam nutzen kann, wodurch wiederholte Downloads und Speicherplatz reduziert werden.

Die Hauptmerkmale von PNPM sind wie folgt:

Schnell: PNPM verwendet Techniken wie feste Links und symbolische Links, um wiederholte Downloads zu vermeiden und Speicherplatz zu belegen, wodurch die Geschwindigkeit der Installation und Aktualisierung von Paketen erhöht wird.
Stabilität: PNPM verwendet eine einzelne Sperrdatei (shrinkwrap.yaml), um die Stabilität und Reproduzierbarkeit von Abhängigkeiten sicherzustellen und gleichzeitig Konflikte und Race-Conditions zu vermeiden.
Sicherheit: PNPM unterstützt das Signieren und Verifizieren abhängiger Pakete, um deren Integrität und Sicherheit zu gewährleisten.
Benutzerfreundlichkeit: Die Befehlszeilenschnittstelle von PNPM ähnelt npm und Yarn, mit guter Benutzererfahrung und Dokumentationsunterstützung.
Insgesamt zielt PNPM darauf ab, Node.js-Entwicklern eine schnellere, stabilere, sicherere und flexiblere Paketverwaltungslösung bereitzustellen und gleichzeitig die Zusammenarbeit und Erstellung der Community zu fördern.

npm install -g pnpm
ln -s /usr/local/nodejs/bin/pnpm /usr/bin
ln -s /usr/local/nodejs/bin/pnpx /usr/bin

Versionsnummer drucken

pnpm -v  //v7.29.3

Wenn die Versionsnummer normal gedruckt werden kann, bedeutet dies, dass PNPM erfolgreich installiert wurde.

2.2.3 Docker installieren

Docker ist eine Containerisierungsplattform, die es Entwicklern ermöglicht, Anwendungen und ihre Abhängigkeiten in tragbare Container zu packen und sie in verschiedenen Computerumgebungen wie Entwicklungsmaschinen, Testumgebungen und Produktionsumgebungen auszuführen. Docker ermöglicht die Ausführung von Anwendungen in einer relativ isolierten Umgebung durch die Nutzung von Virtualisierungstechnologie auf Betriebssystemebene, was die Arbeit der Bereitstellung und Verwaltung komplexer Anwendungen erheblich vereinfacht.
Installieren Sie das Paket yum-utils:

yum install -y yum-utils

Einrichten des Spiegellagers (Ali Mirror):

yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Aktualisieren Sie den Yum-Paketindex:

yum makecache fast

Docker-ce installieren (Community-Version):
Installieren Sie den öffentlichen Versionsschlüssel

rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
yum install docker-ce docker-ce-cli containerd.io

Druckversion

docker version

Drucken Sie die Versionsbeschreibung aus und installieren Sie erfolgreich

systemctl start docker   #启动docker

2.2.4 Projekt herunterladen

Ich habe ein relativ beliebtes ChatGPT-Web-Open-Source-Projekt (star 8k) gefunden, Link: chatgpt-web .
Installieren Sie zuerst git:

yum install git

Laden Sie das Projekt herunter (standardmäßig im Verzeichnis /root/ installiert):

git clone https://github.com/Chanzhaoyu/chatgpt-web.git

2.2.5 Geben Sie den geheimen Schlüssel ein

Der Schlüssel muss den chatGPT-Schlüssel ausfüllen. Wenn Sie ihn nicht haben, können Sie
die Datei .env.example im Verzeichnis chatgpt-web/service/ in .env umbenennen und den Wert OPENAI_API_KEY in der Datei in ändern API erhalten oben Schlüssel, beachten Sie, dass keine Anführungszeichen erforderlich sind.
Bildbeschreibung hier einfügen

# OpenAI API Key - https://platform.openai.com/overview
OPENAI_API_KEY=your_api_key

2.2.6 Installationsabhängigkeiten

Installieren Sie die Backend-Abhängigkeiten im Verzeichnis chatgpt-web/service/:

pnpm install

Front-End-Abhängigkeiten im Verzeichnis chatgpt-web/ installieren:

pnpm bootstrap

2.2.7 Packen und ausführen

Führen Sie die Build-Operation im chatgpt-web/-Verzeichnis aus:

docker build -t chatgpt-web .

Nachdem der Build erfolgreich war, können Sie das Projekt ausführen. Denken Sie daran, your_api_key durch Ihren Schlüssel zu ersetzen:

docker run --name chatgpt-web -d -p 3002:3002 --env OPENAI_API_KEY=your_api_key chatgpt-web

Besuchen Sie nach erfolgreicher Ausführung https://ip:3002, um auf die ChatGPT-Webseite zuzugreifen, Nice~
Reference:
https://echeverra.cn/
https://github.com/Chanzhaoyu/chatgpt-web

おすすめ

転載: blog.csdn.net/qq_43603247/article/details/129810919