会议智能总结
会议智能总结基于房间内的语音转写内容,提供会议摘要、章节摘要、待办列表等能力。服务端可通过以下 Server API 对指定房间开启/关闭总结任务,并拉取指定时间段的转写文本或生成总结内容。
说明:本文档仅描述面向服务端调用的 Server API。客户端 SDK 的调用方式请参见对应平台的会议总结文档。
开通服务
在使用会议智能总结 Server API 之前,请确认已完成以下步骤:
- 开通服务:请在 AI 服务的服务购买页面开通「会议智能总结」相关功能。
- 配置回调地址(可选):如需接收总结任务状态变更通知,可在控制台的会议智能总结配置页面提供回调地址。配置完成后,对应房间的总结任务状态变更会通过 HTTP 请求回调您的服务器。回调 URL 须为公网可访问的地址。
开始会议智能总结
在指定房间内开启会议智能总结任务。开启后,该房间的语音转写内容将用于后续的「生成会议总结」和「获取会议转写」接口。
请求方法
POST: https://数据中心域名/v2/rtc/ai/room/summarize/start
签名规则:所有请求服务端 API 的请求均需进行签名校验,详见 API 请求签名。
请求头
| 请求头 | 类型 | 必传 | 说 明 |
|---|---|---|---|
Content-Type | String | 是 | 固定值:application/json |
RC-App-Key | String | 是 | 应用密钥 |
RC-Nonce | String | 是 | 随机字符串 |
RC-Timestamp | String | 是 | 时间戳 |
RC-Signature | String | 是 | 签名 |
Room-ID | String | 是 | 房间 ID |
Request-Id | String | 否 | 请求唯一标识,便于排查问题 |
正文参数
无。
请求示例
POST /v2/rtc/ai/room/summarize/start HTTP/1.1
Host: api.rong-api.com
Content-Type: application/json
RC-App-Key: c9kqb3rdkbb8j
RC-Nonce: 1027489915
RC-Timestamp: 1609754958
RC-Signature: 357cef9b529edd1ed4f34bd8df52de00a909914b
Room-ID: room_123
Request-Id: req_abc_001
返回结果
| 参数 | 类型 | 必传 | 说明 |
|---|---|---|---|
code | Number | 是 | 状态码,10000 表示成功 |
errorMessage | String | 是 | 接口调用状态说明 |
taskId | String | 是 | 任务 ID(JWT),用于后续「生成会议总结」「获取会议转写」接口的 taskId 参数 |
status | String | 是 | 任务状态,如 started 表示已开启 |
返回结果示例
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"code": 10000,
"errorMessage": "success",
"taskId": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"status": "started"
}
错误码
错误码说明见 状态码(范围:42200~42299)。常见错误:42201 表示房间 ID 为空或请求参数不正确。
停止会议智能总结
在指定房间内停止会议智能总结任务。停止后,该房间将不再进行总结相关的数据采集;已开启任务期间的数据仍可通过「生成会议总结」「获取会议转写」在有效期内拉取。
请求方法
POST: https://数据中心域名/v2/rtc/ai/room/summarize/stop
签名规则:详见 API 请求签名。
请求头
| 请求头 | 类型 | 必传 | 说明 |
|---|---|---|---|
Content-Type | String | 是 | 固定值:application/json |
RC-App-Key | String | 是 | 应用密钥 |
RC-Nonce | String | 是 | 随机字符串 |
RC-Timestamp | String | 是 | 时间戳 |
RC-Signature | String | 是 | 签名 |
Room-ID | String | 是 | 房间 ID |
Request-Id | String | 否 | 请求唯一标识 |
正文参数
无。
请求示例
POST /v2/rtc/ai/room/summarize/stop HTTP/1.1
Host: api.rong-api.com
Content-Type: application/json
RC-App-Key: c9kqb3rdkbb8j
RC-Nonce: 1027489915
RC-Timestamp: 1609754958
RC-Signature: 357cef9b529edd1ed4f34bd8df52de00a909914b
Room-ID: room_123
Request-Id: req_abc_002
返回结果
| 参数 | 类型 | 必传 | 说明 |
|---|---|---|---|
code | Number | 是 | 状态码,10000 表示成功 |
errorMessage | String | 是 | 接口调用状态说明 |
返回结果示例
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"code": 10000,
"errorMessage": "success"
}
错误码
错误码说明见 状态码。
生成会议总结
根据「开始会议智能 总结」返回的 taskId 及时间范围,基于该时间段内的转写内容生成会议总结(支持 JSON 或 Markdown 格式,可选流式返回)。
请求方法
POST: https://数据中心域名/v2/rtc/ai/room/summarize/gen
签名规则:详见 API 请求签名。
请求头
| 请求头 | 类型 | 必传 | 说明 |
|---|---|---|---|
Content-Type | String | 是 | 固定值:application/json |
RC-App-Key | String | 是 | 应用密钥 |
RC-Nonce | String | 是 | 随机字符串 |
RC-Timestamp | String | 是 | 时间戳 |
RC-Signature | String | 是 | 签名 |
Room-ID | String | 是 | 房间 ID |
Request-Id | String | 否 | 请求唯一标识 |
X-Stream | String | 否 | 传 true 时以流式方式返回总结内容;不传或非 true 时一次性返回 |
正文参数
请求体为 JSON 对象,格式如下:
| 参数 | 类型 | 必传 | 说明 |
|---|---|---|---|
taskId | String | 是 | 「开始会议智能总结」接口返回的 taskId(JWT) |
startTime | Number | 否 | 起始时间戳(秒)。不传或为 0 时从任务开始时间起算 (注意为utc时间) |
endTime | Number | 否 | 结束时间戳(秒)。不传或为 0 时到当前或任务最大允许时间 (注意为utc时间) |
config | Object | 否 | 总结配置,见下表 |
config 说明:[开发建议:生成项(不包括格式)至少需要有一项,来指定生成什么]
| 参数 | 类型 | 必传 | 说明 |
|---|---|---|---|
summarization | Boolean | 否 | 是否开启总结 |
summarizationDetails | Boolean | 否 | 是否包含总结详情 |
chapterSummary | Boolean | 否 | 是否开启章节摘要 |
todoList | Boolean | 否 | 是否生成待办列表 |
hashtag | Boolean | 否 | 是否生成标签 |
language | String | 否 | 总结语言,如 zh、en |
format | Number | 否 | 输出格式:1 表示 JSON,2 表示 Markdown |
custom | String | 否 | 自定义扩展参数 |
请求示例
POST /v2/rtc/ai/room/summarize/gen HTTP/1.1
Host: api.rong-api.com
Content-Type: application/json
RC-App-Key: c9kqb3rdkbb8j
RC-Nonce: 1027489915
RC-Timestamp: 1609754958
RC-Signature: 357cef9b529edd1ed4f34bd8df52de00a909914b
Room-ID: room_123
Request-Id: req_abc_003
{
"taskId": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"startTime": 1760077860,
"endTime": 1760081460,
"config": {
"summarization": true,
"summarizationDetails": true,
"chapterSummary": true,
"todoList": true,
"hashtag": true,
"format": 2
}
}
返回结果
- 非流式(未传
X-Stream: true):响应体为总结正文(JSON 或 Markdown 文本,由config.format决定)。响应头中包含:X-Code:状态码,10000 表示成功X-Msg:状态说明X-StartTime:实际使用的起始时间戳(秒) (注意为utc时间)X-EndTime:实际使用的结束时间戳(秒) (注意为utc时间)
- 流式(
X-Stream: true):Transfer-Encoding: chunked,body 为总结内容的流式输出;响应头同样包含X-Code、X-Msg、X-StartTime、X-EndTime。
错误时,仅通过响应头 X-Code、X-Msg 返回错误码与错误信息,无 body 或 body 为空。
错误码
错误码通过响应头 X-Code 返回,说明见 状态码。常见:42201 未传或无效的 taskId;42212/42213 taskId(JWT)过期或无效;42215 指定时间段内无转写内容;42200 系统错误。
生成会议总结的返回格式说明
通过请求参数 config.format 可指定返回格式:1 表示 JSON,2 表示 Markdown(默认推荐)。两种格式均基于会议转写内容生成,结构如下。
format = 1:JSON 格式
响应体为单个 JSON 对象,顶层包含且仅包含以下 5 个 key(顺序与 key 名固定,与 config.language 无关):
| 顶层 key | 类型 | 说明 |
|---|---|---|
Summarization | Object | 会议总结:高度浓缩的全文概述 |
Summarization_Details | Array | 会议纪要:核心事项与关键结论,分条罗列 |
Chapter_summary | Array | 章节摘要:按时间或议题划分的章节列表 |
Todo_list | Array | 待办事项:与会议结论相关的可执行任务 |
Hashtag | Array | 话题标签:从会议内容提取的关键词/短语 |
Summarization 对象字段:
| 字段 | 类型 | 说明 |
|---|---|---|
title | String | 会议标题(基于内容生成,简洁准确) |
paragraph | String | 单段总结(建议 ≤100 字/词),覆盖核心议题、关键参与者、背景与目标 |
errorMsg | String | 可选。若转写内容过少(如不足 2 分钟)则输出提示(如「会议内容太少,稍后重试」),否则为空字符串 |
Summarization_Details 数组元素:
| 字段 | 类型 | 说明 |
|---|---|---|
content | String | 纪要中的一条,以清晰动词/结论式表达开头 |
conten_number | String | 纪要序号,从 "1" 起递增(注意 key 拼写为 conten_number) |
start_time | String | 可选,格式 "mm:ss",该条内容提及开始时间 |
errorMsg | String | 可选,内容过少时的提示,否则为空字 符串 |
Chapter_summary 数组元素:
| 字段 | 类型 | 说明 |
|---|---|---|
start_time | String | 可选,格式 "mm:ss",章节开始时间 |
end_time | String | 可选,格式 "mm:ss",章节结束时间 |
title | String | 章节标题 |
summary | String | 1~2 句章节概述 |
errorMsg | String | 可选,内容过少时的提示,否则为空字符串 |
Todo_list 数组元素:
| 字段 | 类型 | 说明 |
|---|---|---|
content | String | 可执行、具体的任务描述 |
executor | String | 负责人姓名(多人可用英文逗号分隔),人名保持原文 |
start_time | String | 可选,格式 "mm:ss",提及该待办的时间点 |
errorMsg | String | 可选,内容过少时的提示,否则为空字符串 |
Hashtag 数组元素:
| 字段 | 类型 | 说明 |
|---|---|---|
content | String | 关键词或短语,不包含人名 |
errorMsg | String | 可选,内容过少时的提示,否则为空字符串 |
JSON 输出要求:仅输出上述结构,不包含 Markdown、代码块或其它额外文本;除人名/说话人名称外,其余内容按 config.language 输出。
format = 2:Markdown 格式
响应体为纯 Markdown 正文,无代码块标记(如 ```)。顶层结构固定为以下五个二级标题(顺序一致):
- ## 总结:一段不超过约 100 词/字的概述,涵盖会议核心议题、关键参与者身份、背景与目标;人名保留原文。
- ## 纪要:编号列表(1. 2. 3. …),每条对应核心事项或关键结论;句末可附时间戳
(mm:ss)。 - ## 章节:编号列表,每条格式为
mm:ss~mm:ss — 章节标题 — 1~2 句描述;时间区间来自会议内容。 - ## 待办:项目符号列表,每条包含任务内容、负责人(人名原文)、时间点(mm:ss)。
- ## 话题:5~10 个关键词/短 语,以项目符号列表呈现;不包含人名。
Markdown 输出要求:仅使用二级标题、段落与列表;禁止代码块、表格、图片、引用块、链接占位符;除人名外按 config.language 输出,标题与标签亦使用该语言。
获取会议转写(ASR)
根据「开始会议智能总结」返回的 taskId 及时间范围,获取该时间段内的会议转写文本(可选翻译为指定语言)。
请求方法
POST: https://数据中心域名/v2/rtc/ai/room/summarize/asr
签名规则:详见 API 请求签名。
请求头
| 请求头 | 类型 | 必传 | 说明 |
|---|---|---|---|
Content-Type | String | 是 | 固定值:application/json |
RC-App-Key | String | 是 | 应用密钥 |
RC-Nonce | String | 是 | 随机字符串 |
RC-Timestamp | String | 是 | 时间戳 |
RC-Signature | String | 是 | 签名 |
Room-ID | String | 是 | 房间 ID |
Request-Id | String | 否 | 请求唯一标识 |
X-Stream | String | 否 | 传 true 时以流式方式返回转写/翻译内容;不传或非 true 时一次性返回 |
正文参数
请求体为 JSON 对象,格式如下:
| 参数 | 类型 | 必传 | 说明 |
|---|---|---|---|
taskId | String | 是 | 「开始会议智能总结」接口返回的 taskId(JWT) |
startTime | Number | 否 | 起始时间戳(秒)。 不传或为 0 时从任务开始时间起算 (注意为utc时间) |
endTime | Number | 否 | 结束时间戳(秒)。不传或为 0 时到当前或任务最大允许时间 (注意为utc时间) |
language | String | 否 | 目标语言代码,如 en、zh。不传或为空时返回原始转写文本(一般为 JSON 结构);传入时返回翻译后的文本 |
请求示例
POST /v2/rtc/ai/room/summarize/asr HTTP/1.1
Host: api.rong-api.com
Content-Type: application/json
RC-App-Key: c9kqb3rdkbb8j
RC-Nonce: 1027489915
RC-Timestamp: 1609754958
RC-Signature: 357cef9b529edd1ed4f34bd8df52de00a909914b
Room-ID: room_123
Request-Id: req_abc_004
{
"taskId": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"startTime": 1760077860,
"endTime": 1760081460,
"language": "en"
}
返回结果
- 非流式:响应体为转写或翻译后的文本内容(由
language决定格式,见下文)。响应头中包含:X-Code:状态码,10000 表示成功X-Msg:状态说明X-StartTime:实际使用的起始时间戳(秒) (注意为utc时间)X-EndTime:实际使用的结束时间戳(秒) (注意为utc时间)
- 流式:
Transfer-Encoding: chunked,body 为转写/翻译内容的流式输出;响应头同上。
错误时,仅通过响应头 X-Code、X-Msg 返回错误码与错误信息。
错误码
错误码通过响应头 X-Code 返回,说明见 状态码。
获取会议转写的返回格式说明
通过请求参数 language 可区分返回内容为原始转写或翻译后文本,对应格式如下。
language 为空或不传:原始转写(JSON 数组)
响应体为 JSON 数组,每个元素对应一段转写内容,字段如下:
| 字段 | 类型 | 说明 |
|---|---|---|
speaker | String | 说话人名称/昵称 |
speech_time | String | 发言时间展示(如 "01:01") |
timestamp | Number | 时间戳(毫秒) |
content | String | 该段转写文本内容 |
示例:
[
{
"speaker": "张三",
"speech_time": "00:09",
"timestamp": 1760077860000,
"content": "大家好,我们会议马上开始。"
},
{
"speaker": "李四",
"speech_time": "01:20",
"timestamp": 1760077880000,
"content": "先说一下今天的议程。"
}
]
language 有值:翻译后文本(JSON 数组)
当传入目标语言代码(如 en、zh)时,服务端将转写内容翻译为指定语言后返回。响应体为 JSON 数组,每个元素对应一条翻译后的发言,人名与时间部分不翻译,保持原样。字段如下:
| 字段 | 类型 | 说明 |
|---|---|---|
name | String | 说话人名称(与原文一致,不翻译) |
time | String | 时间展示(与原文一致,不翻译) |
text | String | 翻译后的文本内容 |
示例:
[
{
"name": "张三",
"time": "00:09",
"text": "Hello everyone, the meeting will start soon."
},
{
"name": "李四",
"time": "01:20",
"text": "First, let me go through today's agenda."
}
]
错误码
错误码通过响应头 X-Code 返回,说明见 状态码。
使用流程说明
- 在目标房间调用 开始会议智能总结,获得
taskId。 - 会议进行中或结束后,在有效期内可多次调用 生成会议总结 或 获取会议转写,传入同一
taskId及需要的startTime、endTime。 - 不再需要总结时,调用 停止会议智能总结;停止后该房间不再采集新数据,但已有数据在有效期内仍可拉取。
注意:taskId 具有有效期和最大可拉取时长限制,过期后将无法再拉取该任务对应时间段的数据,请以控制台或接口返回说明为准。