mi-ai ist ein chatgpt-Open-Source-Projekt, das Funktionen wie Chatten, Fragen und Antworten, das Schreiben von Code, das Schreiben von Artikeln und das Erledigen von Hausaufgaben unterstützt.
Die Projektstruktur ist angemessen, der Code ist elegant geschrieben und die Bereitstellung ist einfach und schnell. Die Front-End- und Back-End-Codes sind vollständig Open Source, sodass sie sowohl zum Selbstlernen als auch zur kommerziellen Nutzung geeignet sind.
Dieses Projekt unterstützt jetzt ChatGPT-Chat-KI und Einbettungsmodell-Trainingsdialoge.
Das Projekt ist Open Source unter der MIT-Lizenz, sodass Sie problemlos eine Sekundärentwicklung durchführen und es für kommerzielle Zwecke nutzen können.
Demo
Adresse der Wohlfahrtsdemonstration:https://ai.imiphp.com/ (Registrieren Sie sich, um ein kostenloses Kontingent zu erhalten, und Sie können für gpt-4, gpt-3.5-turbo-16k bezahlen)
Technologie-Stack
Das Backend basiert auf imi (PHP+Swoole)
Das Frontend basiert auf Chanzhaoyu/chatgpt-web (TypeScript+Vue3+Vite3+NaiveUI)
Der Hintergrund basiert auf honghuangdc/soybean-admin (TypeScript+Vue3+Vite3+NaiveUI)
Funktionsliste
Benutzer
- E-Mail-Registrierung und Anmeldung des Benutzers
- Registrierung und Anmeldung der Mobiltelefonnummer des Benutzers
- WeChat-Login (PC/offizielles Konto/Miniprogramm)
Chat-KI
- ChatGPT Chat AI (OpenAI)
- Support-Einstellungsaufforderungen (Eingabeaufforderung)
- Unterstützt die Anpassung der Modellparameter
- Serverseitiger Multisitzungsspeicher und kontextbezogene Logik
- Rendering-Code-Hervorhebung
- Rendern von LaTeX-Formeln
- Nachricht im lokalen Bild speichern
- Prompt Word Model Store
- Unterstützt Strombegrenzung
Modelltraining
- OpenAI-Modelltraining mit mehreren Dateien (komprimiert).
- OpenAI-Einzeldateimodelltraining
- Chat-KI beantwortet Fragen (kann in Szenarien wie der Beantwortung von Fragen und dem Kundendienst verwendet werden)
- Suchmaschine zum Auffinden von Dateien
- Unterstützt das Dekomprimieren von Dateien (zip, rar, 7z, xz, gz, bz, tar.*)
- Unterstützt das Parsen von TXT-Dateien
- Unterstützt das Parsen von MD-Dateien
- Unterstützt das Parsen von DOCX-Dateien
- Unterstützt das Parsen von PDF-Dateien
- Die Nachrichtenwarteschlange verarbeitet Trainingsaufgaben asynchron
- Konversationslimit unterstützen
KI-generierte Bilder
- OpenAI-Bildgenerierung
- Bilderzeugung während der Fahrt
Rechnungssystem
- Token-Abrechnungssystem (Karte)
- Online-Zahlungskaufkarte (Schnittstellenschicht)
- WeChat-Bezahlung
- Bezahlen Sie mit Ali-Pay
- Geben Sie zur Aktivierung die Kartennummer ein
Unterstützte Modellhersteller
andere
- Designdokumentation
- Schnittstellendokumentation
- Docker-Unterstützung
- Videoanleitung
Weitere Funktionen sind geplant…
Das Projekt befindet sich in kontinuierlicher Iteration und jeder ist willkommen, Code beizusteuern.
Installieren
Server
Inhaltsverzeichnis:server
Umweltanforderungen:
-
linux/MacOS, mindestens 1 GB verfügbarer Speicher
-
PHP >= 8.1 (Erweiterungen: curl, gd, mbstring, pdo_mysql, redis, swoole)
-
Swoole >= v5.0.3 (muss aktiviert sein
--enable-openssl --enable-swoole-curl
Kompilierung und Modelltraining müssen aktiviert sein –enable-swoole-pgsql zusammengestellt)
Es wird empfohlen, swoole-cli direkt zu verwenden, das unter zu finden ist Swoole-Release-Download。
-
MySQL >= 8.0.17
-
Redis
-
PostgreSQL + pgvector (Optional, zur Verwendung des Modelltrainings erforderlich. Sie müssen Erweiterungen für die Projektdatenbank aktivieren
CREATE EXTENSION vector;
) -
7-Zip, optional, aber für das Modelltraining erforderlich, wird zum Dekomprimieren von Dateien verwendet.herunterladen und wird
7zz
/7zzs
Entpacken nach/usr/bin/7z
oder/usr/local/bin/7z
Inhaltsverzeichnis -
Pandoc kann optional das Training des DocX-Dateimodells nach der Installation unterstützen.herunterladen
-
Die optionalen Poppler-Utils können nach der Installation das Training von PDF-Dateimodellen unterstützen.
Installieren:
# Debian/Ubuntu apt install poppler-utils # CentOS yum install poppler-utils # Alpine apk add poppler-utils
Abhängigkeiten installieren:
composer update
Zertifikat generieren:
Eine JWT-Signatur ist erforderlich und Sie müssen Ihr eigenes Zertifikat erstellen!
cd server/resource/jwt openssl genrsa -out pri_key.pem 2048 openssl rsa -in pri_key.pem -pubout -out pub_key.pem openssl genrsa -out admin_pri_key.pem 2048 openssl rsa -in admin_pri_key.pem -pubout -out admin_pub_key.pem
Konfigurationsdatei:
Kopieren .env.tpl umbenennen in .env dokumentieren.
Ändern Sie die entsprechende Konfiguration entsprechend den Kommentaren in der Datei.
Anwendungskonfiguration:
Backend-Systemverwaltung-Systemeinstellungen
MySQL importieren:
Zuerst erstellen db_imi_ai
Bei Verwendung eines anderen Namens muss die Datenbank vorhanden sein .env
Mitte der Modifikation.
Führen Sie den Befehl aus, um eine Tabellenstruktur zu generieren:
vendor/bin/imi-swoole generate/table
PostgreSQL importieren:
Zuerst erstellen db_imi_ai
Bei Verwendung eines anderen Namens muss die Datenbank vorhanden sein .env
Mitte der Modifikation.
für db_imi_ai
Oder aktivieren Sie die von Ihnen verwendete Datenbank pgvector
Erweiterungen:
CREATE EXTENSION vector;
importieren pgsql.sql
Datei, Tabelle erstellen.
Wenn Sie die Modelltrainingsfunktion nicht verwenden, müssen Sie PostgreSQL nicht konfigurieren.
Führen Sie den Dienst aus:
vendor/bin/imi-swoole swoole/start
Produktionsumfeld:
bearbeiten .env dokumentieren.
Erforderliche Einstellungen:
# 生产环境禁用热更新 @app.beans.hotUpdate.status=0 # 生产环境禁用调试 APP_DEBUG=false
Konfigurieren Sie weitere Einstellungen entsprechend Ihren eigenen Bedürfnissen.
Kunde H5
Inhaltsverzeichnis:web
Umweltanforderungen:
node
brauchen ^16 || ^18 || ^19
Ausführung(node >= 14
Erfordert eine Installation Polyfill abrufen),verwenden nvm Kann mehrere lokale verwalten node
Ausführung
node -v
Abhängigkeiten installieren:
npm install
Sie können auch Garn, PNPM usw. verwenden.
Aufbau:
Kopieren .env.tpl umbenennen in .env dokumentieren.
bearbeiten .env dokumentieren.
Entwicklung und Debugging:
npm run dev
Produktionsumfeld:
kompilieren
npm run build-only
npm run build
Es ist auch möglich, aber es wird eine Typprüfung durchgeführt und nicht standardmäßiger Code besteht die Kompilierung nicht.
Kompilierungsergebnis
Alle Dateien sind drin dist
Verzeichnis, interne Dateien werden im Site-Stammverzeichnis abgelegt.
Managementhintergrund
Inhaltsverzeichnis:admin
Umweltanforderungen:
node
brauchen ^16 || ^18 || ^19
Ausführung(node >= 14
Erfordert eine Installation Polyfill abrufen),verwenden nvm Kann mehrere lokale verwalten node
Ausführung
node -v
Abhängigkeiten installieren:
npm install
Sie können auch Garn, PNPM usw. verwenden.
Aufbau:
Kopieren .env.tpl umbenennen in .env dokumentieren.
bearbeiten .env dokumentieren.
VITE_API_URL
Serverschnittstellenadresse, wie zum Beispiel:http://127.0.0.1:12333
Entwicklung und Debugging:
npm run dev
Produktionsumfeld:
kompilieren
npm run build
npm run build
Es ist auch möglich, aber es wird eine Typprüfung durchgeführt und nicht standardmäßiger Code besteht die Kompilierung nicht.
Kompilierungsergebnis
Alle Dateien sind drin dist
Verzeichnis, interne Dateien werden im Site-Stammverzeichnis abgelegt.