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 也为编写此代码库的部分内容提供了充足的帮助?