End-to-End-Open-Source-Voice-Agents-Plattform : Bauen Sie schnell Voice First Conversational Assistants über einen JSON auf.
Bolna ist das End-to-End-Open-Source-Produktionsrahmen für den schnellen Aufbau von LLM-basierten sprachgesteuerten Konversationsanwendungen.
Bolna hilft Ihnen, AI -Sprachmittel zu erstellen, die angewiesen werden können, Aufgaben zu erledigen, beginnend mit:
Twilio
, Plivo
, Exotel
usw.Deepgram
usw.OpenAI
, Llama
, Cohere
, Mistral
usw., um Gespräche zu behandelnAWS Polly
, XTTS
, ElevenLabs
, Deepgram
usw.In den Dokumenten finden Sie in allen unterstützten Anbietern eine Deepdive.
Ein grundlegendes lokales Setup beinhaltet die Verwendung von Twilio oder Plivo für Telefonie. Wir haben das Setup in local_setup/
angedanzt. Man muss eine Umgebung .env.sample
.env
Das Setup besteht aus vier Behältern:
ngrok
: Zum Tunneln. Man muss das authtoken
zu ngrok-config.yml
hinzufügenredis
: für anhaltende Agenten und schnelle Daten Verwenden Sie Docker, um die Bilder mit der .env
-Datei als Umgebungsdatei zu erstellen und auszuführen und lokal auszuführen
docker-compose build --no-cache <twilio-app | plivo-app>
: Bilder wieder aufbauendocker-compose up <twilio-app | plivo-app>
: Führen Sie die Build-Bilder ausSobald die Docker -Container abgelaufen sind, können Sie jetzt anfangen, Ihre Agenten zu erstellen und sie anzuweisen, Anrufe zu initiieren.
Sobald Sie das oben genannte Docker -Setup und ausgeführt haben, können Sie Agenten erstellen und Anrufe einleiten.
http://localhost:5001/agent
zu erstellen {
" 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
zurück. Verwenden Sie diesen agent_id
, um einen Anruf über den auf 8001
-Port (für Twilio) oder 8002
Port (für Plivo) ausgeführten Telefonverservel unter http://localhost:8001/call
zu initiieren {
" agent_id " : " 4c19700b-227c-4c2d-8bgf-42dfe4b240fc " ,
" recipient_phone_number " : " +19876543210 " ,
}
Sie können die .env
-Datei bevölkern, um Ihre eigenen Schlüssel für Anbieter zu verwenden.
Anbieter | Umgebungsvariable in .env -Datei hinzugefügt werden |
---|---|
Deepgram | DEEPGRAM_AUTH_TOKEN |
These are the current supported LLM Provider Family: https://github.com/bolna-ai/bolna/blob/477e08d6800dbf02931abeeea883d78451b7d7e2/bolna/providers.py#L29-L44
Fügen Sie für LCELLM-basierte LLMs je nach Anwendungsfall eine der folgenden Angaben zur .env
Datei hinzu:
LITELLM_MODEL_API_KEY
: API -Schlüssel des LLM
LITELLM_MODEL_API_BASE
: URL des gehosteten LLM
LITELLM_MODEL_API_VERSION
: API -Version für LLMs wie Azure
Fügen Sie für LLMs, die über VllM gehostet werden, die folgende Fügen Sie der Datei .env
hinzu:
VLLM_SERVER_BASE_URL
: URL des gehosteten LLM mit VLLM
Anbieter | Umgebungsvariable in .env -Datei hinzugefügt werden |
---|---|
AWS Polly | Zugriff von systemweiten Anmeldeinformationen über ~/.AWs |
Elflabs | ELEVENLABS_API_KEY |
Openai | OPENAI_API_KEY |
Deepgram | DEEPGRAM_AUTH_TOKEN |
Anbieter | Umgebungsvariable in .env -Datei hinzugefügt werden |
---|---|
Dämmerung | TWILIO_ACCOUNT_SID , TWILIO_AUTH_TOKEN , TWILIO_PHONE_NUMBER |
Plivo | PLIVO_AUTH_ID , PLIVO_AUTH_TOKEN , PLIVO_PHONE_NUMBER |
Falls Sie eine andere Telefonie wie Vonage, Ternyx usw. erweitern und hinzufügen möchten, folgen Sie den folgenden Richtlinien:
Obwohl das Repository vollständig Open Source ist, können Sie sich mit uns verbinden, wenn Sie an verwalteten gehosteten Angeboten oder maßgeschneiderten Lösungen interessiert sind.
Wir lieben alle Arten von Beiträgen: ob groß oder klein, um diese Community -Ressource zu verbessern.