主题
SERP AI 摘要
POST /v3/serp/ai_summary
本接口用于分析指定 SERP 中的,并根据用户提供的提示词生成摘要或回答。调用时提供 task_id,该参数可从 SERP API 提交任务后的响应中获取。
请求方法与路径:
text
POST https://api.seermartech.cn/v3/serp/ai_summary任务提交后,可在 30 天使用 task_id 请求对应结果。每次调用本接口都会产生费用。
计费说明
参考价约 ¥0.0720 / 次。
扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
请求格式
所有 POST 数据使用 UTF-8 编码的 JSON 格式提交。请求体是 JSON 数组,每个数组代表一个任务。
json
[
{
"task_id": "07031739-1535-0139-0000-9d1e639a5b7d",
"prompt": "请总结该 SERP 结果中的主要信息",
"include_links": true,
"fetch_content": true
}
]请求参数
| 参数名 | 类型 | 填 | 说明 |
|---|---|---|---|
task_id | string | 是 | 任务的唯一标识,使用 UUID 格式。可在提交 SERP 任务的响应中获取,并可在 30 天用于请求结果。 |
prompt | string | 否 | AI 提示词,用于说明希望生成的回答或摘要。平台限流以认证说明中的 30/60/120 次/分钟规则为准个字符。提示词应与提交 SERP 任务时使用的。 |
support_extra | boolean | 否 | 是否支持额外的 SERP 特征。设置为 true 时,除自然搜索结果外,AI 模型还会参考 answer_box、knowledge_graph 和 featured_snippet。默认值为 true。 |
fetch_content | boolean | 否 | 是否抓取 SERP 结果页面的正文。设置为 true 时,本接口会抓取 SERP 中页面的,并将提供给 AI 模型用于生成摘要。默认值为 false。 |
include_links | boolean | 否 | 是否在摘要中来源链接。设置为 true 时,响应中的 summary 字段会生成摘要所引用页面的链接。默认值为 false。 |
响应结构
接口返回 JSON 数据 tasks 数组每个任务的处理结果。
顶层响应字段
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 通用响应状态码。完整状态码列表请参考错误码文档。建议在业务系统中针对异常状态进行处理。 |
status_message | string | 通用状态说明。 |
time | string | 接口执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
tasks_count | integer | tasks 数组中的任务数量。 |
tasks_error | integer | tasks 数组中返回错误的任务数量。 |
tasks | array | 任务结果数组。 |
tasks 任务字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 本平台生成的任务唯一标识,使用 UUID 格式。 |
status_code | integer | 当前任务的状态码,取值范围通常为 10000-60000。完整列表请参考错误码文档。 |
status_message | string | 当前任务的状态说明。 |
time | string | 当前任务的执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的结果数量。 |
path | array | 请求 URL 路径。 |
data | object | 提交任务时使用的参数。 |
result | array | 任务结果数组。 |
result 结果字段
| 字段名 | 类型 | 说明 |
|---|---|---|
items_count | integer | items 数组中的数量。 |
items | array | 结果项数组。 |
summary | string | AI 模型根据请求参数和 SERP生成的摘要或回答。 |
成功响应示例
json
{
"version": "0.1.20221214",
"status_code": 20000,
"status_message": "Ok.",
"time": "20.6765 sec.",
"cost": 0.072,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "07031739-1535-0139-0000-9d1e639a5b7d",
"status_code": 20000,
"status_message": "Ok.",
"time": "20.1234 sec.",
"cost": 0.072,
"result_count": 1,
"path": [
"v3",
"serp",
"ai_summary"
],
"data": {
"api": "serp",
"function": "ai_summary",
"task_id": "07031739-1535-0139-0000-9d1e639a5b7d",
"prompt": "请总结该 SERP 结果中的主要信息",
"include_links": true,
"fetch_content": true
},
"result": [
{
"items_count": 1,
"items": [
{
"summary": "这是根据 SERP 结果和指定提示词生成的摘要。"
}
]
}
]
}
]
}curl 示例
bash
curl --location --request POST \
"https://api.seermartech.cn/v3/serp/ai_summary" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"task_id": "07031739-1535-0139-0000-9d1e639a5b7d",
"prompt": "请总结该 SERP 结果中的主要信息",
"include_links": true,
"fetch_content": true
}
]'TypeScript 示例
typescript
import axios from "axios";
const postData = [
{
task_id: "07031739-1535-0139-0000-9d1e639a5b7d",
prompt: "请总结该 SERP 结果中的主要信息",
include_links: true,
fetch_content: true
}
];
axios({
method: "post",
url: "https://api.seermartech.cn/v3/serp/ai_summary",
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
},
data: postData
})
.then((response) => {
// 处理接口响应
console.log(response.data);
})
.catch((error) => {
// 处理请求异常
console.error(error.response?.data || error.message);
});Python 示例
python
import requests
url = "https://api.seermartech.cn/v3/serp/ai_summary"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
}
post_data = [
{
"task_id": "07031739-1535-0139-0000-9d1e639a5b7d",
"prompt": "请总结该 SERP 结果中的主要信息",
"include_links": True,
"fetch_content": True,
}
]
response = requests.post(
url,
headers=headers,
json=post_data,
timeout=60,
)
if response.ok:
result = response.json()
print(result)
else:
print(f"HTTP 错误:{response.status_code}")
print(response.text)错误处理
请根据顶层或任务级别的 status_code 和 status_message 判断处理结果:
- 顶层
status_code用于表示本次请求的整体状态。 tasks_error大于0时,表示一个或多个任务处理失败。- 任务级别的
status_code用于表示任务的处理状态。 - 建议同时记录
task_id、id、status_code和status_message,便于重试和问题排查。
实用场景
- 总结目标的 SERP,快速提炼搜索结果中的核心观点, SEO 人员判断用户搜索意图。
- 抓取结果页面正文并生成竞品摘要,减少人工多个页面的时间,提升竞品研究效率。
- 结合精选摘要和知识图谱生成统一回答,补自然结果之外的 SERP 信息,完善分析报告。
- 生成带来源链接的 SERP 摘要,为策划和研究报告提供可追溯的引用依据。
- 批量分析多个的搜索结果,自动产出主题概览和方向,为 SEO集群规划提供。