Bietet eine sprachgesteuerte KI-Chat-Oberfläche in Ihrem Browser. Der AI -Assistent kann Tools verwenden, die sich in verschiedene Dienste wie Spotify, Google Calendar und Google Maps integrieren.
Die grobe Idee für dieses Projekt ist es, einen sprachaktivierten Assistenten zu haben, der Amazon Alexa oder Siri ähnelt, aber von einem großen Sprachmodell unterstützt wird. Es wird derzeit als Website implementiert, die nur in Ihrem Browser ausgeführt wird. Die Verwendung von OpenAIs GPT-4O-Modell, das mit mehreren Tools (auch bekannt als "Funktionen") konfiguriert ist, die es ihm ermöglichen, in eine Reihe von APIs zu integrieren. Um diese APIs zu verwenden, müssen Geheimnisse bereitgestellt werden, siehe unten. Die "anspruchsvollsten" Integrationen sind für Google und Spotify.
Im Allgemeinen können Sie den Assistenten nur fragen, was er für Sie tun kann. ;-)
Erstellen Sie eine Datei mit dem Namen config.ts im Verzeichnis packages/frontend/src . Sie können die packages/frontend/src/config.ts.example kopieren und an Ihre Anforderungen einstellen.
// The following configuration is required:
// By configuring the endpoints below, you can use a server with OpenAI compatible REST API:
export const completionsApiKey = "<The API Key used for /completions endpoint>" ;
export const completionsApiUrl = "https://api.openai.com/v1" ;
export const modelName = "gpt-4o" ;
export const useTools = true ;
export const speechApiKey = "<The API Key used for the TTS endpoint>" ;
export const speechApiUrl = "https://api.openai.com/v1" ;
export const transcriptionApiKey = "<The API Key used for the SST endpoint>" ;
export const transcriptionApiUrl = "https://api.openai.com/v1" ;
export const transcriptionModel = "whisper-1" ;
// All the following API keys are optional, and are only required if you want to use the corresponding features.
// Your picovoice.ai Access Key (wake word detection):
export const PicoVoiceAccessKey = "" ;
// Your openweathermap.org API Key (used for weather tools):
export const OpenWeatherMapApiKey = "" ;
// Your newsapi.org API key (used for some news tools):
export const NewsApiOrgKey = "" ;
export const GoogleApiKey = "<Your googleapis.com API key>" ;
export const GoogleClientId = "XXX.apps.googleusercontent.com" ;
export const GoogleClientSecret = "<Your OAuth2 Client Secret/Key>" ;
export const GoogleCustomSearchEngineId = "<ID of your custom google search engine configured for global search>" ;
// export const GoogleProjectId = "<Your Google Cloud Console project ID>"; // Needed for Google Vertex AI API (Gemini Pro)
export const SpotifyClientId = "<Your Spotify Client ID>" ;
export const MicrosoftClientId = "<Your Azure App Client ID>" ;Diese Datei wird von Git ignoriert.
Hinweis: Die obige Konfiguration muss derzeit bereitgestellt werden, da sie im Code importiert und als Fallback verwendet wird. Aus der Benutzeroberfläche der Assistenteneinstellungen ist jedoch möglich, eine beliebige Anzahl von Modellen und LLM -Anbietern zu konfigurieren und zwischen ihnen zu wechseln.
Um eines der GPT-4-Modelle zu verwenden, muss Ihre Plattform.openai.com-Konto über Abrechnungsinformationen und eine erfolgreiche Zahlung verfügen. Wenn Ihr Konto nie in Rechnung gestellt wurde, können Sie eine Zahlung über "Kaufkredite" auf der Abrechnungsübersichtseite manuell einleiten. Dies wird die GPT-4-Modelle "freischalten".
Der API -Schlüssel für OpenWeatherMap.org kann für die freie Stufe erfolgen.
In ähnlicher Weise kann der API -Schlüssel für Picovoice.ai frei für den persönlichen Gebrauch erhalten. Es kommt nur mit einer Ratenlimit. Wenn Sie den PicovoiceAccessKey nicht zur Verfügung stellen, wird höchstwahrscheinlich die Erkennung von Wachwort brechen. Theoretisch wird die Browser -Spracherkennungs -API als Fallback verwendet, aber sie wurde seit einiger Zeit nicht mehr getestet.
Um einen API -Schlüssel für die Google -APIs zu erhalten, müssen Sie in der Google Developer -Konsole ein "Projekt" erstellen und die folgenden APIs aktivieren:
Für den optionalen Google -Kalender- und Kontaktintegration (in den Assistenteneinstellungen über die Switch Google Integration aktiviert) müssen Sie zusätzlich zum GoogleApiKey eine GoogleClientId bereitstellen. Der Grund dafür ist, dass Sie sich mit Ihrem Google -Konto anmelden müssen, und dies erfordert eine Einrichtung eines OAuth2 -Clients vom Typ Web Application in der Google Cloud -Konsole für Ihr Projekt.
Eine Reihe von Dingen muss in Ihrem Cloud -Projekt konfiguriert werden:
OAuth 2.0-Client-ID :http://localhost:5173 als auch http://localhost zu den autorisierten JavaScript -Ursprüngen hinzu.http://localhost:5173/google-callback zu der autorisierten Umleitung-URIS hinzu.OAuth Consent Screen :http://localhost:5173 (nicht sicher, ob dies tatsächlich erforderlich ist.)https://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/contacts.readonlyhttps://www.googleapis.com/auth/photoslibrary.readonly Für die optionale Spotify -Integration (aktiviert in den Assistenteneinstellungen über die Switch Spotify Integration ) müssen Sie eine SpotifyClientId bereitstellen. Um eine Client -ID zu erhalten, müssen Sie eine Anwendung auf dem Spotify Developer Dashboard registrieren.
Als Website geben Sie http://localhost:5173 . Geben Sie als Umleitungs-URL http://localhost:5173/spotify-callback .
Wenn Sie die Spotify -Integration aktivieren, werden Sie auf eine Spotify -Anmeldeseite umgeleitet, auf der Sie auch den Antragsberechtigungen geben müssen (oder wie Sie Ihre App im Spotify -Entwickler -Dashboard benannt haben). Darüber hinaus funktionieren die eingebetteten Playback -Streaming -Funktionen nur für Spotify -Premium -Benutzer, da für die Web -Wiedergabe -SDK ein Premium -Konto benötigt.
Für die optionale Microsoft -Integration (aktiviert in den Assistenteneinstellungen über die Switch Microsoft Integration ) müssen Sie eine MicrosoftClientId bereitstellen. Um eine Client -ID zu erhalten, müssen Sie eine Anwendung im Azure -Portal registrieren. Es muss die folgenden Einstellungen vorhanden sein:
Single Page Application sein.http://localhost:5173/microsoft-callback sein.User.Read und Calendars.ReadWrite enthalten.Es gibt eine Reihe von Diensten, die OpenAI -kompatible REST -Endpunkte bieten. Zum Beispiel gibt es Localai, ein Projekt, mit dem Sie verschiedene LLMs lokal ausführen können. Aber es gibt andere wie LM Studio, vllm und so weiter.
Diese Projekte bieten eine API, die (meistens) als Drop-In-Ersatz für OpenAI verwendet werden kann.
Aus diesem Grund exportiert die Datei config.ts Datei die completionsApiUrl und verwandte Einstellungen wie den API -Schlüssel und den Modellnamen. Dadurch können Sie einen anderen openAI -kompatiblen Server konfigurieren. Ich habe Mistral, Groq und andere getestet. Die Unterstützung für Tools ist jedoch derzeit sehr begrenzt im Vergleich zu dem, was GPT-4-Turbo tun kann. Oft können Sie Streaming und Tools gleichzeitig nicht verwenden. Und die LLMs werden oft überwunden und verstehen einfach nicht zuverlässig, wann Tools verwendet werden sollen und wie sie aufgerufen werden sollen. Mit OpenAIs GPT-4-Turbo können wir 30 und mehr mit nahezu perfekter Zuverlässigkeit verwenden.
Nach der Vorbereitung der Datei packages/frontend/src/config.ts können Sie ausführen:
yarn install
yarn workspace voice-assistant-frontend devconfig.ts enthüllen würde!