LLM API に Web 検索を追加する :online サフィックスの使い方
モデル名の末尾に :online を付けるか plugins を指定するだけで、最新の検索結果と出典リンク付きの回答を取得。深さ・絞り込み・課金ルールをコード例で解説。
言語モデルは学習済みの知識で答えます。料金、リリースノート、ニュース、ライブラリの最新 API など、学習後に変わった情報は推測になりがちです。よくある対策は自前の検索処理です。検索 API を選び、呼び出し、結果を整形してプロンプトに貼り、モデルが出典を示すことを期待します。
BazaarLink では、この作業を既存のリクエストへの小さな変更に置き換えられます。
いちばん簡単な方法
モデル名の末尾に :online を付けます。
curl https://bazaarlink.ai/api/v1/chat/completions \
-H "Authorization: Bearer $BAZAARLINK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-6-luna:online",
"messages": [{"role": "user", "content": "最新の Node.js LTS で何が変わりましたか?"}]
}'
先に検索が実行され、結果がモデルに渡され、出典付きの回答が返ります。
同じ効果の 3 つの指定方法
| 方法 | 向いている場面 |
|---|---|
"model": "<モデル>:online" | 変更を最小にしたいとき。どのモデル ID でも使えます。 |
"plugins": [{"id": "web", "max_results": 5}] | 1 リクエストあたりの出典数を指定したいとき。 |
"web_search_options": {"search_context_size": "high"} | OpenAI 形式のオプションで深さを選びたいとき。 |
併用もできます(検索が実行されるのは 1 リクエストにつき 1 回)。Chat Completions、Responses、Messages のいずれも、ストリーミングの有無を問わず使えます。
検索の深さを選ぶ
search_context_size で深さを指定します。
| レベル | 深さ | 既定の件数 | 向いている用途 |
|---|---|---|---|
low | 標準 | 5 | 簡単な事実確認 |
medium(既定) | 標準 | 10 | 一般的な質問 |
high | 詳細 | 10 | 複数ソースの比較、調査 |
fast | 高速 | 10 | 応答速度を重視するチャット |
深いレベルほど 1 回あたりの検索コストは高くなります。検索はモデルのトークン料金とは別に、1 回ごとに課金されます。
結果を絞り込む
同じ plugin / options オブジェクトに指定できます。
| オプション | 値 | 効果 |
|---|---|---|
country | japan、taiwan など | 地域のソースを優先 |
language | ISO 639-1(例:ja) | 言語を優先 |
topic | general、news | ニュース向けの結果に切り替え |
time_range | day、week、month、year | 期間を限定 |
max_results | 1〜10 | 出典の件数 |
query_source | last_user、conversation | 直近の発言か会話全体を検索 |
search_prompt | テキスト | 検索クエリを自分で指定 |
例:過去 1 週間のニュース、日本語ソース、出典 3 件。
{
"model": "claude-sonnet-5.5",
"messages": [{"role": "user", "content": "AI 規制の最新動向"}],
"plugins": [{
"id": "web",
"max_results": 3,
"topic": "news",
"time_range": "week",
"language": "ja"
}]
}
出典の読み取り方
出典は annotations 内の url_citation オブジェクトとして返ります。
{
"type": "url_citation",
"url_citation": {
"url": "https://example.com/article",
"title": "記事タイトル",
"content": "出典の抜粋…",
"start_index": 0,
"end_index": 0
}
}
モデルが回答中の箇所に出典を紐づけなかった場合、start_index と end_index は 0 になります。ストリーミングでは、[DONE] の直前に annotations がまとめて届きます。
課金されないケース
- 検索が失敗した場合(HTTP 503
web_search_unavailable) - 残高不足で、検索の実行前に拒否された場合
- 検索後にモデルの生成が失敗した場合(検索分は課金されません)
- 複数クエリを送った場合は、成功したクエリ分のみ課金
- 無料モデルでも、検索は別項目のため検索料金は発生します
既存コードの移行
パラメータ形式は、一般的な OpenRouter 形式の Web 検索オプションと互換です。すでに :online や web plugin を使っているコードは、ベース URL と API キーを差し替えるだけで動きます。
使いどころ
- 最新の料金表やポリシーを引用する必要があるサポート・営業アシスタント
- ライブラリの最新ドキュメントを参照するコーディング支援
- 日付付きで出典を辿れるリサーチ用エージェント
- 終了した検索 API に依存していたワークフローの代替
API キーを取得して、次のリクエストで :online を試してみてください。オプションの詳細はドキュメントの「Web 検索」にあります。
4 つのツールの使い方と料金は〈Tavily 形式の AI 検索 API:Search・Extract・Crawl・Map〉をご覧ください。