Skip to content

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_idstring任务的唯一标识,使用 UUID 格式。可在提交 SERP 任务的响应中获取,并可在 30 天用于请求结果。
promptstringAI 提示词,用于说明希望生成的回答或摘要。平台限流以认证说明中的 30/60/120 次/分钟规则为准个字符。提示词应与提交 SERP 任务时使用的。
support_extraboolean是否支持额外的 SERP 特征。设置为 true 时,除自然搜索结果外,AI 模型还会参考 answer_boxknowledge_graphfeatured_snippet。默认值为 true
fetch_contentboolean是否抓取 SERP 结果页面的正文。设置为 true 时,本接口会抓取 SERP 中页面的,并将提供给 AI 模型用于生成摘要。默认值为 false
include_linksboolean是否在摘要中来源链接。设置为 true 时,响应中的 summary 字段会生成摘要所引用页面的链接。默认值为 false

响应结构

接口返回 JSON 数据 tasks 数组每个任务的处理结果。

顶层响应字段

字段名类型说明
versionstring当前 API 版本。
status_codeinteger通用响应状态码。完整状态码列表请参考错误码文档。建议在业务系统中针对异常状态进行处理。
status_messagestring通用状态说明。
timestring接口执行耗时,单位为秒。
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
tasks_countintegertasks 数组中的任务数量。
tasks_errorintegertasks 数组中返回错误的任务数量。
tasksarray任务结果数组。

tasks 任务字段

字段名类型说明
idstring本平台生成的任务唯一标识,使用 UUID 格式。
status_codeinteger当前任务的状态码,取值范围通常为 10000-60000。完整列表请参考错误码文档。
status_messagestring当前任务的状态说明。
timestring当前任务的执行耗时,单位为秒。
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
result_countintegerresult 数组中的结果数量。
patharray请求 URL 路径。
dataobject提交任务时使用的参数。
resultarray任务结果数组。

result 结果字段

字段名类型说明
items_countintegeritems 数组中的数量。
itemsarray结果项数组。
summarystringAI 模型根据请求参数和 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_codestatus_message 判断处理结果:

  • 顶层 status_code 用于表示本次请求的整体状态。
  • tasks_error 大于 0 时,表示一个或多个任务处理失败。
  • 任务级别的 status_code 用于表示任务的处理状态。
  • 建议同时记录 task_ididstatus_codestatus_message,便于重试和问题排查。

实用场景

  • 总结目标的 SERP,快速提炼搜索结果中的核心观点, SEO 人员判断用户搜索意图。
  • 抓取结果页面正文并生成竞品摘要,减少人工多个页面的时间,提升竞品研究效率。
  • 结合精选摘要和知识图谱生成统一回答,补自然结果之外的 SERP 信息,完善分析报告。
  • 生成带来源链接的 SERP 摘要,为策划和研究报告提供可追溯的引用依据。
  • 批量分析多个的搜索结果,自动产出主题概览和方向,为 SEO集群规划提供。

统一入口:官网 · LLM API · 控制台