在现代呼叫中心运营中,自动化出站电话呼叫已成为提升效率的关键。通过 Microsoft Call Center AI 开源工具包,我们可以轻松构建 API 驱动的出站呼叫系统。该工具包集成了 Azure Communication Services、Cognitive Services 和 OpenAI GPT 模型,实现低延迟的语音转文本 (STT) 和文本转语音 (TTS),并支持持久状态管理,从而无需复杂的自定义电话系统即可实现可扩展的自动化。这种方法特别适合保险、IT 支持和客户服务等领域,能够在几小时内自定义 bot 以适应具体需求。
核心优势在于其无缝集成和实时处理能力。系统使用 Azure Communication Services 作为呼叫和 SMS 网关,支持入站和出站呼叫,而无需用户自行配置电话基础设施。这避免了传统电话系统的复杂性和高成本。STT 和 TTS 通过 Azure Cognitive Services 实现低延迟转换,支持实时流式传输,确保对话自然流畅。OpenAI 的 GPT-4o 和 GPT-4o-mini 模型处理智能对话,结合检索增强生成 (RAG) 机制安全处理敏感数据。同时,Cosmos DB 存储对话历史、claim 数据和提醒事项,实现断线续传和持久状态维护。例如,在呼叫中断后,系统可从上次状态恢复,继续对话而无需从头开始。
证据显示,这种架构在实际部署中表现出色。根据项目文档,该系统支持多语言和多种语音语气,通过 Redis 缓存提升效率,并集成 Application Insights 进行监控和追踪。项目强调了其在处理低到中等复杂度的呼叫时的 24/7 可用性,以及通过人类代理回退机制确保质量。引用项目概述:“Send a phone call from AI agent, in an API call. Or, directly call the bot from the configured phone number!” 这突显了 API 触发的简便性。此外,系统内置内容过滤和越狱检测,防范不当内容,确保合规性。
要落地实施,首先准备 Azure 资源:创建一个资源组、Communication Services 资源,并购买支持语音和 SMS 的电话号码。部署使用 Bicep 或 Makefile 自动化,支持远程 Azure 部署或本地开发。核心 API 调用通过 POST /call 端点触发出站呼叫,payload 示例包括 bot 公司、名称、目标电话号码、任务描述和 claim schema。任务描述应简短且用英语撰写,例如:“Help the customer with their digital workplace. Assistant is working for the IT support department.” Claim schema 定义数据字段,如 {"name": "hardware_info", "type": "text"},支持 text、datetime、email 和 phone_number 类型,并可选添加描述以指导 LLM。
配置选项丰富,可通过 config.yaml 文件自定义。语言支持列表中指定默认语言(如 fr-FR)和可用语音(如 fr-FR-DeniseNeural),并可集成自定义神经语音。提示模板使用占位符如 {bot_name},TTS 提示需用英语作为枢纽语言。特征标志通过 App Configuration 动态调整,无需重启应用,例如 answer_hard_timeout_sec=15(LLM 响应硬超时,秒)、phone_silence_timeout_sec=20(静音警告阈值,秒)、vad_threshold=0.5(语音活动检测阈值,0.1-1 间)。为优化延迟,使用 GPT-4o-mini 作为快速模型,并通过 Provisioned Throughput Units (PTU) 在 Azure OpenAI 上减少推理时间。监控参数包括 call.answer.latency(用户语音结束到 bot 响应开始的时间)和 LLM 令牌使用,通过 Application Insights 仪表板追踪。
可落地清单如下:
-
环境准备:安装 Azure CLI、yq 和 Make。创建资源组和 Communication Services,确保启用系统托管身份。
-
配置电话:从 Communication Services 购买号码,支持出站呼叫。更新 config.yaml 中的 phone_number 字段。
-
API 集成:在应用中实现 POST 请求,包含 JSON payload。示例 curl:
curl --header 'Content-Type: application/json' --request POST --url https://your-domain/call --data '{
"bot_company": "Contoso",
"bot_name": "Amélie",
"phone_number": "+11234567890",
"task": "Help the customer with their digital workplace.",
"agent_phone_number": "+33612345678",
"claim": [
{"name": "hardware_info", "type": "text"},
{"name": "first_seen", "type": "datetime"}
]
}'
-
状态管理:启用 Cosmos DB 持久化,设置 RU/s 为 1000 以处理中等负载。使用 Redis 缓存对话历史,TTL 设为 3600 秒。
-
低延迟优化:STT 配置 recognition_retry_max=3,recognition_stt_complete_timeout_ms=100。TTS 使用标准模型,字符限制 1M/月。集成 VAD 参数:vad_silence_timeout_ms=500,vad_cutoff_timeout_ms=250。
-
回滚与监控:设置人类代理回退阈值,如 satisfaction 低于 high 时转移。启用呼叫记录(recording_enabled=true),存储在 Azure Storage 容器中。监控成本:针对 1000 个 10 分钟呼叫,预计 $720/月,包括 Communication Services ($40)、OpenAI ($58.73) 和 Speech ($152.56)。
-
测试与扩展:本地使用 devtunnel 隧道测试 API。生产前添加多区域部署和安全检查,如 vNET 集成。私有端点确保数据安全。
这种参数化方法确保系统可扩展,支持从 POC 到生产的平滑过渡。通过细调模型,使用历史对话数据提升准确性,并 A/B 测试不同配置,进一步优化性能。最终,报告端点如 /report/{phone_number} 提供对话历史和 claim 数据,便于后续分析。
资料来源:Microsoft Call Center AI GitHub 仓库 (https://github.com/microsoft/call-center-ai),包括部署指南和架构文档。