Erstelle eine Next.js-Web-Chat-App mit Phaseo Gateway.
Beispielprojekt
- GitHub: examples/web-chat-nextjs
- Lokaler Repository-Pfad:
examples/web-chat-nextjs
Was die App macht
-
- ruft verfügbare Modelle über
GET /v1/models
- ruft verfügbare Modelle über
-
- sendet Chat-Beiträge über
POST /v1/responses
- sendet Chat-Beiträge über
- bewahrt den API-Schlüssel auf dem Server auf
- bietet einen einfachen Startpunkt für ein echtes Produkt ohne OAuth-Komplexität
Wichtige Dateien
app/api/models/route.tsapp/api/responses/route.tsapp/components/ChatClient.tsxlib/gateway.ts
Warum das Beispiel so aufgebaut ist
1. Der Browser ruft Phaseo nicht direkt auf
Die Oberfläche kommuniziert zuerst mit deinen eigenen Next.js-Routen. Diese Routen rufen Phaseo auf dem Server auf. Dadurch erhältst du:- serverseitige Verwaltung von Geheimnissen
- einen zentralen Ort für Header und Request-Payloads
- einen einfacheren Weg für spätere Erweiterungen wie Authentifizierung, Ratenlimits oder Protokollierung
2. Modellerkennung und Generierung sind getrennt
Halte die Routen für Modelllisten und Chat-Generierung getrennt, damit jeder Teil verständlich bleibt:- eine Route zum Auflisten von Modellen
- eine Route zum Ausführen der Chat-Anfrage
3. Die UI verwaltet nur den Interaktionsstatus
Der React-Client verwaltet:- den Eingabestatus
- den Ladestatus
- die Fehleranzeige
- die gerenderten Nachrichten
Voraussetzungen
-
- Node.js und ein unterstützter Paketmanager
- ein Phaseo-API-Schlüssel
Beispiel ausführen
PHASEO_API_KEYNEXT_PUBLIC_GATEWAY_URL
http://localhost:3000.
Ergebnis prüfen
- Der Modellauswahlschalter lädt Modelle über die Serverroute.
- Eine gesendete Nachricht erzeugt eine Antwort des Assistenten.
- Das Netzwerk-Panel des Browsers legt
PHASEO_API_KEY. - Eine fehlgeschlagene Gateway-Anfrage wird in der UI als hilfreicher Fehler angezeigt.
Die App anpassen
- ändere das Standardmodell auf dein gewünschtes Produktionsmodell
- füge Streaming hinzu, wenn deine Oberfläche Token für Token anzeigen soll
- ergänze später Authentifizierung, falls die App mehrere Nutzer unterstützt
- ersetze die interne Implementierung der Serverroute später durch das TypeScript-SDK, wenn du einen Client mit höherer Abstraktion möchtest
Wann ein anderer Startpunkt sinnvoll ist
- nutze den Node-Schnellstart für ein Skript oder einen Backend-Test statt einer UI
- nutze den Python-Schnellstart, wenn die erste Integration in einem Worker, einer CLI oder einem Backend-Dienst liegt