https://a.storyblok.com/f/270183/1368x665/5109a1b421/create-a-voice-chatbot_24.png

Crie um chatbot de voz com a Voice API e a API da OpenAI em Java

Publicado em June 6, 2024

Tempo de leitura: 4 minutos

A Voice API da Vonage é uma ferramenta para desenvolvedores integrarem recursos de chamadas de voz em suas aplicações. Ela oferece recursos como fazer e receber chamadas telefônicas, controle de chamadas (por exemplo, encaminhamento e gravação de chamadas), conversão de texto em fala e de fala em texto, sistemas de resposta de voz interativa (IVR) e muito mais. Com a Voice API da Vonage, os desenvolvedores podem criar applications, como sistemas de triagem de chamadas, assistentes virtuais, plataformas de teleconferência e linhas diretas de atendimento ao cliente.

Neste tutorial, vamos combiná-lo com a API da OpenAI (ChatGPT) para criar um chatbot de voz. Veremos como implantar e personalizar o bot no Vonage Cloud Runtime , o que elimina a necessidade de gerenciar servidores e hospedagem por conta própria.

Pré-requisitos

  • Um account de desenvolvedor da Vonage. Se você ainda não tiver um, crie uma conta.

  • Um número de telefone da Vonage. Ele pode ser adquirido usando o crédito gratuito disponível no painel de desenvolvedores da Vonage, na seção “Numbers” (barra lateral esquerda).

  • Uma chave da API da OpenAI no Painel da API da OpenAI. Guarde essa chave em um local seguro, pois você não poderá visualizá-la novamente após criá-la. Você precisará adquirir créditos da OpenAI para receber com sucesso uma resposta à sua solicitação.

Como criar e implantar seu aplicativo

Depois de fazer login na sua conta de desenvolvedor da Vonage, acesse a Voice ChatGPT Bot (Java) CodeHub page. Na guia “Implantar código”, clique em “Implantar nova instância”.

Page Voice ChatGPT Bot (Java) with the tab "Deploy Code" with a box around it to highlightDeploy Code Tab

Na janela pop-up, dê um nome à sua instância, escolha sua região da AWS, atribua um número de telefone da Vonage a este projeto e insira seu segredo da API da OpenAI. Clique em “Continuar”. Seu aplicativo aparecerá em “Instâncias implantadas”. Clique em “Iniciar” para iniciá-lo.

Page showing a log of status (running), Instance name (bot), Region (AWS - US Virginia), Created (less than a minute ago), and a "Launch" buttonCreate IstanceVocê será direcionado para uma nova página, na qual será solicitado que selecione um idioma. Depois de escolher o idioma de sua preferência, clique em “Definir idioma”.

Page showing "Vonage Voice ChatGPT Bot Call you Vonage Number (+1 confidential number blocked out) The bot language is currently set to:English (United States)"Set Language

Como personalizar o código

Vá até a aba “Obter código” e clique em “Criar um novo ambiente de desenvolvimento”.

How to Customize the Code page with the "Get Code" tab boxed to highlightGet Code

Na janela pop-up, dê um nome à sua instância, escolha sua região da AWS, atribua a este projeto o mesmo número de telefone da Vonage usado anteriormente e digite novamente o segredo da API da OpenAI. Clique em “Continuar”. Você será então direcionado ao seu espaço de trabalho:

Workspace of Vonage Cloud Runtime showing the Voice ChatGPT Bot README.md fileCloud Runtime Assim que a área de trabalho estiver aberta, você verá que o aplicativo de exemplo já foi implantado e está pronto para uso! Ligue para o número de telefone da Vonage, faça uma pergunta e você deverá receber uma resposta.

Detalhamento do fluxo de chamadas

O aplicativo de exemplo que você vê no espaço de trabalho do Vonage Cloud Runtime já contém um código funcional que você pode incluir em seu próprio aplicativo. Esta seção irá guiá-lo pelo fluxo do aplicativo quando uma chamada é acionada, explicando como cada arquivo Java funciona nesse processo:

  1. Chegada da chamada (CallbackController.java): A chamada chega ao número de telefone da Vonage atribuído ao aplicativo. CallbackController.java é o principal ponto de entrada da chamada, responsável por lidar com todos os eventos de entrada.

  2. Saudações e reconhecimento de fala (VoiceCallService.java): VoiceCallService.java reproduz uma mensagem de saudação usando a funcionalidade de conversão de texto em fala (TTS) da Vonage. Em seguida, fica à escuta da fala do usuário por meio do recurso de reconhecimento de voz da Vonage. É nesse momento que o usuário faria sua pergunta.

  3. Tratamento de erros (VoiceCallService.java): Se o reconhecimento de fala falhar, VoiceCallService.java reproduz uma mensagem de erro e repete a etapa 2.

  4. Integração com a OpenAI (VoiceCallService.java): Se o reconhecimento de fala for bem-sucedido, a pergunta do usuário é extraída do texto reconhecido. VoiceCallService.java interage com OpenAI.java para enviar a pergunta ao serviço ChatGPT da OpenAI usando sua chave de API armazenada em VCRConfig.java.

  5. Geração de respostas (Externa – OpenAI): O ChatGPT da OpenAI gera uma resposta à pergunta do usuário.

  6. Entrega da resposta (VoiceCallService.java): VoiceCallService.java recebe a resposta da OpenAI. Reproduz música de espera enquanto converte a resposta de texto em fala usando a funcionalidade TTS da Vonage (provavelmente configurada em LanguageModel.java). Por fim, a fala convertida é reproduzida para o usuário.

Arquivos adicionais:

  • Vonage.java: Oferece acesso às APIs da Vonage por meio de credenciais armazenadas em VCRConfig.java.

  • VCRConfig.java: Armazena detalhes de configuração do Vonage e de outros serviços gerenciados pelo Spring Boot.

  • LanguageReader.java: Lê a configuração de idioma de um arquivo JSON para opções de TTS e mensagens.

  • ChatGptApplication.java: A classe principal do aplicativo que executa todo o processo como um aplicativo Spring Boot.

Junte-se à festa

Você criou com sucesso um bot de voz do ChatGPT usando a Voice API da Vonage e a API da OpenAI no Vonage Cloud Runtime! Você pode aprimorar ainda mais o bot adicionando seus próprios recursos. Nossa comunidade de desenvolvedores está crescendo no Slack, e adoraríamos que você fizesse parte dela. Se você acabar experimentando este tutorial, adoraria saber sua opinião. Fique à vontade para me marcar no X, antes conhecido como Twitter, e seguir minha equipe por lá também.

Compartilhar:

https://a.storyblok.com/f/270183/384x384/b68093ec17/diana-pham.png
Diana PhamRepresentante de Desenvolvedores

Diana é defensora de desenvolvedores na Vonage. Ela gosta de comer ostras frescas.