แพลตฟอร์มตัวแทนเสียงโอเพนซอร์สแบบ end-to-end : สร้าง Voice Firsts Firsts Assistants ผ่าน JSON
Bolna เป็นเฟรมเวิร์กการผลิตแบบครบวงจรแบบ end-to-end สำหรับการสร้างแอพพลิเคชั่นการสนทนาที่ขับเคลื่อนด้วยเสียงที่ใช้ LLM อย่างรวดเร็ว
Bolna ช่วยให้คุณสร้างตัวแทนเสียง AI ซึ่งสามารถสั่งให้ทำงานที่เริ่มต้นด้วย:
Twilio
, Plivo
, Exotel
ฯลฯDeepgram
ฯลฯOpenAI
, Llama
, Cohere
, Mistral
และอื่น ๆ เพื่อจัดการการสนทนาAWS Polly
, XTTS
, ElevenLabs
, Deepgram
ฯลฯอ้างถึงเอกสารสำหรับผู้ให้บริการที่ได้รับการสนับสนุนทั้งหมด
การตั้งค่าในท้องถิ่นขั้นพื้นฐานรวมถึงการใช้ Twilio หรือ Plivo สำหรับโทรศัพท์ เราได้ทำการตั้งค่าการตั้งค่าใน local_setup/
หนึ่งจะต้องเติมไฟล์สภาพแวดล้อม .env
จาก .env.sample
การตั้งค่าประกอบด้วยสี่คอนเทนเนอร์:
ngrok
: สำหรับอุโมงค์ หนึ่งจะต้องเพิ่ม authtoken
to 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/blob/477e08d6800dbf02931abeeaea883d78451b7d7e2/bolna/providers.py#l29-l44
สำหรับ LLM ที่ใช้ Litellm ให้เพิ่มไฟล์ใด ๆ ต่อไปนี้ลงในไฟล์ .env
ขึ้นอยู่กับกรณีการใช้งานของคุณ:
LITELLM_MODEL_API_KEY
: คีย์ API ของ LLM
LITELLM_MODEL_API_BASE
: url ของโฮสต์ llm
LITELLM_MODEL_API_VERSION
: API เวอร์ชันสำหรับ LLMS เช่น Azure
สำหรับ LLM ที่โฮสต์ผ่าน VLLM ให้เพิ่มสิ่งต่อไปนี้ในไฟล์ .env
:
VLLM_SERVER_BASE_URL
: url ของโฮสต์ LLM โดยใช้ vllm
ผู้ให้บริการ | ตัวแปรสภาพแวดล้อมที่จะเพิ่มในไฟล์ .env |
---|---|
Aws Polly | เข้าถึงได้จากข้อมูลรับรองความกว้างของระบบผ่าน ~/.aws |
สิบเอ็ดคน | 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 ฯลฯ ตามแนวทางด้านล่าง:
แม้ว่าพื้นที่เก็บข้อมูลจะเป็นโอเพ่นซอร์สอย่างสมบูรณ์ แต่คุณสามารถเชื่อมต่อกับเราหากสนใจในข้อเสนอที่โฮสต์ที่มีการจัดการหรือโซลูชันที่กำหนดเองมากกว่า
เรารักการมีส่วนร่วมทุกประเภท: ไม่ว่าจะเป็นขนาดเล็กหรือเล็กในการปรับปรุงทรัพยากรชุมชนนี้