Plataforma de agentes de voz de código aberto de ponta a ponta : construa rapidamente os assistentes de conversação por voz através de um JSON.
Bolna é a estrutura pronta de produção de código aberto de ponta a ponta para criar rapidamente aplicativos de conversação baseados em voz baseados em LLM.
Bolna ajuda você a criar agentes de voz de IA que podem ser instruídos a realizar tarefas começando com:
Twilio , Plivo , Exotel , etc.Deepgram , etc.OpenAI , Llama , Cohere , Mistral , etc. para lidar com conversasAWS Polly , XTTS , ElevenLabs , Deepgram etc.Consulte os documentos para um profundo em todos os fornecedores suportados.
Uma configuração local básica inclui o uso de Twilio ou Plivo para telefonia. Dockerizamos a configuração em local_setup/ . É necessário preencher um arquivo .env do .env.sample .
A configuração consiste em quatro contêineres:
ngrok : Para tunelamento. É necessário adicionar o authtoken a ngrok-config.ymlredis : para agentes persistentes e dados rápidos Use o Docker para construir as imagens usando o arquivo .env como arquivo de ambiente e execute -as localmente
docker-compose build --no-cache <twilio-app | plivo-app> : reconstruir imagensdocker-compose up <twilio-app | plivo-app> : execute as imagens de construçãoDepois que os contêineres do Docker acordarem, agora você pode começar a criar seus agentes e instruí -los a iniciar chamadas.
Depois de ter a configuração e execução do Docker acima, você pode criar agentes e iniciar chamadas.
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 uma chamada através do servidor de telefonia em execução na porta 8001 (para Twilio) ou 8002 Port (para Plivo) em http://localhost:8001/call {
" agent_id " : " 4c19700b-227c-4c2d-8bgf-42dfe4b240fc " ,
" recipient_phone_number " : " +19876543210 " ,
} Você pode preencher o arquivo .env para usar suas próprias chaves para fornecedores.
| Provedor | Variável de ambiente a ser adicionado no arquivo .env |
|---|---|
| Deepgram | DEEPGRAM_AUTH_TOKEN |
Estes são a família atual do provedor LLM suportado: https://github.com/bolna-ai/bolna/blob/477e08d6800dbf02931abeeea883d78451b7d7e2/bolna/providers.py#l29-l44
Para LLMs baseados em Litellm, adicione um dos seguintes seguintes ao arquivo .env , dependendo do seu caso de uso:
LITELLM_MODEL_API_KEY : chave da API do LLM
LITELLM_MODEL_API_BASE : URL do LLM hospedado
LITELLM_MODEL_API_VERSION : versão da API para LLMS como o Azure
Para o LLMS hospedado via VLLM, adicione o seguinte ao arquivo .env :
VLLM_SERVER_BASE_URL : URL do LLM hospedado usando VLLM
| Provedor | Variável de ambiente a ser adicionado no arquivo .env |
|---|---|
| AWS Polly | Acessado a partir de credenciais amplas do sistema via ~/.aws |
| Elevenlabs | ELEVENLABS_API_KEY |
| Openai | OPENAI_API_KEY |
| Deepgram | DEEPGRAM_AUTH_TOKEN |
| Provedor | Variável de ambiente a ser adicionado no arquivo .env |
|---|---|
| Twilio | TWILIO_ACCOUNT_SID , TWILIO_AUTH_TOKEN , TWILIO_PHONE_NUMBER |
| Plivo | PLIVO_AUTH_ID , PLIVO_AUTH_TOKEN , PLIVO_PHONE_NUMBER |
Caso você queira estender e adicionar outra telefonia como Vonage, Telnyx, etc. Após as diretrizes abaixo:
Embora o repositório seja completamente de código aberto, você pode se conectar conosco se estiver interessado em ofertas hospedadas gerenciadas ou em soluções mais personalizadas.
Adoramos todos os tipos de contribuições: seja grande ou pequena ajuda para melhorar esse recurso da comunidade.