منصة وكلاء صوت مفتوحة المصدر من طرف إلى طرف : قم ببناء مساعدين للمحادثات الصوتية بسرعة من خلال JSON.
Bolna هو إطار جاهز لإنتاج المصادر المفتوحة المصدر من طرف إلى طرف لإنشاء تطبيقات محادثة تعتمد على الصوت LLM بسرعة.
تساعدك بولنا على إنشاء عوامل صوت منظمة العفو الدولية التي يمكن توجيهها للقيام بمهام تبدأ بـ:
Twilio
، Plivo
، Exotel
، إلخ.Deepgram
، إلخ.OpenAI
، Llama
، Cohere
، Mistral
، إلخ للتعامل مع المحادثاتAWS Polly
، XTTS
، ElevenLabs
، Deepgram
وما إلى ذلك.ارجع إلى المستندات للحصول على عمق في جميع مقدمي الخدمات المدعومة.
يتضمن الإعداد المحلي الأساسي استخدام Twilio أو Plivo للاتصال الهاتفي. قمنا بتجميع الإعداد في local_setup/
. سيحتاج المرء إلى ملء ملف .env
من .env.sample
.
يتكون الإعداد من أربع حاويات:
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 | DEEPGRAM_AUTH_TOKEN |
هذه هي عائلة موفر LLM المدعومة الحالية: https://github.com/bolna-ai/bolna/blob/477e08d6800dbf02931abeea883d78451b7d7e2/bolna/providers.py#l29-l44
بالنسبة إلى LLMs المستندة إلى LLMS ، أضف أيًا مما يلي إلى ملف .env
اعتمادًا على حالة الاستخدام:
LITELLM_MODEL_API_KEY
: مفتاح API الخاص بـ LLM
LITELLM_MODEL_API_BASE
: url of the المستضافة LLM
LITELLM_MODEL_API_VERSION
: إصدار API لـ llms مثل Azure
لـ LLMS المستضافة عبر VLLM ، أضف ما يلي إلى ملف .env
:
VLLM_SERVER_BASE_URL
: URL من LLM المستضافة باستخدام VLLM
مزود | متغير البيئة المراد إضافته في ملف .env |
---|---|
AWS بولي | تم الوصول إليها من بيانات اعتماد واسعة من النظام عبر ~/.aws |
أحد عشر | ELEVENLABS_API_KEY |
Openai | OPENAI_API_KEY |
Deepgram | DEEPGRAM_AUTH_TOKEN |
مزود | متغير البيئة المراد إضافته في ملف .env |
---|---|
twilio | TWILIO_ACCOUNT_SID ، TWILIO_AUTH_TOKEN ، TWILIO_PHONE_NUMBER |
بلفو | PLIVO_AUTH_ID ، PLIVO_AUTH_TOKEN ، PLIVO_PHONE_NUMBER |
في حال كنت ترغب في تمديد وإضافة بعض الهاتفيات الأخرى مثل Vonage ، Telnyx ، إلخ. بعد الإرشادات أدناه:
على الرغم من أن المستودع مفتوح المصدر بالكامل ، إلا أنه يمكنك الاتصال بنا إذا كنت مهتمًا بالعروض المدارة المدارة أو المزيد من الحلول المخصصة.
نحن نحب جميع أنواع المساهمات: سواء كانت مساعدة كبيرة أو صغيرة في تحسين هذا المورد المجتمعي.