Heim >Technologie-Peripheriegeräte >KI >OpenAI Echtzeit -API: Ein Leitfaden mit Beispielen
Mit der neu eingeführten OpenAI-Echtzeit-API können wir schnelle, multimodale Erfahrungen mit geringer Latenz in unsere Anwendungen integrieren. Mit dieser API können wir nahtlose Sprach-zu-Sprach-Interaktionen zwischen Benutzern und Großsprachenmodellen (LLMs) erstellen.
Diese API beseitigt die Notwendigkeit mehrerer Modelle, um sprachgesteuerte Erlebnisse zu erzielen, da sie die vollständige Lösung in einer integrierten API bietet. Ziel ist es nicht nur, die Latenz zu verringern, sondern behält auch die emotionalen Nuancen und den natürlichen Fluss von Gesprächen bei.
In diesem Artikel lernen wir, wie Sie mit der OpenAI-Echtzeit-API mithilfe von AI-Assistenten mit Sprachkontrolliert aufbauen. Wir erstellen persistente WebSocket -Verbindungen mit node.js und wie dies innerhalb des Terminals verwendet werden kann, um mit der API zu kommunizieren. Darüber hinaus fördere ich Sie mit der Bereitstellung einer React -App, die die Funktionen dieser API verwendet.
Im Gegensatz zu anderen Komponenten der OpenAI -API verwendet die Echtzeit -API WebSockets. WebSockets ist ein Kommunikationsprotokoll, das einen bidirektionalen Kommunikationskanal zwischen einem Client und einem Server festlegt. Im Gegensatz zu dem herkömmlichen Anfrage-Response-Modell, das von HTTP verwendet wird, unterstützen Websockets fortlaufende Echtzeit-Interaktionen. Dies macht Websockets besonders für Echtzeitanwendungen wie Voice Chat geeignet.
Dieser Artikel behandelt die Funktionsweise von Websockets und enthält mehrere Beispiele für die Interaktion mit der Echtzeit -API.
Wir werden Node.js verwenden, daher müssen wir sicherstellen, dass es auf unserem Computer installiert ist. Wenn nicht, können wir Node.js von seiner offiziellen Website herunterladen und installieren.
Um mitzumachen, empfehlen wir, einen Ordner mit der oben erstellten .Env -Datei zu erstellen. Führen Sie in diesem Ordner den folgenden Befehl aus, um das Skript zu initialisieren:
npm init -y && touch index.js
Nach Abschluss dieses Befehls sollten diese Dateien im Ordner enthalten sein:
Beginnen Sie mit der Installation von zwei Paketen:
installieren Sie diese, indem Sie den Befehl ausführen:
npm install ws dotenv
Um eine Verbindung mit der Echtzeit -API zu initiieren, erstellen wir ein neues WebSocket -Objekt, das die API -URL und die Header mit den erforderlichen Informationen übergibt, um eine Verbindung dazu herzustellen:
// Import the web socket library const WebSocket = require("ws"); // Load the .env file into memory so the code has access to the key const dotenv = require("dotenv"); dotenv.config(); function main() { // Connect to the API const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01"; const ws = new WebSocket(url, { headers: { "Authorization": "Bearer " + process.env.OPENAI_API_KEY, "OpenAI-Beta": "realtime=v1", }, }); } main();
Der obige Code erstellt die Web -Socket -Verbindung zur API, macht aber noch nichts damit.
Websockets ermöglichen es uns, Aktionen einzurichten, die ausgeführt werden sollen, wenn einige Ereignisse auftreten. Wir können das offene Ereignis verwenden, um einen Code anzugeben, den wir ausführen möchten, sobald die Verbindung hergestellt ist.
Die generische Syntax zum Hinzufügen eines Ereignishörers ist Folgendes:
npm init -y && touch index.js
ersetzen & lt; Event & gt; mit einer Zeichenfolge, die den Namen des Ereignisses und & lt; Funktion & gt; mit einer Funktion, die ausgeführt wird, wenn das Ereignis auftritt.
So können wir Text anzeigen, sobald die Verbindung fertig ist:
npm install ws dotenv
Um diesen Code auszuführen, verwenden wir den Befehl:
// Import the web socket library const WebSocket = require("ws"); // Load the .env file into memory so the code has access to the key const dotenv = require("dotenv"); dotenv.config(); function main() { // Connect to the API const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01"; const ws = new WebSocket(url, { headers: { "Authorization": "Bearer " + process.env.OPENAI_API_KEY, "OpenAI-Beta": "realtime=v1", }, }); } main();
Wenn die API -Taste korrekt eingestellt ist, wird die Nachricht "Verbindung ist geöffnet" im Terminal angezeigt. Das Skript wird weiter ausgeführt, weil die Verbindung noch geöffnet ist, sodass wir es manuell stoppen müssen.
Ein weiteres Ereignis, auf das wir bei der Verwendung von WebSockets antworten können, ist das Nachrichtenereignis. Dies wird jedes Mal ausgelöst, wenn eine Nachricht vom Server empfangen wird. Fügen wir eine Funktion hinzu, die jede empfangene Nachricht anzeigt:
ws.on(<event>, <function>);
Ausführen des Skripts jetzt sollte auch die Sitzung angezeigt. Created Ereignis, das die API beim Initialisierungssitz sendet.
oben haben wir gelernt, wie man Ereignishörer zu den offenen und Nachrichtenereignissen hinzufügt. WebSockets unterstützt zwei zusätzliche Ereignisse, die wir in unseren Beispielen nicht verwenden werden.
Mit dem endgültigen Ereignis kann ein Rückruf hinzugefügt werden, wenn der Sockel geschlossen ist:
// Add inside the main() function of index.js after creating ws async function handleOpen() { console.log("Connection is opened"); } ws.on("open", handleOpen);
Mit dem Fehlerereignis wird ein Rückruf hinzugefügt, wenn ein Fehler vorliegt:
node index.js
Mit WebSockets müssen wir ereignisorientiert programmieren. Nachrichten werden auf dem Kommunikationskanal hin und her gesendet, und wir können nicht steuern, wann diese Nachrichten übermittelt oder empfangen werden.
Der Code, der die Kommunikation initiiert, sollte in HandleOpen () hinzugefügt werden. O Ansonsten würde ein Fehler auftreten, da dieser Code möglicherweise ausgeführt werden kann, bevor der Kommunikationskanal des Web -Socket -Kommunikation erstellt wird.
Das Gleiche gilt für die Codehandhabungsnachrichten. Die gesamte Logik sollte in die Funktion Handlemessage () gehen.
In den kommenden Beispielen verwenden wir den folgenden Code als Ausgangspunkt. Die meisten Änderungen beinhalten die Aktualisierung der Handle und der Handlemessage ().
// Add inside the main() function of index.js async function handleMessage(messageStr) { const message = JSON.parse(messageStr); console.log(message); } ws.on("message", handleMessage);
Kommunikation mit der Echtzeit -API erfolgt mit Ereignissen. In der OpenAI-Echtzeit-Dokumentations-API werden die von ihr unterstützten Ereignisse aufgeführt. Wir verwenden das Ereignis von Conversation.Item.Create, um ein Gespräch zu initiieren. Ereignisse werden als JSON -Objekte dargestellt, deren Felder in der Dokumentation beschrieben sind.
Hier ist ein Beispiel für ein Gespräch.item.create Event Senden der Eingabeaufforderung “Erklären Sie in einem Satz, was ein Web -Socket ist“:
async function handleClose() { console.log(“Socket closed”); } ws.on(“close”, handleClose);
Dieses Ereignis teilt der API mit, dass wir eine Textgespräch initiieren möchten. Dies wird im Inhaltsfeld angegeben, indem Sie einen Typ "input_text" verwenden und eine Textaufforderung bereitstellen.
Wir verwenden die Ws.Send () -Methode, um eine Nachricht zu senden. Das Web -Socket -Paket erwartet eine Zeichenfolge als Argument, daher müssen wir unser JSON -Ereignis mit der Funktion jSON.Stringify () in eine Zeichenfolge konvertieren. Wenn wir diese zusammenstellen, können wir das obige Ereignis senden:
npm init -y && touch index.js
Dies wird das Gespräch initiieren, aber es wird die API nicht ausgelöst, um uns eine Antwort automatisch zu senden. Um eine Antwort auszulösen, senden wir ein Ereignis. Hier ist ein Beispiel:
npm install ws dotenv
Dieses Ereignis verwendet den Parameter der Modalities -Antwort, um eine Textantwort zu fordern. Die Anweisungen sind der wichtigste Teil und beschreiben, was das Modell in diesem Fall eine generische Eingabeaufforderung erfragt, um den Benutzer zu unterstützen.
Wir senden diese beiden Ereignisse in der Funktion "HandleOpen (), damit ein Gespräch eingeleitet wird, sobald die Verbindung hergestellt wird. Hier ist die vollständige Implementierung der Funktion "HandleOpen () aus diesem Beispiel:
// Import the web socket library const WebSocket = require("ws"); // Load the .env file into memory so the code has access to the key const dotenv = require("dotenv"); dotenv.config(); function main() { // Connect to the API const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01"; const ws = new WebSocket(url, { headers: { "Authorization": "Bearer " + process.env.OPENAI_API_KEY, "OpenAI-Beta": "realtime=v1", }, }); } main();
In Bezug auf die eingehenden Nachrichten gibt es drei Arten von Ereignissen, die für dieses Beispiel erwähnenswert sind: die Antwort.text.delta, response.text.done und response.done Ereignisse:
Wir können angeben, wie unser Skript mithilfe einer Switch -Anweisung in der Funktion Handlemessage () auf diese Ereignisse reagiert:
ws.on(<event>, <function>);
In diesem Beispiel verwenden wir die Antwort.text.delta -Veranstaltung, um die Reaktion auf die Konsole zu drucken, sobald wir sie erhalten. Wenn die Antwort abgeschlossen ist, wird das Ereignis der Antwort.text.Done ausgelöst, und wir drucken eine neue Zeile, um anzuzeigen, dass die Ausgabe abgeschlossen ist. Schließlich schließen wir den Web -Socket, wenn wir das Ereignis erhalten.
Um dieses Beispiel auszuführen, fügen wir diese Funktionen in den obigen Vorlagencode ein und führen sie mit dem Befehl aus:
// Add inside the main() function of index.js after creating ws async function handleOpen() { console.log("Connection is opened"); } ws.on("open", handleOpen);
Dies erzeugt eine Antwort im Terminal auf die Eingabeaufforderung "Erklären Sie in einem Satz, was ein Web -Socket ist", ähnlich wie bei der Verwendung von ChatGPT.
Der vollständige Code für das Textbeispiel ist hier verfügbar.
Das vorherige Beispiel zeigte, wie wir mit Textdaten umgehen. Das reale Interesse an der Echtzeit-API besteht jedoch darin, einen Sprachassistenten zu erstellen, der in Echtzeit antwortet.
Die Handhabung von Audiodaten ist etwas komplizierter als der Umgang mit Textdaten. Wir werden einige Details überspringen, die spezifisch für die Funktionsweise von Audio sind, da sie uns vom Hauptthema dieses Artikels ablenken würden.
Erstens installieren wir zwei Pakete:
npm init -y && touch index.js
Wir müssen auch SOX (Sound Exchange) installieren, ein Befehlszeilen-Dienstprogramm für die Audioverarbeitung, mit dem die Knotenbibliothek mit dem Mikrofon mit dem Mikrofon eingestuft wird und Audio aufzeichnet. Verwenden Sie Brew Install Sox, um es auf MacOS oder sudo APT zu installieren. Installieren Sie SOX unter Linux.
Wenn diese Pakete installiert sind, importieren wir sie und fügen eine Funktion startercording () hinzu, die die Audioaufforderungen des Benutzers aufzeichnet. Wir erklären die Funktion nicht im Detail, da sie uns von unserem Hauptthema zu stark ablenken würde.
Fügen Sie den folgenden Code zur Datei index.js hinzu, nachdem Sie die Umgebung geladen haben:
npm install ws dotenv
Die Funktion startercording () zeichnet Audio aus dem Mikrofon auf und wartet darauf, dass die Eingabetaste gedrückt wird.
Als nächstes aktualisieren wir die Funktion main (), indem wir den Lautsprecher () initialisieren, der verwendet wird, um die Antwort der KI zu spielen:
// Import the web socket library const WebSocket = require("ws"); // Load the .env file into memory so the code has access to the key const dotenv = require("dotenv"); dotenv.config(); function main() { // Connect to the API const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01"; const ws = new WebSocket(url, { headers: { "Authorization": "Bearer " + process.env.OPENAI_API_KEY, "OpenAI-Beta": "realtime=v1", }, }); } main();
damit aus dem Weg gehen, können wir die Handlungen () und Handlemessage () implementieren, um Audio zu verarbeiten.
In der Funktion "HandleOpen ()) müssen wir nur die Funktion startercording () aufrufen, um die Audio -Eingabeaufforderung des Benutzers aufzuzeichnen. Wir müssen auch die Ereignisse leicht aktualisieren:
Hier ist die aktualisierte Funktion von handleOpen ():
ws.on(<event>, <function>);
Um die Funktion Handlemessage () zu implementieren, ändern wir das Ereignis "response.audio.delta", um den Audio -Puffer zu aktualisieren und das neue Sounddelta zu spielen:
// Add inside the main() function of index.js after creating ws async function handleOpen() { console.log("Connection is opened"); } ws.on("open", handleOpen);
Wir entfernen das Ereignis "response.text.done" aus der Switch -Anweisung und aktualisieren das Ereignis "response.done", um den Lautsprecher zu stoppen:
node index.js
Die endgültige Implementierung der Funktion Handlemessage () sieht folgt aus:
// Add inside the main() function of index.js async function handleMessage(messageStr) { const message = JSON.parse(messageStr); console.log(message); } ws.on("message", handleMessage);
Um dieses Beispiel auszuführen, wenden Sie diese Änderungen auf den Vorlagencode an und führen Sie ihn mit dem Befehl aus:
async function handleClose() { console.log(“Socket closed”); } ws.on(“close”, handleClose);
Das Mikrofon beginnt mit der Aufnahme. Wir können unsere Anfrage sagen und "Eingeben" drücken, um sie zu senden. Dann wird die Antwort der KI auf den Lautsprechern spielen (stellen Sie sicher, dass das Mikrofon nicht gedämpft ist und die Lautsprecher Volumen haben).
Der vollständige Code für das Audio -Beispiel ist hier verfügbar.
Eine schöne Funktion der OpenAI -API ist die Fähigkeit, Funktionsaufrufe auszuführen. Wir können dem Assistenten Funktionen hinzufügen, und wenn festgestellt wird, dass eine dieser Funktionen nützlich sein kann, um die Antwort anzugeben, wird ein Ereignis gesendet, in dem eine bestimmte Funktion aufgerufen werden soll.
Die OpenAI -Dokumentation enthält das folgende Diagramm, in dem der Lebenszyklus eines Funktionsaufrufs erklärt wird:
Quelle: OpenAI
Aus dem Diagramm sehen wir, dass der Kunde die Definitionen der Funktionen angeben muss, die der LLM aufrufen kann. Außerdem erfolgt die Funktionsausführung auf der Clientseite. Die KI sendet ein Ereignis, in dem die zu bezeichnete Funktion und ihre Argumente angefordert werden. Dann sind wir dafür verantwortlich, das Ergebnis zurückzuschicken.
befähigen wir unseren Assistenten mit einer Funktion, die zwei Zahlen zusammenfügt. Wir erstellen dieses Beispiel, indem wir das obige Audio -Beispiel erweitern.
Um die verfügbaren Funktionen anzugeben, müssen wir dem LLM eine Liste von Tools zur Verfügung stellen. Jedes Tool ist ein JSON -Objekt, das die Informationen zur Funktion angibt. So können wir ein Tool für die Summenfunktion definieren:
npm init -y && touch index.js
Erklären wir die Objektstruktur:
Der nächste Schritt besteht darin, die Funktion in unserem Code zu definieren. Wir werden ein Wörterbuch mit dem Schlüssel Calculate_Sum verwenden, um die angemessene Funktion zu erleichtern, wenn wir auf ein Funktionsaufrufereignis antworten:
npm install ws dotenv
Die API liefert die Funktionsargumente als Wörterbuch mit derselben Struktur, die auf den obigen Parametern definiert ist. In diesem Fall wäre das Wörterbuch {„a“: 3, „B“: 5}.
Die Konstanten von Sumtool und Funktionen können nach den Importen und vor der Funktion main () an die Spitze von index.js hinzugefügt werden.
Als nächstes aktualisieren wir das Ereignis, um die LLM mitzuteilen, dass die Sumtools verfügbar sind. Dies erfolgt durch Hinzufügen der Tools und Tool_Choice Felder zur Antwort:
// Import the web socket library const WebSocket = require("ws"); // Load the .env file into memory so the code has access to the key const dotenv = require("dotenv"); dotenv.config(); function main() { // Connect to the API const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01"; const ws = new WebSocket(url, { headers: { "Authorization": "Bearer " + process.env.OPENAI_API_KEY, "OpenAI-Beta": "realtime=v1", }, }); } main();
Wenn die LLM entscheidet, dass sie eine Funktion aufrufen möchte, wird eine Antwort ausgegeben. Wir müssen darauf reagieren von:
Wir verarbeiten dies, indem wir den folgenden Fall zur Switch -Anweisung in der Funktion hanldemessage () hinzufügen:
ws.on(<event>, <function>);
Wenn wir jetzt das Skript ausführen und das Ergebnis des Hinzufügens von zwei Zahlen anfordern, sollte das Modell die Funktion aufrufen und das Ergebnis angeben.
Diese Funktion ist relativ einfach, aber da die Funktion vom Client ausgeführt wird, könnte sie alles sein. Im nächsten Abschnitt werden zwei Beispiele für komplexere Funktionen angezeigt.
Der vollständige Code dieses Beispiels ist hier verfügbar.
App Setup
ihre App wird in diesem Repository gehostet. Um es einzurichten, beginnen Sie zunächst mit dem folgenden Git -Befehl:
Alternativ können wir es auch manuell von der Github -Schnittstelle herunterladen.
npm init -y && touch index.js
Um die App zu installieren, verwenden wir den folgenden Befehl npm (Knotenpaket verwalten):
Sobald die Installation abgeschlossen ist, erstellen Sie eine Datei namens .Env im Stammordner des Projekts und fügen Sie den folgenden Inhalt ein:
npm install ws dotenv
ersetzen & lt; openai_api_key & gt; mit dem OpenAI -API -Schlüssel.
// Import the web socket library const WebSocket = require("ws"); // Load the .env file into memory so the code has access to the key const dotenv = require("dotenv"); dotenv.config(); function main() { // Connect to the API const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01"; const ws = new WebSocket(url, { headers: { "Authorization": "Bearer " + process.env.OPENAI_API_KEY, "OpenAI-Beta": "realtime=v1", }, }); } main();
Die Anwendung sollte jetzt bereit sein, ausgeführt zu werden. Es besteht aus zwei Teilen:
Ein React -Frontend, der aus der Webbenutzerschnittstelle der Anwendung besteht.
Der Hauptzweck bei der Implementierung eines Relay -Servers zwischen Frontend und OpenAI -API besteht darin, die API -Taste sicher zu speichern. Die Interaktion mit der API ist ohne diesen Schlüssel unmöglich.
Wenn der Schlüssel jedoch an der Frontend gespeichert wäre, wäre er für jeden Benutzer zugänglich. Daher beinhaltet die Lösung die Einrichtung eines Servers, der den Schlüssel sicher speichert und den Datenaustausch zwischen der API und dem Frontend erleichtert. In diesem speziellen Szenario sind Sicherheitsbedenken minimal, da die Anwendung nur lokal ausgeführt wird.
Um die Anwendung zu starten, ist es erforderlich, sowohl den Relay -Server als auch den Frontend zu initiieren. Verwenden Sie den folgenden Befehl, um den Relay -Server zu starten:
Um den React Frontend zu starten, verwenden Sie den Befehl:
ws.on(<event>, <function>);
Nach dem Laden des Ladens wird im Browser eine Registerkarte geöffnet, wobei die Anwendung darauf ausgeführt wird.
// Add inside the main() function of index.js after creating ws async function handleOpen() { console.log("Connection is opened"); } ws.on("open", handleOpen);
Verwenden Sie die App
wir starten zunächst auf die Schaltfläche "Verbinden". Dies sendet eine "Hallo" Nachricht an die Echtzeit -API, und wir erhalten eine Begrüßung.
Sobald die Verbindung hergestellt ist, wird in der Mitte eine neue Schaltfläche angezeigt, sodass wir mit dem AI -Assistenten sprechen können.
Um es zu verwenden, drücken und sprechen Sie, ohne die Taste zu veröffentlichen. Die Nachricht wird gesendet, wenn die Schaltfläche veröffentlicht wird.
Die Anwendung verfügt auch über einen VAD -Modus (Sprachaktivitätserkennung), in dem wir keine Taste drücken müssen. In diesem Modus hört die Anwendung kontinuierlich zu, sodass wir uns aktiv mit dem Assistenten unterhalten können. Um es zu verwenden, drücken Sie einfach die Schaltfläche „VAD“ und sprechen Sie.
Wie wir gelernt haben, bietet die Echtzeit -API eine Funktion, mit der die KI bestimmte Funktionen ausführen kann. Diese Demonstration zeigt zwei Funktionen: eine für die Erforschung der Wettervorhersage an einem bestimmten Ort und eine andere zum Hinzufügen von Speicherelementen, um den Assistenten zu personalisieren.
Erleben Sie diese Funktionen, indem Sie Fragen stellen wie "Wie ist das Wetter in New York?" Und die Vorlieben wie „Meine Lieblingsfarbe ist blau“. Der Assistent liefert mündliche Antworten auf diese Abfragen, und die Informationen werden auch auf der rechten Seite der Anwendung angezeigt.
Es gab Zeiten, in denen ich einen Wetterbericht beantragte, und die Antwort zeigte, dass in diesem Moment keine Unfähigkeit, darauf zuzugreifen. Die Informationen wurden jedoch konsequent auf der rechten Seite angezeigt. Als Demo -App soll es nicht ein voll funktionsfähiges Produkt sein, sondern dient dazu, die Funktionen der API zu präsentieren.
Dieser Abschnitt erfordert ein hochrangiges Verständnis von React, um zu folgen, wenn wir einige der Implementierungsdetails der Anwendung abdecken.
Wir werden uns die Datei conolepage.tsx ansehen. Hier wird der größte Teil der Anwendungslogik definiert. Die Demo -App verwendet nicht die RAW -Websockets wie in unseren Befehlszeilen -App -Beispiele für node.js. Sie bauten einen Echtzeit-Kunden, der hilft, mit der API zu interagieren. Dies wird oben in der Datei importiert:
npm init -y && touch index.js
Die Integration in die API ist in diesem Aufruf von useeffect () definiert. Der Code in diesem UseEffect () wird ausgeführt, wenn die Konsolenseite ursprünglich gerendert wird. Ähnlich wie bei unserem Skript von Node.js wird beschrieben, wie auf API -Ereignisse reagiert werden. Die primäre Unterscheidung ist die Verwendung des Client -Wrappers von RealimeClient.
Die Funktion von RealTimeClient.addtool () wird verwendet, um Tools zu definieren. Es dauert zwei Parameter:
Dieser Ansatz vereinfacht die Integration von Tools, da der Client bereits für die Verarbeitung von Ereignissen und die Automatisierung von Funktionsaufrufe ausgestattet ist. Das Speicherwerkzeug ist hier definiert, während die Definition des Wetterwerkzeugs hier definiert ist.
Um zum Beispiel das zuvor definierte Summe -Tool hinzuzufügen, können wir Folgendes tun:
npm init -y && touch index.js
Beachten Sie, dass die Anwendung TypeScript verwendet, wodurch die Spezifikation von Typen innerhalb der Funktionsdefinition erforderlich ist.
Um ein Ereignis anzuhören, wird die Funktion realTimeclient.on () verwendet. Es akzeptiert zwei Parameter:
Dieser Ansatz ähnelt der zuvor verwendeten Funktion von WebSocket.on (), außer dass er einen anderen Satz von Ereignissen implementiert. Ihre Github -Seite enthält die Liste der unterstützten Ereignisse.
In diesem speziellen Beispiel werden die folgenden Ereignisse verwendet:
In diesem Tutorial haben wir die OpenAI-Echtzeit-API und die Verwendung von Websockets für die Echtzeitkommunikation untersucht. Wir haben die Einrichtung einer node.js -Umgebung behandelt, um mit der API zu interagieren, Text- und Audio -Nachrichten zu senden und zu empfangen und Funktionen zu implementieren, die eine verbesserte Funktionalität auffordern.
Wir haben auch die OpenAI -Demo -React -App untersucht, um zu demonstrieren, wie eine grundlegende Sprachassistentenanwendung bereitgestellt wird.
Um mehr über die neuesten OpenAI -Entwicklungstools zu erfahren, empfehle ich diese Tutorials:
Das obige ist der detaillierte Inhalt vonOpenAI Echtzeit -API: Ein Leitfaden mit Beispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!