ai-call
amanp8l/ai-call加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
凌晨两点,诊所前台早已无人值守。往常错过来电的患者只能第二天再拨,现在却有人随时接听——一位音色温和的 AI 助理 "Cosmo",来自印度 Redcliffe Labs,以女性医疗专家的身份,用流利的英语(或印地语)完成了血检预约登记,确认了时间地点,还贴心地给出了检前准备注意事项。
这不是概念演示,而是一个真实运行的开源项目——AI-Call。开发者 Aman Patel 将 Twilio 电话网络、OpenAI 实时语音 API 和 ElevenLabs 语音合成整合在一起,让任何人都能搭建一个"会说话"的 AI 客服。
AI-Call 的技术架构清晰而务实,可分为四个核心层次:
第一层:电话接入(Twilio)
Twilio 作为"桥梁",负责接收来自普通电话网络的来电,并将通话音频通过 WebSocket 实时转发给后端服务器。当 AI 准备好回复时,音频流再通过 Twilio 送回电话端——整个过程对用户而言,就是一通普通的电话。
第二层:语音理解(OpenAI Realtime API)
Twilio 转发的音频不是先转文字再处理,而是直接进入 OpenAI 的 gpt-4o-realtime-preview 模型。该模型原生支持语音输入,能够实时理解用户口语,生成回复文本,整个过程延迟极低。用户说"帮我预约明天上午十点的血检",AI 不需要先做 ASR(自动语音识别)这一步。
第三层:语音合成(ElevenLabs)
OpenAI 返回的文本回复,通过 ElevenLabs 的 API 转换为自然语音,返回给 Twilio 再传输给用户。开发者可以选择自定义音色,甚至克隆真实声音,实现高度拟人化交互。代码中默认使用 alloy 音色。
第四层:业务逻辑(FastAPI + Python)
后端由 FastAPI 驱动,处理 Twilio 的 /incoming-call 端点(返回 TwiML 连接指令)和 /media-stream WebSocket 端点(处理音频流)。SYSTEM_MESSAGE 中硬编码了 "Cosmo" 医疗助手的人设:一位 Redcliffe Labs 的女性健康专家,负责血检预约。
代码还包含了短信通知集成(Fast2SMS):当预约确认后,系统自动向指定号码发送确认短信,实现电话+短信双渠道闭环。
当用户拨打配置的 Twilio 电话号码,Twilio 将来电路由到 AI-Call 服务器。服务器返回 TwiML 指令,建立 WebSocket 连接,后续所有对话通过 AI 实时处理。用户无需安装任何 App,直接用手机打电话即可与 AI 对话。
AI-Call 支持用户随时打断 AI 说话(通过检测 input_audio_buffer.speech_started 事件),AI 会立即停止当前回复,响应用户的新输入。这一机制使对话更接近真实人际交流,避免了传统语音助手的"说完才能换话题"痛点。
.env 文件中配置 OPENAI_API_KEY、TWILIO_*、ELEVENLABS_API_KEY 和 SMS_KEY,支持 Twilio 呼入号码、呼出号码分别配置,以及短信通知服务的独立 Key 管理。
代码中硬编码了语言切换逻辑:默认使用英语,当用户使用印地语或 Hinglish 交流时,AI 自动切换至印地语响应。
AI-Call 目前不支持容器化部署(无 Dockerfile 或 docker-compose),也不提供 Web 管理界面,部署过程需要手动配置:
代码中有一个安全漏洞需要特别注意:mainpy 中硬编码了 Fast2SMS API Key 和目标手机号码,代码直接明文暴露了第三方短信服务的凭证,任何能看到源码的人都能使用该短信额度。这是生产部署前必须重构的部分。
部署难度评定为 中等,适合有一定 Node.js/Python 后端经验的开发者。
| 维度 | 评分 | 说明 |
|---|---|---|
| 架构清晰度 | ★★★★☆ | 四层分离明确,WebSocket 异步处理逻辑合理 |
| 代码完整性 | ★★★☆☆ | 功能完整但硬编码较多,配置与业务逻辑未分离 |
| 安全性 | ★★☆☆☆ | 明文存储 API Key,短信发送逻辑暴露在代码中 |
| 文档质量 | ★★★★☆ | README 结构清晰,包含安装步骤和用例说明 |
| 测试覆盖 | 暂无 | 未发现测试文件 |
成本风险:Realtime API 和 ElevenLabs 均按调用量计费,大规模呼入场景下成本不可忽视。代码中未实现通话时长限制或流量控制。
区域限制:Twilio 电话服务在中国大陆需翻墙访问,且部分功能受地区限制。ElevenLabs 对某些国家/地区同样存在访问限制。
安全性缺陷:代码中明文存储多个第三方 API Key(含短信服务凭证),生产环境必须迁移至密钥管理服务(AWS Secrets Manager、Vault 等)。
无状态管理:当前架构不支持多轮对话上下文持久化(会话状态仅存在于 WebSocket 连接生命周期内),重启服务后对话历史丢失。
AI-Call 代表了一个明确的趋势:语音交互正在从"命令-执行"模式向"自然对话"模式演进。借助 GPT-4o 的原生语音理解能力,开发者无需再组合 ASR + LLM + TTS 三个模型,一个 API 搞定语音输入输出。
这个项目目前更像是一个功能完整的"技术 Demo"而非生产级产品,但它展示了 AI 电话客服的最小可行架构。随着 Realtime API 的成熟和成本下降,预计 2025-2026 年会有大量类似应用涌现。对于想要快速验证"AI 能否替代人工客服"的团队,AI-Call 是一个值得研究的起点。