跳转至

AIGC 接口

AIGC 接口是 UPath AI 导师平台的核心接口,用于获取 AI 导师配置和进行语音对话。

认证方式

所有 AIGC 接口需要使用 API Key 认证,请在请求头中添加 X-API-Key

示例项目

查看 前端示例项目 了解完整的接入代码。

接口列表

接口 说明
getScenes 获取 AI 导师场景配置和 RTC 连接信息
StartVoiceChat 开启与 AI 导师的语音对话
StopVoiceChat 结束与 AI 导师的语音对话

getScenes - 获取 AI 导师配置

获取可用的 AI 导师场景列表及配置信息,返回 RTC SDK 连接所需的参数。

请求

地址POST https://api.upath.cn/api/aigc/getScenes

请求头

参数 必填 说明
X-API-Key API 密钥
Content-Type application/json

请求参数

参数 类型 必填 说明
scene_name string AI 导师场景名称,不传返回所有场景
RoomId string 房间 ID,自定义字符串
UserId string 用户 ID
TaskId string 任务 ID

响应

成功响应

字段 类型 说明
ResponseMetadata.Action string getScenes
Result.scenes array AI 导师场景列表
Result.scenes[].SceneID string 场景 ID
Result.scenes[].SceneName string AI 导师名称(如:英语老师、数学老师)
Result.scenes[].rtc object RTC 连接配置
Result.scenes[].rtc.AppId string RTC 应用 ID
Result.scenes[].rtc.RoomId string 房间 ID
Result.scenes[].rtc.UserId string 用户 ID
Result.scenes[].rtc.Token string RTC Token

RTC 连接

使用响应中的 rtc 字段配置 RTC SDK,加入房间后即可开始与 AI 导师语音对话。

错误码

错误码 HTTP 状态码 说明
InvalidParameter 400 RoomId 参数不能为空
SceneNotFound 404 指定的 AI 导师场景不存在

StartVoiceChat - 开启 AI 导师对话

开启与 AI 导师的语音对话服务。调用前会自动检查账户余额。

请求

地址POST https://api.upath.cn/api/aigc/proxy?Action=StartVoiceChat

请求头

参数 必填 说明
X-API-Key API 密钥
Content-Type application/json

请求参数

参数 类型 必填 说明
SceneID string AI 导师场景 ID
inputParams object 输入参数
inputParams.RoomId string 房间 ID
inputParams.UserId string 用户 ID
inputParams.TaskId string 任务 ID
EnableStatusMonitor boolean 是否启用状态监控,默认 false

响应

成功响应

字段 类型 说明
ResponseMetadata.Action string StartVoiceChat
ResponseMetadata.RequestId string 请求 ID
Result object 服务返回结果

错误码

错误码 HTTP 状态码 说明
InvalidParameter 400 RoomId 参数不能为空
INSUFFICIENT_BALANCE 403 账户余额不足
PRICING_CONFIG_NOT_FOUND 404 AI 导师场景计费配置不存在

余额检查

调用此接口前会自动检查账户余额,余额为 0 或负数时将返回 INSUFFICIENT_BALANCE 错误。请在 官网控制台 及时充值。


StopVoiceChat - 结束 AI 导师对话

结束与 AI 导师的语音对话服务,并返回本次对话的计费信息。

请求

地址POST https://api.upath.cn/api/aigc/proxy?Action=StopVoiceChat

请求头

参数 必填 说明
X-API-Key API 密钥
Content-Type application/json

请求参数

参数 类型 必填 说明
SceneID string AI 导师场景 ID
inputParams object 输入参数
inputParams.RoomId string 房间 ID

响应

成功响应

字段 类型 说明
ResponseMetadata.Action string StopVoiceChat
ResponseMetadata.RequestId string 请求 ID
Result object 服务返回结果
BillingInfo object 计费信息

BillingInfo 字段说明

字段 类型 说明
duration_seconds integer 对话时长(秒)
duration_hours float 对话时长(小时)
price_per_hour float 单价(元/小时)
total_charge float 本次费用(元)
balance_before float 扣费前余额
balance_after float 扣费后余额

错误码

错误码 HTTP 状态码 说明
InvalidParameter 400 RoomId 参数不能为空
RoomNotFound 404 房间不存在或已结束

使用注意事项

RoomId 管理

  • RoomId 在同一账号下唯一
  • getScenes、StartVoiceChat、StopVoiceChat 中的 RoomId 必须一致
  • 系统会自动管理 RoomId 的内部映射,无需关注实现细节

计费说明

  • 计费按对话时长计算,单位为小时
  • 费用 = 对话时长 × AI 导师场景单价
  • 费用在 StopVoiceChat 时自动扣除
  • 计费信息通过响应中的 BillingInfo 返回

房间复用

  • 同一 RoomId 重复调用 StartVoiceChat 会先结算上次会话费用
  • 结算后自动开始新的会话

超时保护机制

为防止客户忘记调用 StopVoiceChat 造成不必要的费用损失,系统提供多层保护策略:

1. 客户端控制策略(推荐)

推荐做法

建议在客户端实现用户语音活动检测,当用户一段时间未说话时自动结束对话。这样可以:

  • 确保客户端状态与服务端同步
  • 提供更好的用户体验
  • 避免"客户端显示连接中,但 AI 导师已退出"的尴尬情况

具体实现方式:

策略 说明
语音活动检测 检测用户是否正在说话
倒计时机制 用户停止说话后开始倒计时(如 30 秒)
自动关闭 倒计时结束后调用 StopVoiceChat
用户提示 倒计时期间提示用户即将结束对话

完整的客户端实现代码请参考 前端示例项目

2. 服务端状态监控(快速接入方案)

如果希望快速接入,可以启用服务端状态监控,将超时检测托管给服务器:

项目 说明
启用方式 StartVoiceChat 时设置 EnableStatusMonitor: true
超时阈值 5 分钟
触发条件 AI 导师状态超过 5 分钟未更新
自动操作 系统自动结束对话并执行计费

注意事项

启用服务端状态监控可以减少不必要的费用损失,但可能出现客户端显示"连接中"而 AI 导师已退出房间的情况。如果对用户体验要求较高,建议采用客户端控制策略。

3. 房间超时保护(默认启用)

作为最终的兜底措施,服务端默认启用房间超时保护:

项目 说明
启用方式 默认启用,无需配置
超时阈值 2 小时
触发条件 对话持续超过 2 小时未主动关闭
自动操作 系统自动结束对话并执行计费