Обеспечивает контролируемый голосовым интерфейсом AI-чата в вашем браузере. Помощник ИИ может использовать инструменты , которые интегрируются с различными услугами, такими как Spotify, Google Calendar и Google Maps.
Грубая идея для этого проекта состоит в том, чтобы иметь активируемый голосовым помощником, похожий на Amazon Alexa или Siri, но подкрепленный большой языковой моделью. В настоящее время он реализован как веб -сайт, работающий исключительно в вашем браузере. Он по умолчанию использует модель GPT-4O от OpenAI, настроенную с несколькими инструментами (aka «функциями»), которые позволяют ее интегрироваться с диапазоном API. Чтобы использовать эти API, должны быть предоставлены секреты, см. Ниже. Наиболее «сложные» интеграции предназначены для Google и Spotify.
Как правило, вы можете просто спросить помощника, что он может для вас сделать. ;-)
Создайте файл с именем config.ts в каталоге packages/frontend/src . Вы можете скопировать packages/frontend/src/config.ts.example и настроить их на ваши потребности.
// 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>" ;Этот файл игнорируется git.
ПРИМЕЧАНИЕ. В настоящее время необходимо предоставить вышеуказанный конфигуратор, так как он импортируется в коде и используется в качестве резерва. Однако из пользовательского интерфейса «Помощник настроек» можно настроить любое количество моделей и поставщиков LLM и переключаться между ними.
Чтобы использовать любую из моделей GPT-4, ваша учетная запись Platform.openai.com должна иметь информацию о выставлении счетов и один успешный оплату. Если ваша учетная запись никогда не была взималась, вы можете вручную инициировать платеж через «купить кредиты» на странице обзора счетов. Это «разблокирует» модели GPT-4.
Ключ API для openweathermap.org может быть для свободного уровня.
Точно так же ключ API для picovoice.ai может получить для личного использования. Это просто поставляется с ограничением ставки. Не предоставив PicoVoiceAccesskey, скорее всего, нарушит обнаружение бодрствования. Теоретически, API распознавания речи браузера используется в качестве запасного, но он давно не был проверен.
Чтобы получить ключ API для API Google, вам необходимо создать «проект» в консоли разработчика Google и включить следующие API:
Для дополнительной интеграции Google Calendar и контактов (включена в настройки помощника через Google Integration ), вам необходимо предоставить GoogleClientId в дополнение к GoogleApiKey . Причина в том, что вам нужно войти в систему с вашей учетной записью Google, и для этого требуется настройка клиента OAuth2 типового Web Application в Cloud Console Google для вашего проекта.
В вашем облачном проекте необходимо настроить ряд вещей:
OAuth 2.0-Client-ID :http://localhost:5173 и http://localhost в авторизованное происхождение JavaScript.http://localhost:5173/google-callback в авторизованное перенаправление URI.OAuth Consent Screen :http://localhost:5173 (не уверен, что это действительно необходимо.)https://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/contacts.readonlyhttps://www.googleapis.com/auth/photoslibrary.readonly Для дополнительной интеграции Spotify (включена в настройки помощника через Spotify Integration ), вам необходимо предоставить SpotifyClientId . Чтобы получить идентификатор клиента, вам необходимо зарегистрировать приложение на панели Dashboard Developer Spotify.
В качестве веб -сайта укажите http://localhost:5173 . В качестве перенаправления URL укажите http://localhost:5173/spotify-callback .
При включении интеграции Spotify вы будете перенаправлены на страницу входа в Spotify, где вам также необходимо дать голосовому помощнику (или как вы назвали свое приложение на приборной панели Spotify Developer) запрашиваемые разрешения. Кроме того, встроенные возможности потоковой передачи воспроизведения работают только для пользователей Spotify Premium, поскольку SDK Web Playback требует премиальной учетной записи.
Для дополнительной интеграции Microsoft (включена в настройки помощника через коммутатор Microsoft Integration ), вам необходимо предоставить MicrosoftClientId . Чтобы получить идентификатор клиента, вам нужно зарегистрировать приложение на портале Azure. У него должны быть следующие настройки:
Single Page Application .http://localhost:5173/microsoft-callback .User.Read и Calendars.ReadWrite .Существует множество услуг, которые предоставляют открытые конечные точки отдыха. Например, есть Localai, проект, который позволяет вам запускать различные LLM на местном уровне. Но есть и другие, такие как LM Studio, VLLM и так далее.
Эти проекты предоставляют API, который можно использовать (в основном) в качестве замены для выпадения для OpenAI.
По этой причине файл config.ts экспортирует completionsApiUrl и соответствующие настройки, такие как ключ API и имя модели. Это позволяет настроить другой сервер, совместимый с OpenAI. Я проверил Мистраль, Грок и другие. Тем не менее, поддержка инструментов в настоящее время очень ограничена по сравнению с тем, что может сделать GPT-4-Turbo. Часто вы не можете использовать потоковую передачу и инструменты одновременно. И LLM часто переигрывают и просто не достоверно понимают, когда использовать инструменты и как их вызывать. С GPT-4-Turbo от OpenAI мы можем использовать 30 и более с близкой к идеальной надежности.
После подготовки файла packages/frontend/src/config.ts вы можете запустить:
yarn install
yarn workspace voice-assistant-frontend devconfig.ts !