端到端開源語音代理平台:通過JSON快速構建語音首先是對話助手。
Bolna是端到端開源生產的準備框架,用於快速構建基於LLM的語音驅動對話應用程序。
BOLNA可幫助您創建AI語音代理,可以指示以以下方式完成任務:
Twilio
, Plivo
, Exotel
等的電話提供商啟動電話。Deepgram
等轉錄對話等。OpenAI
, Llama
, Cohere
, Mistral
等LLM來處理對話AWS Polly
, XTTS
, ElevenLabs
, Deepgram
等合成llm響應返回電話。請參閱文檔,以了解所有受支持的提供商。
基本的本地設置包括使用Twilio或Plivo的電話。我們已經在local_setup/
中停止了設置。一個人需要從.env.sample
中填充環境.env
文件。
該設置由四個容器組成:
ngrok
:用於隧道。一個人需要將authtoken
添加到ngrok-config.yml
redis
:對於持久的代理和提示數據使用docker使用.env
文件作為環境文件構建圖像並在本地運行
docker-compose build --no-cache <twilio-app | plivo-app>
:重建圖像docker-compose up <twilio-app | plivo-app>
:運行構建圖像Docker容器啟動後,您現在可以開始創建您的代理並指示他們啟動呼叫。
完成上述Docker設置和運行後,您可以創建代理並啟動呼叫。
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
。使用此agent_id
通過在8001
端口上運行的電話服務器(用於Twilio)或8002
端口(對於PLIVO)啟動http://localhost:8001/call
{
" agent_id " : " 4c19700b-227c-4c2d-8bgf-42dfe4b240fc " ,
" recipient_phone_number " : " +19876543210 " ,
}
您可以填充.env
文件以使用自己的密鑰為提供商。
提供者 | 環境變量要在.env 文件中添加 |
---|---|
深色 | DEEPGRAM_AUTH_TOKEN |
這些是當前支持的LLM提供商家庭:https://github.com/bolna-ai/bolna/bolna/blob/477E08D6800DBF02931ABEEEA883D78451B7D7D7E2/BOLNA
對於基於LITELLM的LLM,請根據您的用.env
添加以下兩個文件:
LITELLM_MODEL_API_KEY
:llm的API鍵LITELLM_MODEL_API_BASE
:託管LLM的URL
LITELLM_MODEL_API_VERSION
:azure等llms的API版本
對於通過VLLM託管的LLM,將以下內容添加到.env
文件:
VLLM_SERVER_BASE_URL
:使用VLLM的託管LLM的URL
提供者 | 環境變量要在.env 文件中添加 |
---|---|
AWS Polly | 通過〜/.aw從系統寬的憑據訪問 |
Elevenlabs | ELEVENLABS_API_KEY |
Openai | OPENAI_API_KEY |
深色 | DEEPGRAM_AUTH_TOKEN |
提供者 | 環境變量要在.env 文件中添加 |
---|---|
Twilio | TWILIO_ACCOUNT_SID , TWILIO_AUTH_TOKEN , TWILIO_PHONE_NUMBER |
Plivo | PLIVO_AUTH_ID , PLIVO_AUTH_TOKEN , PLIVO_PHONE_NUMBER |
如果您希望擴展並添加其他一些電話,例如Vonage,telnyx等。遵循以下準則:
儘管存儲庫是完全開源的,但如果對託管託管產品或更多定制解決方案感興趣,您可以與我們聯繫。
我們喜歡各種類型的貢獻:無論大小都可以幫助改善社區資源。