エンドツーエンドのオープンソース音声エージェントプラットフォーム:JSONを介して音声を最初に会話アシスタントをすばやく構築します。
Bolnaは、LLMベースの音声駆動型の会話アプリケーションを迅速に構築するためのエンドツーエンドのオープンソース生産準備準備完了フレームワークです。
Bolnaは、次のようにタスクを実行するように指示できるAI音声エージェントの作成を支援します。
Twilio
、 Plivo
、 Exotel
などのテレフォニープロバイダーを使用して電話を開始します。Deepgram
などを使用して会話を転写します。OpenAI
、 Llama
、 Cohere
、 Mistral
などのLLMを使用して会話を処理するAWS Polly
、 XTTS
、 ElevenLabs
、 Deepgram
などを使用したテレフォニーへのLLM応答の合成。サポートされているすべてのプロバイダーへの深いディービングについては、ドキュメントを参照してください。
基本的なローカルセットアップには、テレフォニーのためのTwilioまたはPlivoの使用が含まれます。 local_setup/
のセットアップをDockerizedにしました。 .env.sample
から環境.env
ファイルを入力する必要があります。
セットアップは4つのコンテナで構成されています。
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
としてuuidを返します。このagent_id
を使用して、 http://localhost:8001/call
で、 8001
ポート(Twilio用)または8002
ポート(Plivo用)で実行されているテレフォニーサーバーを介して通話を開始します {
" agent_id " : " 4c19700b-227c-4c2d-8bgf-42dfe4b240fc " ,
" recipient_phone_number " : " +19876543210 " ,
}
.env
ファイルを設置して、プロバイダーに独自のキーを使用できます。
プロバイダー | .env ファイルに追加される環境変数 |
---|---|
ディープグラム | DEEPGRAM_AUTH_TOKEN |
これらは、現在サポートされているLLMプロバイダーファミリーです:https://github.com/bolna-ai/bolna/blob/477e08d6800dbf02931abeeea883d78451b7d7e2/bolna/providers.py#l29-l44
LitellmベースのLLMの場合、使用ケースに応じて.env
ファイルに次のいずれかを追加します。
LITELLM_MODEL_API_KEY
:LLMのAPIキーLITELLM_MODEL_API_BASE
:ホストされたLLMのURL
LITELLM_MODEL_API_VERSION
:azureのようなllmsのAPIバージョン
VLLMを介してホストされているLLMSについては、 .env
ファイルに以下を追加します。
VLLM_SERVER_BASE_URL
:vllmを使用してホストされたLLMのURL
プロバイダー | .env ファイルに追加される環境変数 |
---|---|
AWS POLLY | 〜/.aws経由でシステム全体の資格情報からアクセス |
evelenlabs | ELEVENLABS_API_KEY |
Openai | OPENAI_API_KEY |
ディープグラム | DEEPGRAM_AUTH_TOKEN |
プロバイダー | .env ファイルに追加される環境変数 |
---|---|
トワイリオ | TWILIO_ACCOUNT_SID 、 TWILIO_AUTH_TOKEN 、 TWILIO_PHONE_NUMBER |
プリボ | PLIVO_AUTH_ID 、 PLIVO_AUTH_TOKEN 、 PLIVO_PHONE_NUMBER |
以下のガイドラインに従って、Vonage、Telnyxなどの他のテレフォニーを拡張して追加したい場合は次のとおりです。
リポジトリは完全にオープンソースですが、管理されたホスト提供やカスタマイズされたソリューションに興味がある場合は、接続できます。
私たちはあらゆる種類の貢献を愛しています。このコミュニティリソースの改善において、大規模または小さいかどうか。