Fornece uma interface de bate-papo de IA controlada por voz no seu navegador. O assistente de IA pode usar ferramentas que se integram a vários serviços, como Spotify, Google Calendar e Google Maps.
A idéia difícil para este projeto é ter um assistente ativado por voz semelhante ao Amazon Alexa ou Siri, mas apoiado por um grande modelo de idioma. Atualmente, é implementado como um site em execução puramente no seu navegador. Padrões de usar o modelo GPT-4O do OpenAI configurado com várias ferramentas (também conhecidas como "funções") que permitem integrar-se a uma variedade de APIs. Para usar essas APIs, os segredos devem ser fornecidos, veja abaixo. As integrações mais "sofisticadas" são para o Google e Spotify.
Geralmente, você pode simplesmente perguntar ao assistente o que ele pode fazer por você. ;-)
Crie um arquivo chamado config.ts no diretório packages/frontend/src . Você pode copiar os packages/frontend/src/config.ts.example e ajustá -lo às suas necessidades.
// 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>" ;Este arquivo é ignorado pelo Git.
Nota: Atualmente, a configuração acima deve ser fornecida, pois é importada no código e usada como fallback. No entanto, a partir da interface do usuário do Assistente, é possível configurar qualquer número de modelos e provedores de LLM e alternar entre eles.
Para usar qualquer um dos modelos GPT-4, sua conta Platform.openai.com deve ter informações de cobrança e um pagamento bem-sucedido. Se sua conta nunca foi cobrada, você pode iniciar manualmente um pagamento por meio de "compra de créditos" na página de visão geral do faturamento. Isso "desbloqueará" os modelos GPT-4.
A chave da API para OpenWeatherMap.org pode ser para o nível gratuito.
Da mesma forma, a chave da API para picovoice.ai é gratuita para obter para uso pessoal. Apenas vem com um limite de taxa. Não fornecer o PicovoiceAccessKey provavelmente quebrará a detecção de vigília. Em teoria, a API de reconhecimento de fala do navegador é usada como um retorno, mas não é testado há algum tempo.
Para obter uma chave de API para as APIs do Google, você precisa criar um "projeto" no console do Google Developer e ativar as seguintes APIs:
Para a integração opcional do Google Calendar and Contacts (ativado nas configurações do assistente por meio da Google Integration Switch), você precisa fornecer um GoogleClientId além do GoogleApiKey . O motivo é que você precisa fazer login com sua conta do Google, e isso requer a configuração de um cliente OAuth2 do Web Application do tipo no console do Google Cloud para o seu projeto.
Várias coisas precisam ser configuradas em seu projeto em nuvem:
OAuth 2.0-Client-ID :http://localhost:5173 e http://localhost às origens JavaScript autorizadas.http://localhost:5173/google-callback aos URIs de redirecionamento autorizados.OAuth Consent Screen :http://localhost:5173 (não tenho certeza se isso é realmente necessário.)https://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/contacts.readonlyhttps://www.googleapis.com/auth/photoslibrary.readonly Para a integração opcional do Spotify (ativado nas configurações do assistente através da Spotify Integration ), você precisa fornecer um SpotifyClientId . Para obter um ID do cliente, você precisa registrar um aplicativo no painel do Spotify Developer.
Como site, especifique http://localhost:5173 . Como URL de redirecionamento, especifique http://localhost:5173/spotify-callback .
Ao ativar a integração do Spotify, você será redirecionado para uma página de login do Spotify, onde também precisa fornecer assistente de voz (ou como você nomeou seu aplicativo no painel do desenvolvedor do Spotify) as permissões solicitadas. Além disso, os recursos de streaming de reprodução incorporados funcionam apenas para usuários premium do Spotify, já que o SDK de reprodução da web requer uma conta premium.
Para a integração opcional da Microsoft (ativada nas configurações de assistente através da Microsoft Integration ), você precisa fornecer um MicrosoftClientId . Para obter um ID do cliente, você precisa registrar um aplicativo no portal do Azure. Deve ter as seguintes configurações:
Single Page Application .http://localhost:5173/microsoft-callback .User.Read e Calendars.ReadWrite .Existem vários serviços que fornecem pontos de extremidade de descanso compatíveis com o OpenAI. Por exemplo, existe localai, um projeto que permite executar vários LLMs localmente. Mas há outros como LM Studio, Vllm e assim por diante.
Esses projetos fornecem uma API que pode ser usada (principalmente) como substituição do OpenAI.
Por esse motivo, o arquivo config.ts exporta as completionsApiUrl e configurações relacionadas, como a chave da API e o nome do modelo. Isso permite configurar outro servidor compatível com o OpenAI. Eu testei Mistral, Groq e outros. No entanto, o suporte para ferramentas é atualmente muito limitado em comparação com o que o GPT-4-Turbo pode fazer. Muitas vezes, você não pode usar streaming e ferramentas simultaneamente. E os LLMs geralmente são sobrecarregados e simplesmente não entendem com segurança quando usar as ferramentas e como invocá -las. Com o GPT-4-Turbo da Openai, podemos usar 30 e mais com confiabilidade quase perfeita.
Depois de preparar o arquivo packages/frontend/src/config.ts , você pode executar:
yarn install
yarn workspace voice-assistant-frontend devconfig.ts !