Plateforme d'agents vocaux open-source de bout en bout : Construisez rapidement les assistants conversationnels des premières voix via un JSON.
Bolna est le cadre prêt à la production open source de bout en bout pour la construction rapide d'applications conversationnelles basées sur la voix basées sur LLM.
Bolna vous aide à créer des agents vocaux d'IA qui peuvent être invités à effectuer des tâches à partir de:
Twilio
, Plivo
, Exotel
, etc.Deepgram
, etc.OpenAI
, Llama
, Cohere
, Mistral
, etc. pour gérer les conversationsAWS Polly
, XTTS
, ElevenLabs
, Deepgram
, etc.Reportez-vous aux documents pour un Deepdive dans tous les fournisseurs soutenus.
Une configuration locale de base comprend l'utilisation de Twilio ou Plivo pour la téléphonie. Nous avons docké la configuration dans local_setup/
. Il faudra remplir un fichier .env
environnement à partir de .env.sample
.
La configuration se compose de quatre conteneurs:
ngrok
: pour le tunneling. Il faudra ajouter l' authtoken
à ngrok-config.yml
redis
: pour les agents persistants et les données rapides Utilisez Docker pour créer les images à l'aide du fichier .env
comme fichier environnement et exécutez-les localement
docker-compose build --no-cache <twilio-app | plivo-app>
: Rebuild Imagesdocker-compose up <twilio-app | plivo-app>
: Exécutez les images de constructionUne fois les conteneurs Docker en place, vous pouvez maintenant commencer à créer vos agents et leur demander d'initier des appels.
Une fois que vous avez la configuration et l'exécution de Docker ci-dessus, vous pouvez créer des agents et lancer des appels.
http://localhost:5001/agent
{
" agent_config " : {
" agent_name " : " Alfred " ,
" agent_type " : " other " ,
" agent_welcome_message " : " Welcome " ,
" tasks " : [
{
" task_type " : " conversation " ,
" toolchain " : {
" execution " : " parallel " ,
" pipelines " : [
[
" transcriber " ,
" llm " ,
" synthesizer "
]
]
},
" tools_config " : {
" input " : {
" format " : " pcm " ,
" provider " : " twilio "
},
" llm_agent " : {
" agent_flow_type " : " streaming " ,
" provider " : " openai " ,
" request_json " : true,
" model " : " gpt-3.5-turbo-16k " ,
" use_fallback " : true
},
" output " : {
" format " : " pcm " ,
" provider " : " twilio "
},
" synthesizer " : {
" audio_format " : " wav " ,
" provider " : " elevenlabs " ,
" stream " : true,
" provider_config " : {
" voice " : " Meera - high quality, emotive " ,
" model " : " eleven_turbo_v2_5 " ,
" voice_id " : " TTa58Hl9lmhnQEvhp1WM "
},
" buffer_size " : 100.0
},
" transcriber " : {
" encoding " : " linear16 " ,
" language " : " en " ,
" provider " : " deepgram " ,
" stream " : true
}
},
" task_config " : {
" hangup_after_silence " : 30.0
}
}
]
},
" agent_prompts " : {
" task_1 " : {
" system_prompt " : " Ask if they are coming for party tonight "
}
}
}
agent_id
. Utilisez ce agent_id
pour lancer un appel via le serveur de téléphonie exécutant sur le port 8001
(pour Twilio) ou le port 8002
(pour Plivo) sur http://localhost:8001/call
{
" agent_id " : " 4c19700b-227c-4c2d-8bgf-42dfe4b240fc " ,
" recipient_phone_number " : " +19876543210 " ,
}
Vous pouvez remplir le fichier .env
pour utiliser vos propres clés pour les fournisseurs.
Fournisseur | Variable d'environnement à ajouter dans le fichier .env |
---|---|
Profondeur | DEEPGRAM_AUTH_TOKEN |
Ce sont la famille du fournisseur LLM prise en charge actuelle: https://github.com/bolna-ai/bolna/blob/477e08d6800dbf02931abeeea883d78451b7d7e2/bolna/providers.py#l29-l44
Pour les LLM basés sur Litellm, ajoutez l'une ou l'autre des éléments suivants au fichier .env
en fonction de votre cas d'utilisation:
LITELLM_MODEL_API_KEY
: clé API du LLM
LITELLM_MODEL_API_BASE
: URL du LLM hébergé
LITELLM_MODEL_API_VERSION
: version de l'API pour les LLM comme Azure
Pour les LLM hébergés via VLLM, ajoutez ce qui suit au fichier .env
:
VLLM_SERVER_BASE_URL
: URL du LLM hébergé en utilisant vllm
Fournisseur | Variable d'environnement à ajouter dans le fichier .env |
---|---|
AWS Polly | Accessible à partir des informations d'identification à large largeur système via ~ / .AWS |
Elevenlabs | ELEVENLABS_API_KEY |
Openai | OPENAI_API_KEY |
Profondeur | DEEPGRAM_AUTH_TOKEN |
Fournisseur | Variable d'environnement à ajouter dans le fichier .env |
---|---|
Twilio | TWILIO_ACCOUNT_SID , TWILIO_AUTH_TOKEN , TWILIO_PHONE_NUMBER |
Plivo | PLIVO_AUTH_ID , PLIVO_AUTH_TOKEN , PLIVO_PHONE_NUMBER |
Dans le cas où vous souhaitez prolonger et ajouter une autre téléphonie comme Vonage, Telnyx, etc. Suivant les directives ci-dessous:
Bien que le référentiel soit entièrement open source, vous pouvez vous connecter avec nous si vous êtes intéressé par des offres hébergées gérées ou des solutions plus personnalisées.
Nous aimons tous les types de contributions: qu'il s'agisse d'une grande ou petite aide pour améliorer cette ressource communautaire.