aidialer
1.0.0
一篇部落格文章解釋了該專案背後的工作。
一個完整的堆疊應用程序,用於可中斷、低延遲和接近人類質量的 AI 電話,由拼接 LLM、語音理解工具、文本到語音模型和 Twilio 的電話 API 構建
聽聽看範例通話
以下元件已以串流方式實現和組合在一起,以實現低延遲和可中斷的AI 呼叫任務:
(您可能想要建立一個 Python 虛擬環境以最大限度地減少衝突的可能性。)
pip install -r requirements.txt
ngrok
Twilio 需要外部可存取的伺服器才能路由呼叫。要在執行本機執行個體時執行此操作,您需要將伺服器公開給外界。一種方法是使用ngrok
執行ngrok
以取得將流量轉送至本機 Web 伺服器的外部 URL:
ngrok http 3000
複製 ngrok 為您提供的 URL(例如1bf0-157-131-155-236.ngrok-free.app
),不帶https://
開頭,並將其設定為下一節中的SERVER
變數。
複製.env.example
檔案並將其重命名為.env
。然後設定所需的憑證和配置。
請注意,對於 LLM 服務,您可以在anthropic
和openai
之間進行選擇;對於 TTS 服務,您可以在deepgram
和elevenlabs
之間進行選擇。
# Server Configuration
SERVER=your_server_here
# port number if you are running the server locally
PORT=3000
# Service API Keys
# Twlio
TWILIO_ACCOUNT_SID=your_twilio_account_sid
TWILIO_AUTH_TOKEN=your_twilio_auth_token
# AI Services
## LLM
OPENAI_API_KEY=your_openai_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
## Speech Understanding/TTS
DEEPGRAM_API_KEY=your_deepgram_api_key
## TTS
ELEVENLABS_API_KEY=your_elevenlabs_api_key
ELEVENLABS_MODEL_ID=eleven_turbo_v2
ELEVENLABS_VOICE_ID=XrExE9yKIg1WjnnlVkGX
# Which service to use for TTS
TTS_SERVICE=elevenlabs
# Which service to use for LLM
LLM_SERVICE=openai
# When you call a number, what should the caller ID be?
APP_NUMBER=your_app_number
# When UI launches, what number should it call by default
YOUR_NUMBER=your_number
# When a call needs to be transferred, what number should it be transferred to?
TRANSFER_NUMBER=your_transfer_number
# AI Configuration
SYSTEM_MESSAGE="You are a representative called Sarah from El Camino Hospital. Your goal is to obtain a prior authorization for a patient called John Doe for a knee surgery. Be brief in your correspondence."
INITIAL_MESSAGE="Hello, my name is Sarah, and I'm calling from El Camino Hospital. I need to discuss a prior authorization for a patient. Could you please direct me to the appropriate representative?"
# Should calls be recorded? (this has legal implications, so be careful)
RECORD_CALLS=false
假設您已建立 Twilio 電話號碼並安裝了 Twilio 的 CLI,請執行以下命令將 Twilio 設定為使用您的應用程式的端點:
twilio phone-numbers:update YOURNUMBER --voice-url=https://NGROKURL/incoming
python app.py
streamlit ui/streamlit_app.py
歡迎貢獻!請隨時提交 Pull 請求。
版權所有阿米爾·基亞尼,2024
根據 MIT 許可證共享代碼
如果沒有 Twilio Labs 的這個出色的 TypeScript 範例,這個專案就不會發生。 Claude Sonnet 3.5、GPT-4o 和 Aider 也為撰寫此程式碼庫的部分內容提供了充足的幫助?