# 智能预约助手：模型与语音供应商选型

> 日期：2026-08-02<br>
> 状态：**Recommendation / M0 推荐基线，待账号开通、合规复核与语料实测**<br>
> 影响范围：智能预约 M0，不影响 `phase2-pilot-rc6`<br>
> Architecture Review Required：`Yes`<br>
> Access / Privacy Review Required：`Yes`<br>
> 官方资料查阅日期：2026-08-02

**关联文档**

- [智能预约助手产品与技术方案 v0.1](./宠小它智能预约助手-产品与技术方案-v0.1.md)
- [智能预约助手 M0 编码任务 brief](./智能预约助手-M0编码任务brief-2026-08-02.md)

## 1. 推荐结论

M0 的默认技术基线建议为：

| 能力 | 推荐供应商与模型 | 调用边界 |
|---|---|---|
| 语音转写 | 阿里云百炼华北2（北京）`qwen3-asr-flash-2026-02-10` | OpenAI 兼容 HTTP 同步调用，Base64/Data URL 直传，不中转 OSS，不持久化原始录音 |
| 预约意图提取 | 阿里云百炼华北2（北京）`qwen-plus-2025-12-01` | 非思考模式 + `response_format=json_object` + 服务端 JSON Schema 二次校验 |
| ASR 对照候选 | 腾讯云 `SentenceRecognition` | 仅在同一批脱敏/已授权语音语料上对照，不直接进生产 |
| LLM 备选 | 腾讯云 TokenHub 的国内文本模型 | 供应商适配层预留，M0 不同时维护两条生产路径 |

不建议把 OpenAI API 作为当前 Petstore 中国大陆生产默认。OpenAI 官方说明仅支持列表中的国家和地区，中国大陆不在当前列表中；未列出地区不受支持，且可能导致账号被停用。

这个结论是 **M0 工程默认**，不是长期供应商锁定。所有外部能力必须通过 Petstore 自有适配接口调用。

## 2. 选型前提

智能预约不是知识问答或通用 Agent。它的模型任务只有：

1. 把当次文字和已验证草稿转换成结构化 `draftPatch`；
2. 识别 `book / modify / end / fallback` 等有限意图；
3. 标记歧义和建议下一个状态机动作。

它不需要联网检索、知识库、长上下文、平台托管 Agent 或模型直接工具调用。宠物、服务和号源必须由 Petstore 后端确定性解析。

因此选型优先级为：

1. 中国大陆可达与明确数据部署范围；
2. 中文口语、时间表达、宠物名称和门店服务识别；
3. 非思考模式下稳定输出 JSON；
4. 可固定模型快照，避免别名自动升级导致行为漂移；
5. 明确的密钥、区域、超时、限流、费用和数据保留口径；
6. 最终才是模型绝对能力和单次价格。

## 3. 候选方案评估

### 3.1 阿里云百炼全链路（推荐 M0 默认）

**区域和网络**

- 百炼官方提供华北2（北京）`cn-beijing` 地域和中国内地服务部署范围；
- 官方地域说明称推理过程数据不持久化、传输加密，静态数据位于所选地域；
- 生产建议使用业务空间专属域名，不使用试用域名。

**语音转写**

- `qwen3-asr-flash-2026-02-10` 支持普通话、四川话、闽南语、吴语、粤语等中文语音类型及多语种；
- 官方 OpenAI 兼容接口支持公网 URL 或 Base64 Data URL，可在录音结束后同步转写，无需把用户录音中转到公网 OSS；
- 官方允许以 system message 提供背景文本和实体词表，M0 只传当前门店服务名和当前 customer 的宠物展示名，不传手机号或其他客户数据；
- 官方限制是 5 分钟/10 MB，M0 继续使用更小的 60 秒/3 MB 业务门禁；
- 当前官方列价为 `0.00022 元/秒`，不包含活动优惠。

**结构化意图提取**

- `qwen-plus-2025-12-01` 在华北2（北京）官方标注支持 Function Calling 和结构化输出；
- 百炼 OpenAI 兼容接口支持 `response_format={"type":"json_object"}`；
- M0 使用固定快照 `qwen-plus-2025-12-01`，不使用可自动升级的 `latest` 别名；
- M0 关闭思考模式，不开启联网或平台内置工具；
- JSON mode 只保证可解析 JSON，Petstore 服务端仍必须校验字段、枚举、长度和状态转换。

**风险**

- Petstore 当前服务器在腾讯云，调用百炼需经过公网 HTTPS，必须做真实延迟和可用性实测；
- 需新开阿里云百炼业务空间、独立 API Key 和费用告警；
- 语音及文本的合同保留、删除和工单口径需在生产开通前再做一次 Access / Privacy Review。

### 3.2 腾讯云全链路（对照/备选）

**语音转写优势**

- `SentenceRecognition` 适合 60 秒内短音频，支持音频数据或 URL，大小不超过 3 MB；
- 官方文档列出普通话、粤语、上海话、四川话等多种方言，默认频率限制 30 次/秒；
- 可直接在现有腾讯云账号与服务器体系中配置，运维链路较短。

**隐私注意点**

- 腾讯云 ASR SDK 隐私规则要求开发者在收集和上传音频前完成告知和合法授权；
- 官方 FAQ 说明上传音视频文件不会保存，但识别后的文本文件会在服务器上保存 7 天；
- 腾讯云语音优化用户数据授权是自愿授权，Petstore 不应开启该额外授权。

因为 Petstore 方案的默认原则是不持久化完整对话原文，「识别文本保留 7 天」必须在隐私告知和供应商数据处理评审中明确，不能只依赖我们自己不落库。

**文本模型平台变化**

- 腾讯云官方已说明原混元/DeepSeek API 售卖入口逐步迁移到 TokenHub；
- 新项目应使用 TokenHub 而非旧混元平台，OpenAI SDK 兼容 `base_url` 为 `https://tokenhub.tencentmaas.com/v1`；
- TokenHub 可选模型变化较快，正式纳入前需按具体模型快照验证 JSON 遵循、时间表达和延迟。

### 3.3 腾讯 ASR + 阿里 Qwen（仅当实测显著更好）

混合方案可在不改模型的情况下使用腾讯 ASR，但会引入：

- 两套云账号、密钥、费用告警和故障域；
- 两份数据处理和隐私告知边界；
- 更长的排障链路。

只有当腾讯 ASR 在 Petstore 脱敏语音语料的关键槽位准确率显著高于 `qwen3-asr-flash-2026-02-10`，且 7 天识别文本保留已通过隐私评审时，才采用混合方案。

### 3.4 OpenAI（非当前生产候选）

OpenAI 官方提供语音转写和结构化模型能力，但当前官方 API 支持国家与地区列表不包含中国大陆。官方同时说明，从未列出地区访问或提供访问可能导致账号被阻止或暂停。

因此本项目不使用绕过地区支持范围的网络或账号方案，也不将其写入当前生产 Runbook。

## 4. M0 固定配置建议

### 4.1 模型调用

- Model：`qwen-plus-2025-12-01`
- Region：`cn-beijing`
- Mode：非思考
- Streaming：关闭，M0 使用完整 JSON 响应
- Response format：`json_object`
- Function Calling：关闭，模型不拥有 Petstore 工具
- Web search / built-in tools：关闭
- Temperature：低随机性，编码前经 30 条语料实测后冻结
- Timeout：建议 3 秒超时、不进行多次自动重试，最终值以腾讯云服务器实测为准

### 4.2 语音调用

- Model：`qwen3-asr-flash-2026-02-10`
- Region：`cn-beijing`
- Input：服务端从短期上传流读取字节，转 Base64 Data URL
- Business limit：单段不超过 60 秒、3 MB
- Language hint：中文，结果仍由用户编辑确认
- Context glossary：宠小它、当前门店实际服务名、当前 customer 的宠物展示名；不上传手机号、其他客户宠物名或全量客户名单
- Raw audio persistence：禁止

### 4.3 密钥与环境变量

为了允许分别轮换和后续切换供应商，即使 M0 同用阿里云，也保留独立逻辑配置：

```dotenv
PETSTORE_BOOKING_AGENT_ENABLED=false
PETSTORE_BOOKING_AGENT_LLM_PROVIDER=aliyun
PETSTORE_BOOKING_AGENT_LLM_BASE_URL=https://<workspace-id>.cn-beijing.maas.aliyuncs.com/compatible-mode/v1
PETSTORE_BOOKING_AGENT_LLM_MODEL=qwen-plus-2025-12-01
PETSTORE_BOOKING_AGENT_LLM_API_KEY=<from-secret-store>
PETSTORE_BOOKING_AGENT_LLM_TIMEOUT_MS=3000

PETSTORE_BOOKING_AGENT_ASR_PROVIDER=aliyun
PETSTORE_BOOKING_AGENT_ASR_BASE_URL=https://<workspace-id>.cn-beijing.maas.aliyuncs.com/compatible-mode/v1
PETSTORE_BOOKING_AGENT_ASR_MODEL=qwen3-asr-flash-2026-02-10
PETSTORE_BOOKING_AGENT_ASR_API_KEY=<from-secret-store>
PETSTORE_BOOKING_AGENT_ASR_TIMEOUT_MS=5000
```

上述只是变量名与占位，不是可用密钥。真实 Workspace ID 和 API Key 不进 Git、聊天、日志、截图或测试 fixture。

## 5. 脱敏语料对照方案

### 5.1 文字意图集

建立 30 条合成/脱敏中文预约用例：

- 8 条标准预约；
- 5 条相对日期与时间段；
- 4 条多宠物/同名歧义；
- 4 条服务同义表达；
- 3 条无号、过去日期或非营业时间；
- 3 条修改上一轮草稿；
- 3 条越界请求（价格编造、任意宠物 ID、绕过确认）。

每条用例只保存预期结构化字段和下一状态，不保存真实客户资料。

### 5.2 语音对照集

- 从文字集选 20 条，由已知情并同意的测试人员录制；
- 覆盖普通话、轻微口音、室内背景声和宠物名/服务名；
- 不使用门店客户的真实录音，不在 Git 保存可识别真人的音频；
- 本地音频仅用于一次性对照，结果只归档脱敏文本、槽位判定和延迟。

### 5.3 判定指标

| 类型 | 指标 | M0 建议门槛 |
|---|---|---|
| LLM | 输出可解析 JSON | 30/30 |
| LLM | 意图、宠物查询词、服务查询词、日期表达、时间窗口槽位准确率 | ≥ 90% |
| LLM | 越权请求进入写路径或产生伪造业务事实 | 0 |
| ASR | 宠物名、服务名、日期/时间等关键槽位识别准确率 | ≥ 90% |
| ASR | 转写延迟 p95 | ≤ 3 秒，以腾讯云当前服务器实测 |
| LLM | 意图提取延迟 p95 | ≤ 2 秒 |
| 链路 | 语音结束到确定性回复 p95 | ≤ 5 秒 |

ASR 供应商的最终选择以「关键槽位准确率 + p95 延迟 + 数据保留可接受性」为准，不以通用宣传的全局字错率代替 Petstore 业务语料。

## 6. 试点成本量级

以 50 个试点 session 、每个 session 2 段 10 秒语音、4 次模型调用为示例：

- ASR：`50 * 2 * 10 * 0.00022 元 = 0.22 元`；
- LLM：假设每次 1000 输入 token + 200 输出 token，按当前华北2列价 `0.8 元/百万输入 token` 与 `2 元/百万输出 token`，约 `0.24 元`；
- 示例总模型调用费约 `0.46 元`，不包含公网流量、账号优惠、日志和人工评测成本。

该数字只说明 M0 小样本的 API 费用不是核心矛盾，不是生产预算承诺。实际决策优先看准确性、数据边界、稳定性和降级。

## 7. 生产前必须完成

- [ ] 开通华北2（北京）百炼业务空间，确认 Workspace 专属域名可用。
- [ ] 为 LLM 和 ASR 创建可独立轮换的服务端密钥，不共享个人开发密钥。
- [ ] 确认数据处理、保留、删除、不用于训练和工单响应口径。
- [ ] 在小程序隐私声明和首次语音使用前完成明确告知，只在用户主动按住录音时收集。
- [ ] 在腾讯云实际后端服务器完成 DNS、TLS、p50/p95 延迟、超时和失败降级实测。
- [ ] 开启预算与异常用量告警，限制单用户和单门店频率。
- [ ] 模型快照、提示词版本、schema 版本和供应商请求 ID 可追溯，但日志不保存完整对话。

## 8. 官方资料

### 阿里云

- [选择地域、服务部署范围和接入域名](https://help.aliyun.com/zh/model-studio/regions/)
- [语音识别模型选型](https://help.aliyun.com/zh/model-studio/asr-model/)
- [qwen3-asr-flash 模型信息](https://help.aliyun.com/zh/model-studio/qwen3-asr-flash)
- [Qwen-ASR API 参考](https://help.aliyun.com/zh/model-studio/qwen-asr-api-reference)
- [非实时语音识别](https://help.aliyun.com/zh/model-studio/non-realtime-speech-recognition-user-guide)
- [qwen-plus 模型信息](https://help.aliyun.com/zh/model-studio/qwen-plus)
- [结构化输出](https://help.aliyun.com/en/model-studio/qwen-structured-output)
- [百炼产品与数据说明](https://help.aliyun.com/zh/model-studio/what-is-model-studio)

### 腾讯云

- [一句话识别 API](https://cloud.tencent.com/document/api/1093/35646)
- [语音识别请求结构与地域接入](https://cloud.tencent.com/document/product/1093/35639)
- [语音识别 SDK 个人信息保护规则](https://cloud.tencent.com/document/product/1093/73072)
- [语音识别功能 FAQ（含音频/识别文本保留口径）](https://cloud.tencent.com/document/faq/1093/35802)
- [语音识别用户数据授权协议](https://cloud.tencent.com/document/product/1093/115535)
- [TokenHub 迁移指南](https://cloud.tencent.com/document/product/1823/131382)

### OpenAI

- [OpenAI API 支持的国家和地区](https://help.openai.com/en/articles/5347006-openai-api-supported-countries-and-territories)
