
Partager:
Oleksii est Developer Advocate chez Vonage, auteur et conteur. Il s'intéresse à l'IA/ML, aux communications unifiées, aux technologies de l'éducation, aux technologies cloud et à l'open source.
Intégrer les appels téléphoniques et WhatsApp avec OpenAI
Temps de lecture : 19 minutes
Introduction
L'IA générative s'est généralisée. Au cours de l'année écoulée, des modèles et des produits tels que ChatGPT et DALL-E 2 sont apparus, vous permettant de générer des textes, des images et du son. Les créateurs de ChatGPT et de DALL-E 2, OpenAI, ont ouvert ces outils puissants aux développeurs pour qu'ils puissent y accéder et créer de nouvelles applications imaginatives.
Cet article examine d'abord comment intégrer l Voice API de Vonage de Vonage et OpenAI API. Nous créerons une application qui recevra une invite d'un utilisateur via un appel téléphonique et l'enverra à un service d'IA générative. Nous enverrons la réponse de l'IA à l'utilisateur à l'aide de l'API l'API Messages de Vonage. Nous allons nous plonger dans l'action !
Conditions préalables
Nous avons déjà développé une application Vonage de démarrage pour recevoir un appel, attraper une réponse de l'utilisateur, l'envoyer à OpenAI, puis envoyer un message de réponse WhatsApp. Avec l'application de démarrage, il vous suffit d'ajouter vos identifiants dans le fichier .env et de déployer l'application à l'aide de Github Codespaces. De plus, vous pouvez modifier l'application de démarrage et expérimenter.
Pour commencer :
Fourchette ce dépôt. Ouvrez-le dans Codespaces en cliquant sur "Create codespace on main".
CLI de Vonage - Une fois Node.js installé, vous pouvez utiliser npm install -g @vonage/cli pour l'installer. Cet outil vous permet de créer et de gérer vos applications Vonage.

Vous pouvez également déployer l'application avec Node.js et ngrok.
Créer une nouvelle application Vonage
S'identifier/S'inscrire gratuitement developer.vonage.compour pouvoir utiliser l Voice API de Vonagede Vonage, vous devrez créer une Application Vonage à partir du portail des développeurs.
Toutes les demandes adressées à l'API Voice de Vonage nécessitent une authentification. Par conséquent, vous devez générer une clé privée avec l'API d'application, qui vous permet de créer des jetons Web JSON (JWT) pour effectuer les demandes. À des fins de démonstration, nous utiliserons la clé et le secret de l'API.
Dans le menu de gauche icicliquez sur Paramètres API. Sous l'onglet Clés API, vous trouverez votre clé API et le secret de votre Account (secret API).

Dans l'environnement Codespaces, copiez et collez dans le fichier .env la clé API et le secret API. Veillez à ne pas stocker ces informations dans le dépôt Github lui-même.
API_KEY=b**********
API_SECRET=******************Une application Vonage contient les informations de sécurité et de configuration dont vous avez besoin pour interagir avec les API Voice de Vonage.
Créons une Applications en utilisant le tableau de bord du développeur de Vonage.
Cliquez sur Applications dans le menu de gauche. Cliquez ensuite sur "Créer une nouvelle application". Vous devrez donner un nom à votre application. Par exemple, "VoiceApp". Vous devrez également générer une clé publique et une clé privée. Enfin, activez les capacités Voice.

Vérifiez-le à l'aide du CLI de Vonage.
Définir la configuration
Résultats attendus
Nous devons acheter un numéro virtuel pour que notre application accepte les appels téléphoniques. Vous pouvez le faire avec le CLI de Vonage :
Recherche et achat de numéros de téléphone virtuels.
Choisissez le numéro avec la mention
Voicedans la colonne Capacités.On peut rechercher des numéros par code de pays. L'API Numbers API des numéros de Vonage utilise les codes ISO Alpha-2. Trouvez les codes de pays listés ici.
La commande CLI suivante permet d'acheter un numéro virtuel :
Ou recherchez et achetez des numéros de téléphone virtuels en utilisant Tableau de bord Vonage. Sélectionnez la fonction Voice dans le menu déroulant.
Trouver notre application
Lier le numéro de téléphone et l'application
Par exemple
Réponse attendue :
Vous pouvez également lier des numéros en utilisant le tableau de bord de Vonage, allez dans Applications, ouvrez l'application concernée (par exemple VoiceApp), et cliquez sur le bouton "Lier" dans la liste des numéros.

Créer un objet de contrôle d'appel
Reconnaissance de la parole (ASR)
La reconnaissance automatique de la parole (ASR) permet aux applications de prendre en charge la saisie vocale dans des cas tels que le SVI, l'identification et différents types de robots/assistants vocaux. Grâce à cette fonction, notre application reçoit le discours transcrit de l'utilisateur (sous forme de texte) lorsqu'elle s'attend à ce que l'utilisateur réponde à une question en la formulant plutôt qu'en entrant des chiffres (DTMF) ; elle peut ensuite poursuivre le flux d'appels conformément à sa logique commerciale en fonction de ce que l'utilisateur a dit. Le schéma suivant montre comment notre application interagit avec l'API de Vonage par l'intermédiaire de l'objet de contrôle d'appel Nexmo (NCCO).

Vous pouvez utiliser l'action d'entrée pour collecter les données numériques ou vocales saisies par un utilisateur. Cette action est synchrone ; Vonage traite l'entrée et la transmet au point de terminaison du eventUrl webhook. Vous le configurerez pour recevoir cette entrée dans votre demande. Votre point de terminaison webhook doit renvoyer un autre NCCO qui remplace le NCCO existant et contrôle l'appel en fonction de l'entrée de l'utilisateur.
Nous pouvons voir comment tout cela fonctionne dans notre index.js fichier. Tout d'abord, l'application attend d'être déclenchée par le point de terminaison webhook/answer point de terminaison. Ensuite, l'Applications continue à travers les trois actions :
{
action: 'talk',
text: 'Hi, describe an image that you want to generate'
},
{
eventMethod: 'POST',
action: 'input',
eventUrl: [
'[Codespace-or-server-URL]/webhooks/asr'],
type: [ "speech" ],
speech: {
language: 'en-gb',
endOnSilence: 0.1
}
},
{
action: 'talk',
text: 'Thank you'
}Liens utiles :
Configurer Open AI
OpenAI a publié de nouvelles capacités de génération d'images avec leurs modèles DALL-E. L'API Open AI présente plusieurs aspects très intéressants. Tout d'abord, à partir de janvier 2023, les utilisateurs recevront 18 dollars de crédit gratuit qu'ils pourront utiliser au cours de leurs trois premiers mois. Cela fait beaucoup de crédits à utiliser ! Par exemple, vous pouvez créer ou modifier 900 images 1024x1024. Deuxièmement, selon le chapitre "Votre contenu" des conditions d'utilisation d'OpenAI : "... OpenAI vous cède par la présente tous ses droits, titres et intérêts sur le produit". Cela signifie que vous êtes totalement propriétaire des images générées pour toute utilisation, même à des fins commerciales.
Tout d'abord, après l'enregistrement et avoir confirmé votre numéro de téléphone, vous devez générer votre clé API.
Avec cette clé API, nous pouvons aller de l'avant.
Collez-la dans votre .env fichier
API_KEY=b**********
API_SECRET=******************
OPENAI_API_KEY=sk-**************************************Dans ce tutoriel, nous utilisons API Images pour générer une image.
Pour générer une image, nous utilisons la requête POST suivante.
var req = unirest('POST', 'https://api.openai.com/v1/images/generations')
.headers({
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + openaiApiKey
})avec la charge utile JSON suivante. Où vous pouvez gérer les paramètres
n- le nombre d'images générées, vous pouvez demander de 1 à 10 images à la foissize- les tailles disponibles sont 256x256, 512x512 ou 1024x1024 pixels. Les petites tailles sont plus rapides à générer.
.send(JSON.stringify({
"prompt": promptText,
"n": 1,
"size": "1024x1024"
}))Le texte d'invite que nous allons analyser à partir de la réponse de l'utilisateur que nous recevons en tant que webhook.
let promptText = request.body.speech.results[0].textAprès avoir reçu une réponse de l'API OpenAI, nous analyserons l'URL de l'image à partir du corps de la réponse.
let imgUrl = res.body.data[0].url Configurer l'API des messages de Vonage
L'API Messages de Vonage vous permet d'envoyer et de recevoir des messages par SMS, MMS, Facebook Messenger, Viber et WhatsApp ! Dans notre cas d'utilisation, nous utilisons WhatsApp, mais les utilisateurs peuvent modifier le code et utiliser Facebook ou Viber. N'oubliez pas de consulter la documentation de l'API Messages pour plus d'informations."
Nous utiliserons le bac à sable WhatsApp de l'API Messages de Vonage pour recevoir un message avec du contenu ou un lien.
Nous avons créé la fonction sentMsg qui reçoit deux paramètres, phoneNumberqui contient des informations sur le numéro de téléphone de l'appelant. et imgUrl que nous analysons à partir de la réponse de l'OpenAI.
function sentMsg(phoneNumber, imgUrl)Ouvrez WhatsApp sur votre smartphone et cliquez sur l'icône de la photo. Ensuite, scannez le code QR et cliquez sur Envoyer dans le message prérempli.

Ouvrir Bac à sable de l'API Messages si vous avez besoin d'informations supplémentaires ou si vous souhaitez utiliser un autre messager.
Déployer notre application dans Codespace
Ouvrez GitHub Codespace dans votre fork.
Dans le terminal Codespace, lancez la commande suivante pour installer nos paquets Node :
npm installExécutez la commande suivante dans le terminal pour recevoir l'URL de l'espace de code GitHub pour les webhooks
echo "https://${CODESPACE_NAME}-3000.preview.app.github.dev/webhooks/asr"Copiez et collez le résultat dans EVENT_URL= dans le fichier .env fichier
API_KEY=b**********
API_SECRET=******************
OPENAI_API_KEY=sk-**************************************
EVENT_URL=https://******************************************-3000.preview.app.github.dev/webhooks/asrNous devons maintenant mettre à jour les paramètres de l'application Vonage pour écouter les webhooks de CodeSpace. Nous pouvons le faire en utilisant le Tableau de bord. Allez à Applications dans le menu de gauche. Choisissez notre application actuelle et cliquez sur le bouton "Edit".

Mettez à jour les paramètres de l'application à l'aide de la CLI de Vonage. Collez l'URL de votre Codespace ou l'URL de votre serveur au lieu de [Codespace-or-server-URL] dans la commande CLI suivante
Exécuter l'application
Dans le terminal, ouvrez l'onglet Port (onglet). Cliquez sur Private dans la colonne Visibility et remplacez-la par Public.

Tout est prêt
Faites l'essai en appelant le numéro qui est lié à l'appli.
**732**56**Indiquez votre pourboire au robot
Attendre le contenu dans la messagerie correspondante
Surveiller la console
Vous trouverez ci-dessous un exemple d'image que vous pouvez recevoir sur votre téléphone.

Texte de l'invitation : Ukrainian Carpathians montane meadow, photograph, photorealistic 8K, HD
Synthèse
Félicitations ! Vous avez maintenant construit un bot qui répond à un appel entrant avec Vonage Voice API et qui envoie des messages avec Vonage Messages API. Le tout est hébergé sur GitHub Codespaces. Vous pouvez étendre ce projet avec Vonage AI Studioen ajoutant un flux de travail dynamique pour répondre différemment en fonction de l'entrée de l'appelant. Ou, puisque nous avons déjà intégré OpenAI, vous pourriez intégrer ChatGPT.
Montrez vos créations en matière d'IA ou faites-nous savoir comment nous pouvons vous aider ! Rejoignez la conversation sur notre Communauté Vonage Slack ou envoyez-nous un message sur sur Twitter.