在 AI 呼叫中心场景中,出站电话 API 是实现 AI 代理主动拨打客户号码的关键接口,能无缝集成语音合成(TTS)、语音转文本(STT)与实时对话逻辑,避免传统 IVR 的僵化交互。Microsoft 的 Call Center AI 项目提供了一个代码优先的 API 示例,通过单一 POST 请求即可发起呼叫,支持自定义任务描述、数据收集 schema 与代理转接。该设计强调实时流式处理,确保低延迟对话,并内置断线重连机制,适用于保险理赔、IT 支持等中低复杂度场景。
核心 API 接口为 POST /call,请求体 JSON 格式包含必要参数。首先,bot_company(如 "Contoso")与 bot_name(如 "Amélie")定义代理身份,用于个性化提示注入,提升用户信任感。phone_number 指定目标客户号码(E164 格式,如 "+11234567890"),agent_phone_number 为可选转接号码,用于人工 fallback。task 字段是关键,描述呼叫目标,例如 "Help the customer with their digital workplace. Assistant is working for the IT support department.",长度控制在 100-200 字,确保 LLM 聚焦任务而不发散。claim 数组定义结构化数据收集 schema,每项包含 name(如 "hardware_info")、type(text/datetime/phone_number/email)与可选 description,用于引导 LLM 提取信息并验证格式。
呼叫发起后,Azure Communication Services 负责拨号与音频中继,通过 Event Grid 推送事件至队列,触发容器化应用处理。音频流经 Cognitive Services 的 STT(实时模式,recognition_retry_max=3,recognition_stt_complete_timeout_ms=100),转换为文本后注入 OpenAI GPT(如 gpt-4o-mini),结合 RAG(AI Search 检索内部文档)生成响应。响应经 TTS(Neural 语音,支持自定义声音)转为音频流回传,实现全双工对话。项目使用 Redis 缓存历史上下文,Cosmos DB 持久化 claim、messages、reminders 与 synthesis,避免重复采集。
工程落地时,参数调优至关重要。vad_threshold=0.5(0.1-1 范围)平衡语音活动检测灵敏度,避免噪音误触发;vad_silence_timeout_ms=500 与 vad_cutoff_timeout_ms=250 控制静音阈值,防止过早结束输入。LLM 侧,answer_soft_timeout_sec=4(发送等待提示)、answer_hard_timeout_sec=15(中止重试),结合 phone_silence_timeout_sec=20 触发助理警告,提升流畅性。callback_timeout_hour=3 限制自动回拨时效,feature flags(如 recording_enabled)通过 App Configuration 动态控制,无需重启。针对延迟瓶颈,优先 PTU(Provisioned Throughput Units)部署 OpenAI,或 fallback gpt-4o-mini(成本低 10-15x 性能相当)。
监控体系依赖 Application Insights,追踪 call.answer.latency(用户语音结束至 bot 响应起始时延)、call.aec.droped(回声消除丢帧)与 call.aec.missed(回声残留)。自定义指标结合 OpenLLMetry 记录 LLM tokens、prompts 与 spans,便于定位 STT/LLM/TTS 瓶颈。报告 API(如 /report/{phone_number})实时展示对话历史、claim 数据与提醒列表,支持事后审计。
部署清单简明:1) Azure 资源组 + Communication Services(系统托管身份);2) 购买号码(voice+SMS);3) config.yaml 配置 LLM endpoint、Speech keys、schema;4) make deploy name={rg-name}(使用 ghcr.io/clemlesne/call-center-ai:main 镜像);5) 本地迭代:make tunnel + uv run local.py 测试无电话场景。成本估算:1000 通 10 分钟呼叫约 720 USD/月,主因 Cosmos RU/s 与 Speech 计费,生产需 vNET 私有端点增安全。
风险控制包括 moderation levels(Content Safety 阈值 0-7)、jailbreak 检测与工具调用过滤。扩展时,自定义 claim schema 添加字段验证,prompts.tts.hello_tpl 注入占位符随机化(如 {bot_name}),llm.system_tpl 嵌入日期/上下文。虽为 POC,工程参数已高度可配置,结合细调历史数据(脱敏后),可快速适配生产。
资料来源:Microsoft GitHub 项目 https://github.com/microsoft/call-center-ai(POC 架构与 API 示例)。
(正文字数:1028)