Skip to main content
taskType 选择引擎。包裹结果的信封对所有引擎都相同,不同的是其中的 response 对象。
共提供九个回答界面:CHATGPT、GEMINI、PERPLEXITY、BING_COPILOT、GOOGLE、AIMODE、 BING_SEARCH、NAVER_AI_BRIEF 和 NAVER_AI_TAB。GOOGLE_SERP 返回不含 AI 概览的 Google 搜索结果, NAVER_SERP 返回 Naver 的网页结果,REDDIT 返回 Reddit 帖子和评论。

引擎读取哪个 payload 字段

校验只要求 prompt 或 query 之一,且每个引擎都会回退读取另一个,因此用“错误”键发送的请求依然会执行。 下面两张卡片列出各引擎优先读取的字段,也就是 API 参考所记录、控制台 Playground 为该引擎发送的字段。

读取 prompt

CHATGPT PERPLEXITY GEMINI BING_COPILOT缺少 prompt 时回退到 query。

读取 query

GOOGLE AIMODE GOOGLE_SERP NAVER_AI_BRIEF NAVER_AI_TAB NAVER_SERP BING_SEARCH REDDIT缺少 query 时回退到 prompt。

响应选项

所有回答引擎默认包含原始响应。将 payload.include.rawResponse 设为 false 即可省略。其他选项因引擎而异:
rawResponse 包含解析后的流事件。Google AI 概览、AI 模式和 Bing 搜索以 rawContent 返回完整渲染后的页面 HTML; Naver 以 rawContent 字符串返回原始事件流。这些字段可能很大。如果只需要结构化结果,请设置 include.rawResponse: false。GOOGLE_SERP 是例外:只有设置 include.rawResponse: true 时才返回页面 HTML。
并非每个返回 markdown 的引擎都把它当作标志:Naver 始终返回 markdown,因为对它来说这是回答的真实形态, 而不是 text 的副本。
不生效的标志会被静默忽略,不报错,也没有对应字段。尤其是 html,虽然多个引擎接受该标志,但只有 CHATGPT 会真正生成。

响应结构

读取 prompt。始终返回 text 和 sources[]。
当 Perplexity 展示时才会出现的附加字段:videos、images、hotels、places、shopping_cards。
读取 prompt。始终返回 text 和 sources[]。
当回答展示商品时,shoppingCards(Gemini 在回答中绘制的商品卡片)和 inlineProducts(句子中带链接的商品名称)会以与 GOOGLE 概览相同的字段返回。卡片名称也保留在 text 中,句中的商品链接指向 Google 商品页面。
读取 query。这不是单独的 AI 概览对象,而是把 AI 概览作为一个可空成员的搜索结果信封。
aioverview: null 是明确的信号,表示 Google 没有为该查询展示 AI 概览。它不是错误,周围的 SERP 字段仍会填充。
顶层 text 和 sources 是复制 aioverview.text 与 aioverview.sources 的已弃用别名,保留它们是为了让旧的 单独 AIO 结构的使用者继续工作。新代码请读取 aioverview.*。SERP 面板不存在时会被省略,而不是输出 null 或 [],请把每个面板都当作可选字段。aioverview.shoppingCards 和 aioverview.inlineProducts 仅在概览展示商品时出现。卡片是 Google 在回答旁绘制的商品卡片,内联商品是句子中带链接的商品名称。卡片标题也会保留在 aioverview.text 中。price.currency 是页面显示的符号($、₩、円),reviews 保留 Google 的缩写(2.3K),productLink 是 Google 商品页面。
读取 query。固定结构,没有 markdown。
shoppingCards 和 inlineProducts 仅在回答展示商品时出现,字段与 GOOGLE 概览相同。
读取 query。以与 GOOGLE 相同的信封返回一个 google.com 结果页,但不含 AI 概览:没有 aioverview、text 或 sources。它不等待概览,因此比 GOOGLE 更快,费用为 1 额度。设置 payload.page(1-10)获取更深的页面。
organicResults 始终存在。position 跨页累计,因此第 2 页的第一个结果是 11,每行都带有它所在的 page。 organicResults 为空表示 Google 本身没有为该查询返回结果。其他面板在页面中没有时会被省略。设置 include.rawResponse: true 还可以收到结果页 HTML,字段为 rawContent。
读取 query,以 1 额度搜索 Reddit 帖子。添加 subreddit(不含 r/ 的名称)可只搜索一个子版块。
用帖子 url(https://www.reddit.com/r/{subreddit}/comments/{postId}/...)代替 query,即可读取该帖子及其第一页 评论,约 20-25 条。commentSort(默认 top,也可为 new、controversial、old、qa)决定这一页的排序, commentMaxDepth 会去掉更深的回复(0 表示只保留顶层评论)。
post.commentCount 是帖子的全部评论数;comments 是实际读取的那一页。archived 根据帖子发布时长推算(Reddit 约 180 天后锁定评论)。"action": "feed" 列出 subreddit 的最新帖子(不指定则为 r/popular), "action": "user_posts" 配合 username 列出该用户发布的内容;两者都像搜索一样返回 results,最多 limit 条(默认 25)。已完成任务中的 results 为空,表示 Reddit 没有找到任何内容。此引擎不返回原始负载,因此 include 标志无效。
读取 prompt。这是本 API 中最丰富的响应,也是唯一所有 include 标志都生效的引擎。所有标志默认开启。
ChatGPT 还支持多轮对话,参见下方的多轮对话一节。
读取 prompt。返回 copilot.com 上 Copilot 聊天的回答,网页搜索始终开启。不涉及账户或登录。COPILOT 仍被接受, 并按 BING_COPILOT 运行。
sources 是 Copilot 引用的页面;购物类问题常常没有引用,而是返回商品卡片,因此 sources: [] 也是正常回答。 shoppingCards、map 和 searchQueries 始终存在,Copilot 未生成时为空。商品位置在所有卡片中连续编号。 include.markdown 为 true 时返回 markdown。
读取 query。以与 GOOGLE 相同的信封返回 bing.com 结果页:自然结果、广告和相关搜索,以及 Bing 在其上方展示的 AI 摘要(aioverview)。不涉及账户或登录。BING 和 BING_COPILOT_SEARCH 仍被接受,并按 BING_SEARCH 运行。
aioverview: null 表示 Bing 没有为该查询展示 AI 摘要。它不是错误,周围的结果字段仍会填充。
在 aioverview.text 中,[n] 指向 sources[n-1]。每个 citationPills[] 条目是某个内联引用背后的一个来源; 一起被引用的来源共享同一个 citationPillId。摘要中没有内联引用时省略该字段。markdown 保留标题、列表和表格, 在 include.markdown 为 true 时返回。Bing 展示摘要时会把大部分自然结果移到下一页,因此有摘要时预计有两到三条 organicResults,没有时约九条。 ads 和 relatedSearches 在页面没有时省略。rawContent 是完整结果页,设置 include.rawResponse: false 可省略。 顶层 text 和 sources 是 aioverview.text 与 aioverview.sources 的已弃用副本(无摘要时为空)。Bing 并非为每个查询都生成摘要。搜索型问题(“热泵在寒冷天气里如何工作”)获得摘要的频率远高于指令型问题 (“解释两个好处……”),英语以外语言的覆盖有限。

多轮对话(ChatGPT)

ChatGPT 可以保持对话。两个字段都省略时为默认的单轮行为。
1

开启对话

发送 newConversation: true。响应中会带有 conversationId。
2

继续对话

在下一轮把该 conversationId 发回。
对话绑定到创建它的设备,大约两小时后过期。过期的 conversationId 无法继续。

引擎指南