taskType がエンジンを選びます。結果を包むエンベロープはすべてのエンジンで同じで、異なるのはその中の
response オブジェクトです。
9つの回答サーフェスを提供しています:
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 のどちらか一方があれば通り、すべてのエンジンがもう一方にフォールバックするため、
「違う」キーで送ったリクエストも実行されます。下の2つのカードは各エンジンが最初に読むフィールドで、
APIリファレンスに記載され、ダッシュボードのPlaygroundがそのエンジンに送るものです。
promptを読む
CHATGPT PERPLEXITY GEMINI BING_COPILOTprompt がなければ query を読みます。queryを読む
GOOGLE AIMODE GOOGLE_SERP NAVER_AI_BRIEF NAVER_AI_TAB NAVER_SERP BING_SEARCH REDDITquery がなければ prompt を読みます。レスポンスオプション
すべての回答エンジンは既定で生のレスポンスを含みます。省くにはpayload.include.rawResponse を false に
設定してください。その他のオプションはエンジンにより異なります。
rawResponse には解析済みのストリームイベントが入ります。Google のAIによる概要、AIモード、Bing 検索は
レンダリングされたページHTML全体を rawContent として返し、NAVER は元のイベントストリームを rawContent
文字列として返します。これらのフィールドは大きくなることがあるため、構造化された結果だけが必要なら
include.rawResponse: false を設定してください。例外は GOOGLE_SERP で、include.rawResponse: true の
ときだけページHTMLを返します。markdown を返すすべてのエンジンでそれがフラグというわけではありません。NAVER は markdown を常に返します。
NAVER ではそれが text のコピーではなく、回答の本来の形だからです。
レスポンスの形
PERPLEXITY
PERPLEXITY
prompt を読みます。常に text と sources[] を返します。videos、images、hotels、places、shopping_cards。GEMINI
GEMINI
prompt を読みます。常に text と sources[] を返します。shoppingCards(Gemini が回答内に表示する商品カード)と inlineProducts(文中でリンクされた商品名)が GOOGLE の概要と同じフィールドで含まれます。カード名は text にも残り、文中の商品リンクは Google の商品ページを指します。GOOGLE: SERPエンベロープ内のAIによる概要
GOOGLE: SERPエンベロープ内のAIによる概要
query を読みます。単体のAIによる概要オブジェクトではなく、AIによる概要をnullableメンバーの1つとして
持つ検索結果エンベロープです。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 の商品ページです。AIMODE: Google AIモード
AIMODE: Google AIモード
query を読みます。固定形で、markdownはありません。shoppingCards と inlineProducts は回答に商品が表示されたときだけ含まれ、フィールドは GOOGLE の概要と同じです。GOOGLE_SERP: AIによる概要なしのGoogle検索結果
GOOGLE_SERP: AIによる概要なしのGoogle検索結果
query を読みます。google.com の結果ページ1つを GOOGLE と同じエンベロープで返しますが、AIによる概要は
含みません。aioverview、text、sources はありません。概要を待たないため GOOGLE より速く、1クレジットです。
深いページは payload.page(1-10)で指定します。organicResults は常に存在します。position はページをまたいで数えるため、2ページ目の最初の結果は11で、
すべての行に取得元の page が付きます。organicResults が空なら、Google 自体がそのクエリに結果を返さな
かったことを意味します。その他のパネルはページにない場合は省略されます。結果ページのHTMLも受け取るには
include.rawResponse: true を設定してください。rawContent として返ります。REDDIT: Redditの投稿、コメント、フィード
REDDIT: Redditの投稿、コメント、フィード
query を読み、1クレジットでRedditの投稿を検索します。1つのサブレディットだけを検索するには subreddit
(r/ を除いた名前)を追加します。query の代わりに投稿の url(https://www.reddit.com/r/{subreddit}/comments/{postId}/...)を送ると、その投稿と
コメントの最初のページ(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 フラグは効果がありません。CHATGPT
CHATGPT
prompt を読みます。このAPIで最も情報量の多いレスポンスで、すべての include フラグが効く唯一の
エンジンです。すべてのフラグは既定でオンです。BING_COPILOT: Bing Copilot
BING_COPILOT: Bing Copilot
prompt を読みます。copilot.com の Copilot チャットの回答を、ウェブ検索を常に有効にした状態で返します。
アカウントやログインは使いません。COPILOT も引き続き受け付け、BING_COPILOT として実行します。sources は Copilot が引用したページです。ショッピングの質問では引用せずに商品カードだけを返すことが多く、
sources: [] も正常な回答です。shoppingCards、map、searchQueries は常に存在し、Copilot が生成しなかった
場合は空です。商品の位置はすべてのカードを通して数えます。markdown は include.markdown が true のときに
返されます。BING_SEARCH: AI要約付きのBing検索結果
BING_SEARCH: AI要約付きのBing検索結果
query を読みます。bing.com の結果ページを GOOGLE と同じエンベロープで返します。自然検索結果、広告、
関連検索に加え、Bing がその上に表示するAI要約を aioverview として含みます。アカウントやログインは使いません。
BING と BING_COPILOT_SEARCH も引き続き受け付け、BING_SEARCH として実行します。aioverview.text の [n] は sources[n-1] を指します。citationPills[] の各エントリはインライン引用1つの
背後にあるソース1つで、一緒に引用されたソースは同じ citationPillId を共有します。要約にインライン引用が
なければこのフィールドは省略されます。markdown は見出し、リスト、表を保持し、include.markdown が true
のときに返されます。Bing は要約を表示すると自然検索結果の大半を次のページへ移すため、要約ありでは organicResults が2、3件、
なしでは約9件と考えてください。ads と relatedSearches はページにない場合は省略されます。rawContent は
結果ページ全体で、include.rawResponse: false で省けます。トップレベルの text と sources は
aioverview.text と aioverview.sources の非推奨のコピーです(要約がなければ空)。Bing はすべてのクエリに要約を書くわけではありません。「寒冷地でヒートポンプはどう動くか」のような検索型の
質問は、「2つの利点を説明して…」のような指示型よりはるかに多く要約を得られ、英語以外のカバレッジは
限られています。マルチターン(ChatGPT)
ChatGPT は会話を続けられます。両方のフィールドを省略すると、既定の単発動作になります。1
スレッドを開始する
newConversation: true を送ります。レスポンスに conversationId が含まれます。2
続ける
次のターンでその
conversationId を送り返します。