Plataforma de agentes de voz de código abierto de extremo a extremo : construya rápidamente los asistentes de conversación de voz de voz a través de un JSON.
Bolna es el marco de producción de código abierto de extremo a extremo para construir rápidamente aplicaciones de conversación de voz basadas en la voz basadas en LLM.
Bolna te ayuda a crear agentes de voz de IA que pueden recibir instrucciones de hacer tareas que comienzan con:
Twilio
, Plivo
, Exotel
, etc.Deepgram
, etc.OpenAI
, Llama
, Cohere
, Mistral
, etc. para manejar las conversacionesAWS Polly
, XTTS
, ElevenLabs
, Deepgram
, etc.Consulte los documentos para obtener un profundo a todos los proveedores respaldados.
Una configuración local básica incluye el uso de Twilio o Plivo para telefonía. Hemos cuadrado la configuración en local_setup/
. Uno necesitará completar un archivo .env
archivo de .env.sample
.
La configuración consta de cuatro contenedores:
ngrok
: para túneles. Uno necesitará agregar el authtoken
a ngrok-config.yml
redis
: para agentes persistentes y datos rápidos Use Docker para construir las imágenes usando el archivo .env
como archivo de entorno y ejecutarlas localmente
docker-compose build --no-cache <twilio-app | plivo-app>
: Rebuild Imagesdocker-compose up <twilio-app | plivo-app>
: ejecute las imágenes de compilaciónUna vez que los contenedores Docker están activos, ahora puede comenzar a crear sus agentes e instruirlos para iniciar llamadas.
Una vez que tenga la configuración y ejecución de Docker anterior, puede crear agentes e iniciar llamadas.
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
. Use este agent_id
para iniciar una llamada a través del servidor de telefonía que se ejecuta en el puerto 8001
(para twilio) o el puerto 8002
(para plivo) en http://localhost:8001/call
{
" agent_id " : " 4c19700b-227c-4c2d-8bgf-42dfe4b240fc " ,
" recipient_phone_number " : " +19876543210 " ,
}
Puede completar el archivo .env
para usar sus propias claves para proveedores.
Proveedor | Variable de entorno que se agregará en el archivo .env |
---|---|
Engaño | DEEPGRAM_AUTH_TOKEN |
Estos son la familia de proveedores LLM compatible actual: https://github.com/bolna-ai/bolna/blob/477e08d6800dbf02931abeeea883d78451b7d7e2/bolna/providers.py#l29-l44
Para LLM basados en Litellm, agregue cualquiera de los siguientes al archivo .env
dependiendo de su caso de uso:
LITELLM_MODEL_API_KEY
: clave API del LLM
LITELLM_MODEL_API_BASE
: URL de la LLM alojada
LITELLM_MODEL_API_VERSION
: versión API para LLM como Azure
Para LLMS alojados a través de VLLM, agregue lo siguiente al archivo .env
:
VLLM_SERVER_BASE_URL
: URL de la LLM alojada usando VLLM
Proveedor | Variable de entorno que se agregará en el archivo .env |
---|---|
AWS Polly | Accedido desde credenciales de todo el sistema a través de ~/.AWS |
Once | ELEVENLABS_API_KEY |
Opadai | OPENAI_API_KEY |
Engaño | DEEPGRAM_AUTH_TOKEN |
Proveedor | Variable de entorno que se agregará en el archivo .env |
---|---|
Twilio | TWILIO_ACCOUNT_SID , TWILIO_AUTH_TOKEN , TWILIO_PHONE_NUMBER |
Plivo | PLIVO_AUTH_ID , PLIVO_AUTH_TOKEN , PLIVO_PHONE_NUMBER |
En caso de que desee extender y agregar alguna otra telefonía como Vonage, Telnyx, etc. Siguiendo las pautas a continuación:
Aunque el repositorio es completamente abierto, puede conectarse con nosotros si está interesado en ofertas alojadas administradas o soluciones más personalizadas.
Nos encanta todo tipo de contribuciones: ya sea grande o pequeño, ayudando a mejorar este recurso comunitario.