Sprachgesteuerte React-Komponente auf Basis der OpenAI Realtime API
(github.com/openai)- Sprachgesteuerte Komponente für React/den Browser, aufgebaut auf der Realtime API
- Ermöglicht die Umsetzung von Widgets, die per Spracheingabe von Formularausfüllung bis zu verschiedensten Aktionen gesteuert werden und darauf reagieren
- Bietet das tool-constrained UI-Muster, das den Assistenten darauf beschränkt, nur die von der App erlaubten Aktionen auszuführen
- Da ein einzelner Controller Sitzungsverbindung, Audioverarbeitung, Tool-Ausführung und das Zusammensetzen der Transkripte zentral verwaltet, müssen Entwickler WebRTC oder das Realtime-Protokoll nicht direkt handhaben
- Bei der Integration in bestehende Apps bleibt die App die einzige Quelle der Wahrheit (source of truth), während die Sprachschicht nur begrenzte App-Handler aufruft
- Kein allgemeines Orchestrierungs-Framework, sondern ein meinungsstarkes, auf Browser-UI-Flows spezialisiertes Paket; für Nicht-React-Runtimes oder Agent-Orchestrierung wird die Nutzung von Raw Realtime oder
openai-agents-jsempfohlen - Für die Integration in bestehende Apps wird ein 9-Schritte-Leitfaden bereitgestellt: vom Proxy für den
/session-Endpunkt über das Erstellen eines Voice-Adapter-Wrappers, die Tool-Registrierung und das Hoisting des Controllers bis zum Mounten des Widgets - Der Controller verwendet standardmäßig
server_vad; in Tool-only-Sitzungen wird mitinterruptResponse: falseverhindert, dass laufende Tool-Aufrufe durch neue Spracheingaben abgebrochen werden - In der Demo-App lassen sich verschiedene Integrationsszenarien prüfen, darunter Theme-Wechsel, mehrstufige Formulare, gemeinsam genutzte Schach-Flows mit geteiltem Zustand und Wake-Word-Experimente
- Apache-2.0-Lizenz
1 Kommentare
Das Demo-Video ist unter https://x.com/OpenAIDevs/status/2048871260512473385 zu sehen
Es funktioniert ziemlich schnell und gut. Wegen der hohen API-Kosten dürften die Einsatzmöglichkeiten aber begrenzt sein..
Wenn sich so etwas mit lokalen Modellen umsetzen ließe, wäre es durchaus brauchbar.