La plupart des implémentations vocales de l'IA échouent à grande échelle lorsque des informations personnelles fuient via des transcriptions ou des pics de latence lors d'appels simultanés. Créez un système de production en utilisant vapi pour l'intelligence conversationnelle et Twilio pour une fiabilité de niveau opérateur. Mettez en œuvre un enregistrement double canal avec reconnaissance d’entité en temps réel pour garantir la conformité. Résultat : gérez plus de 1 000 appels simultanés avec une latence inférieure à 500 ms et une exposition nulle aux informations personnelles dans les journaux.
Clés API et informations d'identification
Vous avez besoin d'une clé API VAPI (générée sur Dashboard.vapi.ai) et d'un compte Twilio avec jeton d'authentification et SID de compte. Conservez-les dans.env:
VAPI_API_KEY=votre_clé_ici TWILIO_ACCOUNT_SID=votre_sid TWILIO_AUTH_TOKEN=votre_tokenConfiguration système requise
Node.js 18+ (pour async/wait et récupération native). PostgreSQL 13+ ou similaire pour l'état de session et les journaux d'audit PII. Redis 6+ pour l'état des appels distribués sur plusieurs serveurs (critique pour la mise à l'échelle au-delà des déploiements à instance unique).
Versions du SDK
Configuration du réseau
Point de terminaison HTTPS public (ngrok, Cloudflare Tunnel ou domaine de production) pour les rappels de webhook. Le pare-feu doit autoriser le trafic entrant sur le port 443. Accès sortant à api.vapi.ai et api.twilio.com requis.
Hypothèses de connaissances
Familiarité avec les API REST, JavaScript asynchrone et les concepts audio de base (PCM 16 kHz, encodage mulaw). Compréhension des flux OAuth et de la validation des signatures webhook attendue.
VAPI : Démarrer avec VAPI → Obtenir VAPI
La plupart des systèmes vocaux de production échouent car ils traitent la transcription et la rédaction des informations personnelles comme des problèmes distincts. Voici l'architecture qui évolue :
// Configuration de l'assistant de production avec enregistrement double canal + rédaction de PII const assistantConfig = { modèle : { fournisseur : "openai", modèle : "gpt-4", température : 0,3, systemPrompt : "Vous êtes un agent du service client. Collectez : nom, numéro de compte, motif de l'appel. NE JAMAIS répéter mot pour mot les données sensibles." }, voix : { fournisseur : "11labs", voiceId : "21m00Tcm4TlvDq8ikWAM" }, transcripteur : { fournisseur : "deepgram", modèle : "nova-2", langue : "en", mots-clés : ["account", "social security", "credit card"] }, recordingEnabled : true, hipaaEnabled : true, // Déclenche la rédaction des PII côté serveur endCallFunctionEnabled : true, serverUrl : process.env.WEBHOOK_URL, serverUrlSecret : process.env.WEBHOOK_SECRET } ;Critique:hipaaEnabled : vraiactive le pipeline de rédaction intégré de Vapi. Sans cela, vous stockez des informations personnelles brutes dans les enregistrements d'appels, un véritable cauchemar en matière de conformité.
organigramme LR A[Appel utilisateur] --> B[Transcripteur Vapi] B --> C[Détection PII] C --> D[Transcription rédigée] D --> E[Traitement LLM] E --> F[Votre Webhook] F --> G[CRM externe] G --> F F --> E E --> H[Réponse TTS] H --> ALe flux empêche les fuites de données personnelles à TROIS couches : transcription (les mots clés signalent les termes sensibles), invite LLM (instructions contre la répétition) et stockage (le mode HIPAA est rédigé avant l'écriture).
Étape 1 : Gestionnaire de Webhook avec validation de signature
const express = require('express'); const crypto = require('crypto'); const app = express(); app.use(express.json()); // Valider les signatures de webhook - empêche les attaques par rejeu function validateSignature(req) { const signature = req.headers['x-vapi-signature']; charge utile const = JSON.stringify(req.body); const hash = crypto .createHmac('sha256', process.env.WEBHOOK_SECRET) .update(payload) .digest('hex'); return crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(hash) ); } app.post('/webhook/vapi', async (req, res) => { if (!validat...
[Courte citation de 8% de l'article original]