使用 Vapi 与 Shopify 构建多语言语音 AI 销售代理
- 作者

- 姓名
- Nino
- 职业
- Senior Tech Editor
在传统的电商运营中,人工电话客服与销售往往受限于人员成本、工作时间以及语言能力。随着实时语音处理与大语言模型(LLM)技术的突破,构建全自动、高智商的电话语音 AI 销售代理已成为可能。利用现代语音网关 Vapi、Shopify 电子商务数据库、n8n 低代码工作流引擎以及 n1n.ai 提供的极速大模型 API 接入,企业可以快速搭建一台能够自如应对多国语言、实时查询库存、解答商品疑问并辅助下单的电话 AI 销售机器人。
本教程将从系统架构设计、API 权限配置、n8n 工作流编写、多轮对话状态持久化到生产环境故障排查与延迟调优,全方位解析如何构建一套企业级多语言语音 AI 销售代理。
电商多语言语音 AI 销售代理的核心架构与工作原理
一套生产级别的语音 AI 销售系统需要将语音识别(STT)、业务逻辑编排、数据库查询、大语言模型推理(LLM)以及语音合成(TTS)解耦,形成异步事件驱动的工作流。系统整体运行逻辑如下:
- 语音接入与实时识别(Vapi):Vapi 接入电话线路或 WebRTC 音频流,执行实时语音识别,自动检测用户说话的 ISO 语言代码,并将转写文本打包为 JSON 提交给 Webhook。
- 自动化工作流编排(n8n):n8n Webhook 触发器接收请求,解析用户意图与语言标记,同时维护会话状态。
- 电商数据查询(Shopify GraphQL):n8n 提取关键词后向 Shopify 发起 GraphQL 查询,实时获取匹配商品的名称、价格、规格及库存状态。
- 多语言智能推理(统一 LLM API 网关):提示词、商品元数据及历史对话组合后,发送至大模型(如 OpenAI GPT-4 或 Claude 3.5 Sonnet)。通过 n1n.ai 统一接口接入,能有效保障在大并发下的低延迟响应,并严格输出对应语言的简短话术。
- 语音合成与流式回放(Google Cloud TTS & Vapi):大模型输出的文本被转换为高保真语音(MP3 流),通过 Vapi 实时播放给电话终端的用户。
系统核心组件技术选型与对照表
| 组件名称 | 推荐技术 / 平台 | 在系统中的核心职责 | 成本与性能参考指标 |
|---|---|---|---|
| 语音网关 | Vapi | 电话线路接听、实时多语言 STT、语音流调度 | 按通话分钟付费;端到端延迟 < 300ms |
| 电商后台系统 | Shopify | 商品目录管理、库存查询、订单生成(GraphQL API) | 标准版 $39/月起;API 限流 40 req/s |
| 工作流引擎 | n8n | Webhook 接收、数据解析、API 节点协同 | Community 开源版免费或 n8n 云服务 |
| LLM 推理 API | OpenAI GPT-4 / DeepSeek via n1n.ai | 动态语义理解、多语言话术生成与销售引导 | 通过 n1n.ai 统一调用,优化 Token 吞吐与稳定性 |
| 语音合成 (TTS) | Google Cloud Text-to-Speech | 文本转自然多语言语音(Neural / Polyglot 音色) | Standard 每百万字 16.00 |
| 会话持久化 | Supabase / PostgreSQL | 保存多轮对话上下文、购物车状态与通话日志 | 免费层支持 500 MB 数据存储 |
预计整体开发部署时间:8 到 12 小时(视对 API 及 n8n 的熟练程度而定)。
第一步:配置 Vapi 语音应用与多语言网关
Vapi 充当整个系统的语音前台,原生支持超过 30 种语言的自动识别与切换,无需配置多套独立的语言处理管道。
- 登录 Vapi 控制台,点击 Voice Applications -> Create New Application。
- 在应用设置页面,开启 Multilingual Speech-to-Text 与 Multilingual Text-to-Speech 功能。
- 在语言列表中添加目标市场语言代码(例如
en-US、es-ES、fr-FR、zh-CN)。 - 进入 Developer Settings 页面,复制 Vapi API Key 备用。
- 保持控制台打开,后续步骤中我们将填入 n8n 提供的 Webhook 回调地址。
第二步:创建 Shopify Custom App 并获取 GraphQL 访问权限
为了让 AI 销售代理能够读取商品价格与库存,我们需要在 Shopify 后台配置权限。
- 登录 Shopify 管理后台,依次点击 Apps -> Develop apps for your store。
- 点击 Create an app,命名为
VoiceSalesBot。 - 进入 Admin API Integration 页面,勾选以下权限作用域(Scopes):
read_products(查询商品目录与详情)read_inventory(查询实时库存量)write_orders(创建草稿订单)
- 点击 Install App,安全保存生成的 Admin API Access Token。
- 记录你的 Shopify GraphQL 接口地址:
https://YOUR-STORE-NAME.myshopify.com/admin/api/2023-10/graphql.json。
第三步:搭建 n8n 自动化编排工作流
n8n 是连接各 API 模块的核心枢纽。我们将一步一步配置输入解析、数据查询、LLM 生成与 TTS 输出。
1. Webhook 配置与意图解析
在 n8n 中新建 Workflow,添加一个 HTTP Webhook 节点,请求方式设为 POST。在 Webhook 后紧跟一个 Set 节点(命名为 ExtractIntent),提取语音转写文本与语言标志:
{
"nodes": [
{
"parameters": {
"values": {
"string": [
{
"name": "transcript",
"value": "={{ $json[\"speech\"][\"transcript\"] }}"
},
{
"name": "language",
"value": "={{ $json[\"speech\"][\"language\"] || 'en-US' }}"
},
{
"name": "callId",
"value": "={{ $json[\"call\"][\"id\"] }}"
}
]
}
},
"name": "ExtractIntent",
"type": "n8n-nodes-base.set",
"typeVersion": 1
}
]
}
2. 调用 Shopify GraphQL 查询实时数据
添加一个名为 FetchProduct 的 HTTP Request 节点,请求地址为 Shopify 的 GraphQL URL,请求头中携带 Authorization: Bearer YOUR_SHOPIFY_ADMIN_TOKEN。
请求体 JSON payload 结构如下:
{
"query": "query searchProducts($query: String!) { products(first: 3, query: $query) { edges { node { id title description variants(first: 1) { edges { node { id price availableForSale } } } } } } }",
"variables": {
"query": "{{ $json[\"transcript\"] }}"
}
}
3. 通过 n1n.ai 统一接口调用大语言模型
为避免单一模型 API 触发 Rate Limit 限制,并确保极速响应,推荐通过 n1n.ai 接口聚合接入 OpenAI GPT-4 或 Claude 模型。配置 HTTP 请求节点指向 n1n.ai 的 OpenAI 兼容 Endpoint:
Prompt 系统指令需严格限制字数,以适应电话语音的简明交互:
{
"model": "gpt-4-turbo",
"messages": [
{
"role": "system",
"content": "你是一名专业的线上商城电话 AI 销售助手。请使用语言代码 {{ $node[\"ExtractIntent\"].json[\"language\"] }} 回答客户。保持语气亲切自然,回答限制在 50 字以内。请根据以下商品数据回答:{{ JSON.stringify($node[\"FetchProduct\"].json[\"data\"][\"products\"]) }}"
},
{
"role": "user",
"content": "{{ $node[\"ExtractIntent\"].json[\"transcript\"] }}"
}
],
"temperature": 0.3
}
利用 n1n.ai 的 API 网关,开发者能够享受高可靠的负载均衡与高并发吞吐能力,避免因服务商抖动造成电话端出现长时间尴尬沉默。
4. 语音合成与 Vapi 响应回传
将大模型生成的文本传给 Google Cloud TTS HTTP 节点:
{
"input": {
"text": "{{ $json[\"choices\"][0][\"message\"][\"content\"] }}"
},
"voice": {
"languageCode": "{{ $node[\"ExtractIntent\"].json[\"language\"] }}",
"ssmlGender": "NEUTRAL"
},
"audioConfig": {
"audioEncoding": "MP3"
}
}
最后使用 n8n 的 Respond to Webhook 节点将合成的 MP3 链接或二进制数据回传给 Vapi,Vapi 将即时向用户播放回复语音。
使用 Supabase / PostgreSQL 实现多轮对话状态持久化
在语音销售场景中,单轮问答往往无法满足复杂的购物需求。例如用户第一句问 “这款黑色夹克多少钱?”,第二句接着问 “帮我把它加入购物车”。如果没有会话持久化,系统将丢失上下文。
在 ExtractIntent 节点后接入 Supabase / PostgreSQL 节点,以 callId 为主键记录会话状态:
-- 创建电话会话状态表
CREATE TABLE IF NOT EXISTS voice_sessions (
call_id VARCHAR(100) PRIMARY KEY,
language_code VARCHAR(10),
last_product_id VARCHAR(100),
conversation_history JSONB DEFAULT '[]'::jsonb,
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
在发起 LLM 请求前,通过 callId 从数据库读取历史对话记录 conversation_history,追加当前轮次的对话后一同送入大模型,即可轻松实现多轮连续对话上下文追踪。
运维、故障排查与防限流应对矩阵
当语音 AI 销售代理部署到生产环境面对真实客流时,系统可能面临各种边界异常。下表总结了常见故障模式及其工程化解决方案:
| 故障模式 | 核心引发原因与现象 | 生产级解决方案与修复策略 |
|---|---|---|
| 语言识别结果偏差 | 用户说西班牙语但系统识别为英语 | 在 ExtractIntent 节点中增加校验逻辑;若 Vapi 语言置信度低于 0.7,自动读取 Supabase 中上轮已确定的语言代码。 |
| Shopify API 限流 (429) | 超过商店最高 40 次 GraphQL 请求/秒限制 | 在 n8n 的 Shopify 请求节点前增加 Delay 延时节点(如 150ms),或在 Supabase/Redis 中对热门商品构建缓存。 |
| LLM 超额或响应超时 | 大模型 API 配额耗尽或服务抖动 | 统一通过 n1n.ai 网关调用 API,利用其多路由自动容灾机制与高额度通道保障服务连贯性。 |
| Google TTS 鉴权失效 | 语音合成返回 401 Unauthorized | 在 n8n 中建立定时 Cron 节点,每 50 分钟自动刷新 Google OAuth2 Token 或改用 Service Account JSON 密钥签名。 |
| Webhook 地址无法访问 | Vapi 提示 Webhook delivery failed | 确保 n8n 运行在具备固定公网 IP 和 SSL 证书的环境;生产环境建议配合 Nginx 负载均衡器。 |
| 通话并发导致成本失控 | 高并发长通话消耗大量 Token 与语音时长 | 在 Vapi 后台设置单次通话最大时长限制,并在 n8n 中通过 Function 节点核验当日预算后再发起 LLM 调用。 |
性能调优:将端到端延迟控制在 1.5 秒以内的工程 Pro Tips
对于电话语音交互,端到端延迟如果超过 2.0 秒,就会让用户产生明显的“机器滞后感”。为了将响应延迟压缩至 1.5 秒以内,可以采取以下调优措施:
- 热点商品本地化缓存:将商城前 50 名爆款商品的标题、价格与库存预加载至 Redis 或 Supabase,避免每次对话都实时查询 Shopify API。
- 流式 Token 处理 (Streaming):配置后端或 n8n 接收来自 n1n.ai 的流式输出,一旦大模型生成完整句子标点即可分句提交给 TTS,实现边生成边合成。
- SSML 语速微调:在提交给 Google Cloud TTS 的请求中加入 SSML 标记,将语速设置为 1.1 倍速,既能保持自然音色又能缩短语音回放耗时。
- 长连接保持 (Keep-Alive):在 n8n 与 API 服务商之间启用 HTTP 保持长连接,消除频繁进行 TLS 握手所消耗的时间。
完整测试与验证流程
- 在 Vapi 控制台中选择已配置的应用,点击 Dial Test Number(或使用 WebRTC 网页测试端)。
- 拨通电话并使用非英语进行测试,例如:“¿Tienen chaquetas de cuero disponibles y cuál es su precio?”(请问有皮革夹克吗?价格是多少?)
- 观察 n8n 的 Execution Log 运行日志:
ExtractIntent正确识别语言为es-ES。FetchProduct成功从 Shopify 检索到皮革夹克信息。- LLM 统一接口生成简洁的西班牙语回答。
- Google Cloud TTS 生成合成音频流。
- 确认电话端播放的声音清晰自然,回答准确无误且延迟极低。
总结与未来展望
结合 Vapi 的实时语音传输、Shopify 的商品数据支撑、n8n 的低代码编排以及 n1n.ai 稳定的多大模型 API 接入,企业能够以极低的门槛建立起 24 小时在线的多语言 AI 销售团队。无论是提升海外客群的转化率,还是降低人工客服的排班压力,语音 AI 销售代理都展现出了巨大的商业价值。
Get a free API key at n1n.ai