実行プログラムと拡張機能

DeepSeek Search・Fetch API:ローカルLLMにウェブ検索を付ける

検索とページ取得を分けて呼び出し、返ってきた要約をローカルモデルの入力に入れます。

DeepSeekのSearch API1は問い合わせに合うウェブ文書の一覧を、Fetch APIは指定したページの本文をMarkdownで返します。どちらも同じAPIキーを使い、成功した1,000リクエストごとにそれぞれ$0.75です。ローカルモデルにツール呼び出し2を強いるより、アプリが先に検索し、上位結果の要約とURLをプロンプト3に入れるほうが単純で再現しやすくなります。

実行条件と要点
  • Searchは/v1/tools/search、Fetchは/v1/tools/fetchで、どちらもBearer認証を使います。
  • 成功した1,000リクエストごとにそれぞれ$0.75で、Harness・Claude Code・Codex経由は11月1日まで無料です。
  • ローカルモデルでは、ツール呼び出しより検索要約をプロンプトに入れるほうが安定します。

検索とページ取得は別々のAPIです

Search APIは問い合わせに合うウェブ文書の一覧を返し、Fetch APIは指定したURL一件の本文をMarkdownで取得します。どちらもhttps://api.deepseek.comの下の/v1/tools/searchと/v1/tools/fetchにあり、DeepSeek APIキーをBearerで使います。検索だけではページ全文は得られないため、要約で足りるか本文が必要かを先に決めます。

検索は1〜128文字の問い合わせと1〜50件の結果(既定10件)を受け取ります。need_contentを有効にするとページ本文も返りますが、その分レスポンスが大きくなります。ori_questionには検索を呼び出した元の質問を128文字まで入れて順位を補正できます。

机の上の書類の山と複数のカード、カードから矢印が伸びて別のカードへつながる図
検索が返すのは文書一覧で、本文はFetchで別に取得します。

レスポンスでは順位スコアと要約を先に見ます

各結果にはrerank_score(0〜3)、authority(0〜4)、date、summary(通常600〜800文字)、contentが含まれます。1.5以上は関連性が高いとされ、authority 3以上は信頼度の高い出典として示されます。モデルに入れるときは要約・URL・日付を一緒に残すと出典を付けやすくなります。

Searchレスポンスでよく使うフィールド
フィールド値用途
rerank_score0~3上位結果を選ぶ基準
authority0~4出典の信頼度
summary600〜800文字プロンプトに入れる要約
contentneed_contentのとき本文の一部確認

ローカルモデルには検索結果をプロンプトで渡します

ローカルモデルにツール呼び出しを任せると、小さいモデルほどスキーマを破ったり同じ呼び出しを繰り返したりします。代わりにアプリが先に検索し、上位3〜5件のsummaryを引用番号付きでプロンプトに入れ、ローカルモデルには「与えられた資料だけで答え、ない内容は分からないと言う」よう依頼する方法が単純です。

本文が必要な質問では、選んだ結果のURLだけをFetchで取得して本文を切り出します。長いページは質問に関係する段落だけを残し、文書ごとにURLと取得時刻を記録してください。こうしておけばモデルを変えても検索部分はそのまま再利用できます。

Search APIの呼び出し例
curl https://api.deepseek.com/v1/tools/search \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"DeepSeek V4.1 Flash 1017","count":5}'
キーは環境変数から読み、シェルの履歴に残さないでください。結果のsummaryとURLをプロンプトに入れる前に長さを確認します。

料金は成功したリクエストに付きます

SearchとFetchはそれぞれ成功した1,000リクエストごとに$0.75です。1日40回の検索と20回の取得なら、1か月で検索1,200件、Fetch 600件、約$1.35になります。失敗したリクエストは課金対象外と案内されていますが、再試行が成功すればその分は数えられます。

DeepSeek Harness、Claude Code、Codexからサーバーツールとして呼ぶ場合は2026年11月1日0時(北京時間)まで無料です。その後は同じ呼び出しもリクエストごとに課金されるため、無料期間中に呼び出し量を記録しておくと切り替え後の費用を見積もりやすくなります。

Search・Fetchの料金
API単位価格
Search成功1,000件$0.75
Fetch成功1,000件$0.75
一枚の長い文書が複数の小さなカードに分かれ、机の上に並ぶ図
長いページは必要な部分だけを切り出して入れるとトークンを節約できます。

Fetchの失敗は原因別に処理します

Fetchは取得先のサイトに拒否されると403、使える本文が得られないと404、アドレスを解決できないと500を返すことがあります。残高がない場合は402です。403と404は同じURLで再試行しても結果が変わらないことが多いため、別の出典に替えるか検索の要約で代用します。

URLにユーザー名やパスワードを含めることはできず、サイトのアクセス方針を回避する用途に使ってはいけません。再試行は5xxに限って短く行い、成功したURLと本文ハッシュをキャッシュすれば同じページを繰り返し取得する費用を減らせます。

運用に組み込む前に残す記録

問い合わせ、使ったURL、取得時刻、モデルとプロンプトの版を一行ずつ残します。検索結果は時間とともに変わるため、同じ質問に別の答えが出たとき、検索時点の資料を確認できる必要があります。個人情報や社内文書を問い合わせに入れる前に、外部へ出る範囲を決めてください。

レスポンス本文をそのまま保存するときは著作権とサイト規約を確認し、必要な長さだけを保管します。ローカルモデルと検索APIを併用すると、モデルは手元で動いても問い合わせとURLは外部に出るため、その点を利用者に伝えてください。

机の上のカードが矢印でつながり、赤いX印で途切れる図
取得できなかったページは同じURLで繰り返さず、別の出典に切り替えます。

用語の注釈

  1. API — 別のコードからプログラムの機能を呼び出すための決められたインターフェースです。

    本文に戻る
  2. ツール呼び出し — ファイル読み取り、検索、コマンド実行などの外部機能を、名前と引数でモデルが要求する形式です。実行の有無はエージェントランタイムと権限設定が決めます。

    本文に戻る
  3. プロンプト — モデルに送る入力文です。生成モデルでは作りたい結果を説明する文になり、出力の構成や内容を大きく左右します。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
DeepSeekのSearch APIは問い合わせに合うウェブ文書の一覧を、Fetch APIは指定したページの本文をMarkdownで返します。どちらも同じAPIキーを使い、成功した1,000リクエストごとにそれぞれ$0.75です。ローカルモデルにツール呼び出しを強いるより、アプリが先に検索し、上位結果の要約とURLをプロンプトに入れるほうが単純で再現しやすくなります。