大規模言語モデルのトレーニングデータには知識のカットオフ日があるため、リアルタイムの質問に答えることができません。Web 検索を有効にすると、モデルはリアルタイムのデータを取得し、株価、天気予報、最新ニュースなど、時間に敏感な質問に正確に答えることができます。
使用方法
以下の 3 つの API 呼び出しを使用して Web 検索を有効にできます。それぞれ異なるパラメーターが必要です。
qwen3.7-max などのモデルで Web 検索を行うには、Responses API の Web 検索機能をご利用ください。
OpenAI 互換:Responses API
web_search ツールを tools パラメーターに追加して、Web 検索を有効にします。
Responses API は一部のモデルのみをサポートします。サポート対象モデルについては、「Responses API による Web 検索」をご参照ください。
# 依存関係をインポートし、クライアントを作成します...
response = client.responses.create(
model="qwen3.8-max",
input="Hangzhou weather",
tools=[
{"type": "web_search"},
{"type": "web_extractor"},
{"type": "code_interpreter"}
],
extra_body={"enable_thinking": True}
)
OpenAI 互換:Chat Completions API
enable_search: true を設定して Web 検索を有効にします。
# 依存関係をインポートし、クライアントを作成します...
completion = client.chat.completions.create(
# Web 検索をサポートするモデルを使用します。
model="qwen-plus",
messages=[{"role": "user", "content": "What is the weather in Hangzhou tomorrow?"}],
# enable_search は標準の OpenAI パラメーターではないため、Python SDK を使用する場合は extra_body を介して渡します。Node.js SDK の場合は、トップレベルのパラメーターとして渡します。
extra_body={"enable_search": True}
)
DashScope
enable_search: true を設定して Web 検索を有効にします。
# 依存関係をインポートします...
response = dashscope.Generation.call(
# DASHSCOPE_API_KEY 環境変数が設定されていない場合は、次の行をご利用の Model Studio API キーに置き換えます (例: api_key="sk-xxx")。
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Web 検索をサポートするモデルを使用します。
model="qwen-plus",
messages=[{"role": "user", "content": "What is the weather in Hangzhou tomorrow?"}],
# Web 検索を有効にする
enable_search=True,
result_format="message"
)
マルチモーダルモデルでの Web 検索
Qwen3.8 シリーズ、Qwen3.7-Flash、Qwen3.7-Plus、Qwen3.6 シリーズ、Qwen3.5 シリーズ (qwen3.5-plus、qwen3.5-flash、qwen3.5-omni シリーズ、Qwen オープンソースモデルを含む) は、マルチモーダル入力 (画像、動画) を受け入れるマルチモーダルモデルです。
検索戦略のサポートはシリーズによって異なります:qwen3.5-omni シリーズは agent 戦略のみをサポートします。Qwen3.8 シリーズは agent 戦略をサポートしません (デフォルトの turbo または max を使用)。その他のモデルは turbo、max、agent 戦略をサポートします。これらのモデルはマルチモーダル API (multimodal-generation エンドポイント) を介して呼び出します。Python と Java の両方で MultiModalConversation を使用し、テキスト専用モデル向けの Generation (text-generation エンドポイント) は使用しないでください。マルチモーダルモデルの呼び出しの基本については、「画像認識」および「画像と動画の理解」のトピックをご参照ください。
上記のマルチモーダルモデルを
Generation(text-generationエンドポイント) で呼び出すと、400 url error, please check urlが返されます。代わりにMultiModalConversation(multimodal-generationエンドポイント) を使用してください。Java SDK では、MultiModalConversationParamは Web 検索を有効にするためのenableSearch(true)を提供しますが、searchOptions()メソッドは提供しません。検索戦略やその他のオプションは、汎用のparameter("search_options", ...)メソッドを介して注入します。Python では、MultiModalConversation.callはsearch_optionsを直接受け入れます。マルチモーダルモデルでの Web 検索にはストリーミング呼び出しが必要です (Java ではstreamCallを使用、Python ではstream=Trueを設定)。そうしないと、リクエストはNon-streaming mode does not support Web Searchエラーを返します。
import os
import dashscope
from dashscope import MultiModalConversation
# 以下はシンガポールリージョンを使用します。{WorkspaceId} を実際のワークスペース ID に置き換えてください。構成はリージョンによって異なります。
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"
responses = MultiModalConversation.call(
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Web 検索をサポートするマルチモーダルモデルを使用します。
model="qwen3.5-plus",
messages=[{"role": "user", "content": [{"text": "What is the weather in Hangzhou today?"}]}],
# マルチモーダル API は enable_search と search_options を直接受け入れます。
enable_search=True,
search_options={
# qwen3.5-omni シリーズは agent が必要です。Qwen3.8 シリーズは agent をサポートしないため、デフォルトのままにしてください。
"search_strategy": "agent",
"enable_source": True,
},
# マルチモーダルモデルで Web 検索が有効になっている場合、ストリーミングが必要です。
stream=True,
incremental_output=True,
)
for response in responses:
print(response.output.choices[0].message.content)
// dashscope SDK バージョン >= 2.19.0
import java.util.Arrays;
import java.util.Collections;
import io.reactivex.Flowable;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.aigc.generation.SearchOptions;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.utils.Constants;
public class Main {
// 以下はシンガポールリージョンを使用します。{WorkspaceId} を実際のワークスペース ID に置き換えてください。構成はリージョンによって異なります。
static { Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"; }
public static void main(String[] args) throws Exception {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMsg = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(Collections.singletonMap("text", "What is the weather in Hangzhou today?")))
.build();
SearchOptions searchOptions = SearchOptions.builder()
// マルチモーダルモデルの場合、検索戦略は agent に設定する必要があります。
.searchStrategy("agent")
.enableSource(true)
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// Web 検索をサポートするマルチモーダルモデルを使用します。
.model("qwen3.5-plus")
.messages(Arrays.asList(userMsg))
// ネイティブメソッド: Web 検索を有効にします。
.enableSearch(true)
// MultiModalConversationParam は searchOptions() メソッドを提供しません。汎用の parameter() メソッドを介して search_options を注入します。
.parameter("search_options", searchOptions)
.incrementalOutput(true)
.build();
// マルチモーダルモデルで Web 検索が有効になっている場合、ストリーミングが必要です。
Flowable<MultiModalConversationResult> result = conv.streamCall(param);
result.blockingForEach(message ->
System.out.print(message.getOutput().getChoices().get(0).getMessage().getContent()));
}
}
サポート対象モデル
Web 検索に対応するモデルは以下のとおりです。マルチモーダル入力に対応するモデル (Qwen3.8 シリーズ, Qwen3.7-Flash/Plus, Qwen3.6 シリーズ, Qwen3.5 シリーズ, Qwen オープンソースモデルなど) は, マルチモーダルインターフェースで呼び出す必要があります。詳細は「マルチモーダルモデルの Web 検索」(/ja/model-studio/web-search#ws_mm_search_h3a) をご参照ください。
シンガポール
-
Qwen
- Qwen3.8 series:qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash, qwen3.8-2.4t-a95b, qwen3.8-27b (
agent戦略はサポートされていません) - Qwen3.7 series:qwen3.7-max, qwen3.7-max-preview, qwen3.7-max-2026-05-17以降のスナップショット, qwen3.7-plus, qwen3.7-plus-2026-05-26以降のスナップショット, qwen3.7-flash, qwen3.7-flash-2026-07-15以降のスナップショット
- Qwen3.6 series:qwen3.6-max-preview, qwen3.6-plus, qwen3.6-plus-2026-04-02以降のスナップショット, qwen3.6-flash, qwen3.6-flash-2026-04-16以降のスナップショット, qwen3.6-27b, qwen3.6-35b-a3b
- Qwen3.5 series:qwen3.5-plus, qwen3.5-plus-2026-02-15以降のスナップショット, qwen3.5-flash, qwen3.5-flash-2026-02-23以降のスナップショット, qwen3.5-27b, qwen3.5-35b-a3b, qwen3.5-122b-a10b, qwen3.5-397b-a17b
- Qwen3-Max:qwen3-max, qwen3-max-2025-09-23以降のスナップショット
- Qwen-Omni: qwen3.5-omni-plus, qwen3.5-omni-plus-2026-03-15, qwen3.5-omni-flash, qwen3.5-omni-flash-2026-03-15 (検索戦略を
agentに設定する必要があります) - Qwen-Omni-Realtime: qwen3.5-omni-plus-realtime, qwen3.5-omni-plus-realtime-2026-03-15, qwen3.5-omni-flash-realtime, qwen3.5-omni-flash-realtime-2026-03-15 (検索戦略を
agentに設定する必要があります)
- Qwen3.8 series:qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash, qwen3.8-2.4t-a95b, qwen3.8-27b (
-
サードパーティモデル
- DeepSeek:deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash, deepseek-v4-flash-0731, deepseek-v3.2 (deepseek-v4 シリーズは Responses API にも対応)
- GLM:glm-5.2 (Responses API 経由の Web 検索のみサポート)
- Kimi:kimi-k3 (Responses API 経由の Web 検索のみサポート)
中国 (北京)
-
Qwen
- Qwen3.8 series:qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash, qwen3.8-2.4t-a95b, qwen3.8-27b (
agent戦略はサポートされていません) - Qwen3.7 series:qwen3.7-max, qwen3.7-max-2026-05-20以降のスナップショット, qwen3.7-plus, qwen3.7-plus-2026-05-26以降のスナップショット, qwen3.7-flash, qwen3.7-flash-2026-07-15以降のスナップショット
- Qwen3.6 series:qwen3.6-max-preview, qwen3.6-plus, qwen3.6-plus-2026-04-02以降のスナップショット, qwen3.6-flash, qwen3.6-flash-2026-04-16以降のスナップショット, qwen3.6-27b, qwen3.6-35b-a3b
- Qwen3.5 series:qwen3.5-plus, qwen3.5-plus-2026-02-15以降のスナップショット, qwen3.5-flash, qwen3.5-flash-2026-02-23以降のスナップショット, qwen3.5-27b, qwen3.5-35b-a3b, qwen3.5-122b-a10b, qwen3.5-397b-a17b
- Qwen3-Max:qwen3-max, qwen3-max-2025-09-23以降のスナップショット
- Qwen-Max:qwen-max以降のスナップショット
- Qwen-Plus:qwen-plus, qwen-plus-latest, qwen-plus-2025-07-14以降のスナップショット
- Qwen-Flash:qwen-flash, qwen-flash-2025-07-28以降のスナップショット
- Qwen-Turbo:qwen-turbo
- QwQ:qwq-plus (デフォルトの検索戦略のみをサポートし,
search_strategyは設定できません) - Qwen-Omni: qwen3.5-omni-plus, qwen3.5-omni-plus-2026-03-15, qwen3.5-omni-flash, qwen3.5-omni-flash-2026-03-15 (検索戦略を
agentに設定する必要があります) - Qwen-Omni-Realtime: qwen3.5-omni-plus-realtime, qwen3.5-omni-plus-realtime-2026-03-15, qwen3.5-omni-flash-realtime, qwen3.5-omni-flash-realtime-2026-03-15 (検索戦略を
agentに設定する必要があります) - Role-playing: qwen-plus-character, qwen-flash-character (
agent戦略はサポートされていません)
2025 年 7 月以降にリリースされた Qwen-Max, Qwen-Plus, Qwen-Flash モデルは, すべて Web 検索に対応しています。
- Qwen3.8 series:qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash, qwen3.8-2.4t-a95b, qwen3.8-27b (
-
サードパーティモデル
- DeepSeek:deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash, deepseek-v4-flash-0731, deepseek-v3.2, deepseek-v3.2-exp, deepseek-v3.1, deepseek-r1-0528, deepseek-r1, deepseek-v3 (deepseek-v4 シリーズは Responses API にも対応)
- GLM:glm-5.2 (Responses API 経由の Web 検索のみサポート)
- Kimi:Moonshot-Kimi-K2-Instruct, kimi-k3 (kimi-k3 Responses API 経由の Web 検索のみサポート)
クイックスタート
以下の例では、Web 検索を使用して株価情報を照会する方法を示します。
OpenAI 互換
OpenAI 互換プロトコルは、レスポンスでの検索ソースの返却をサポートしていません。
Python
import os
from openai import OpenAI
client = OpenAI(
# 環境変数が設定されていない場合は、Model Studio API キーを直接指定します。例: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 以下の構成はアジアパシフィック南東 1 (シンガポール) リージョン向けです。{WorkspaceId} をご利用のワークスペース ID に置き換えてください。構成はリージョンによって異なります。
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the stock price of Alibaba?"},
],
extra_body={
"enable_search": True,
"search_options": {
# Web 検索戦略を指定します。「agent」のみがサポートされています。
"search_strategy": "agent"
}
}
)
print(completion.choices[0].message.content)
レスポンス例
According to the latest market data, Alibaba's stock price in different markets is as follows:
* US Stock (BABA): The latest price is approximately 159.84 USD.
* Hong Kong Stock (09988.HK): The latest price is approximately 158.00 HKD.
Please note that stock prices fluctuate in real time, and this information is for reference only.
Node.js
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
// 以下の構成はアジアパシフィック南東 1 (シンガポール) リージョン向けです。{WorkspaceId} をご利用のワークスペース ID に置き換えてください。構成はリージョンによって異なります。
baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});
async function main() {
const completion = await openai.chat.completions.create({
model: "qwen-plus",
messages: [
{ role: "user", content: "What is the stock price of Alibaba?" }
],
enable_search: true,
search_options: {
// Web 検索戦略を指定します。「agent」のみがサポートされています。
search_strategy: "agent"
}
});
console.log(completion.choices[0].message.content);
}
main();
レスポンス例
According to the latest market data, Alibaba's stock price in different markets is as follows:
* US Stock (BABA): The latest price is approximately 159.84 USD.
* Hong Kong Stock (09988.HK): The latest price is approximately 158.00 HKD.
Please note that stock prices fluctuate in real time, and this information is for reference only.
curl
# 以下の構成はアジアパシフィック南東 1 (シンガポール) リージョン向けです。{WorkspaceId} をご利用のワークスペース ID に置き換えてください。構成はリージョンによって異なります。
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-plus",
"messages": [
{
"role": "user",
"content": "What is the stock price of Alibaba?"
}
],
"enable_search": true,
"search_options": {
"search_strategy": "agent"
}
}'
DashScope
DashScope プロトコルは、
enable_sourceをtrueに設定して、レスポンスに検索ソースを含めることをサポートしています。
Python
import os
import dashscope
# 以下の構成はアジアパシフィック南東 1 (シンガポール) リージョン向けです。{WorkspaceId} をご利用のワークスペース ID に置き換えてください。構成はリージョンによって異なります。
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"
response = dashscope.Generation.call(
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen-plus",
messages=[{"role": "user", "content": "Alibaba stock price"}],
enable_search=True,
search_options={
# Web 検索戦略。現在サポートされているのは「agent」のみです。
"search_strategy": "agent",
"enable_source": True # 検索ソースを返すかどうかを指定します。
},
result_format="message",
)
print("="*20 + "search results" + "="*20)
for web in response.output.search_info["search_results"]:
print(f"[{web['index']}]: [{web['title']}]({web['url']})")
print("="*20 + "response content" + "="*20)
print(response.output.choices[0].message.content)
レスポンス例
====================search results====================
[1]: [Alibaba(BABA) Stock Price_Quote_Chart - East Money](https://wap.eastmoney.com/quote/stock/106.BABA.html)
[2]: [Alibaba(BABA)_US Stock Quote_Today's Price & Chart_Sina Finance](https://gu.sina.cn/quotes/us/BABA)
[3]: [Alibaba(BABA) Stock Latest Price, Real-time Chart, Price Analysis & Prediction](https://cn.investing.com/equities/alibaba)
[4]: [Alibaba-W (9988.HK) Stock Price, News, Quote & History - Yahoo Finance](https://hk.finance.yahoo.com/quote/9988.HK/)
[5]: [Alibaba(BABA) Stock Price_Quote_Discussion - Xueqiu](https://xueqiu.com/S/BABA)
[6]: [Alibaba(BABA) Stock Price, Market Cap, Real-time Quote, Chart, Financials - Moomoo](https://www.moomoo.com/hans/stock/BABA-US)
[7]: [Alibaba Group Holding Limited (BABA) Stock Price, News, Quote ...](https://finance.yahoo.com/quote/BABA/)
[8]: [Alibaba - Tencent Securities](https://gu.qq.com/usBABA.N)
[9]: [W(09988) Stock Price, Market Cap, Real-time Quote, Chart, Financials - Alibaba - Moomoo](https://www.moomoo.com/hans/stock/09988-HK)
====================response content====================
According to the latest market data, Alibaba's stock price information is as follows:
* :
* Today's opening price: 160.98 USD
* Yesterday's closing price: 160.80 USD
* Today's high: 161.19 USD
* Today's low: 156.20 USD
* :
* Latest quote is approximately: 158.00 - 158.10 HKD
* Today's opening price: 156.50 HKD
* Previous trading day's closing price: 162.00 HKD
* Today's trading range: 156.30 - 158.40 HKD
Java
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.aigc.generation.SearchOptions;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.common.Role;
import java.util.Arrays;
public class Main {
// 以下の構成はアジアパシフィック南東 1 (シンガポール) リージョン向けです。{WorkspaceId} をご利用のワークスペース ID に置き換えてください。構成はリージョンによって異なります。
static {Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";}
public static void main(String[] args) {
Generation gen = new Generation();
Message userMsg = Message.builder()
.role(Role.USER.getValue())
.content("Alibaba's stock price")
.build();
SearchOptions searchOptions = SearchOptions.builder()
// Web 検索戦略を指定します。「agent」のみがサポートされています。
.searchStrategy("agent")
// 検索ソースを返すかどうかを指定します。
.enableSource(true)
.build();
GenerationParam param = GenerationParam.builder()
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-max")
.messages(Arrays.asList(userMsg))
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.enableSearch(true)
.searchOptions(searchOptions)
.build();
try {
GenerationResult result = gen.call(param);
System.out.println("=".repeat(20)+"search results"+"=".repeat(20));
System.out.println(result.getOutput().getSearchInfo().getSearchResults());
System.out.println("=".repeat(20)+"response content"+"=".repeat(20));
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
}
レスポンス例
====================search results====================
[SearchInfo.SearchResult(siteName=null, icon=null, index=1, title=Alibaba(BABA) Stock Price_Quote_Chart - East Money, url=https://wap.eastmoney.com/quote/stock/106.BABA.html), SearchInfo.SearchResult(siteName=null, icon=null, index=2, title=Alibaba(BABA)_US Stock Quote_Today's Price & Chart_Sina Finance, url=https://gu.sina.cn/quotes/us/BABA), SearchInfo.SearchResult(siteName=null, icon=null, index=3, title=Alibaba(BABA) Stock Latest Price, Real-time Chart, Price Analysis & Prediction, url=https://cn.investing.com/equities/alibaba), SearchInfo.SearchResult(siteName=null, icon=null, index=4, title=Alibaba(BABA) Stock Price_Quote_Discussion - Xueqiu, url=https://xueqiu.com/S/BABA), SearchInfo.SearchResult(siteName=null, icon=null, index=5, title=Alibaba-W (9988.HK) Stock Price, News, Quote & History - Yahoo Finance, url=https://hk.finance.yahoo.com/quote/9988.HK/), SearchInfo.SearchResult(siteName=null, icon=null, index=6, title=Alibaba(BABA) Stock Price, Market Cap, Real-time Quote, Chart, Financials - Moomoo, url=https://www.moomoo.com/hans/stock/BABA-US), SearchInfo.SearchResult(siteName=null, icon=null, index=7, title=Alibaba Group Holding Limited (BABA) - Yahoo Finance, url=https://finance.yahoo.com/quote/BABA/), SearchInfo.SearchResult(siteName=null, icon=null, index=8, title=Alibaba - Tencent Securities, url=https://gu.qq.com/usBABA.N), SearchInfo.SearchResult(siteName=null, icon=null, index=9, title=W(09988) Stock Price, Market Cap, Real-time Quote, Chart, Financials - Alibaba - Moomoo, url=https://www.moomoo.com/hans/stock/09988-HK)]
====================response content====================
According to the latest market data, the stock price for Alibaba is as follows:
* : The latest price is approximately .
* : The latest price is approximately .
Please note that stock prices fluctuate in real time, and this information is for reference only.
curl
# 以下の構成はアジアパシフィック南東 1 (シンガポール) リージョン向けです。{WorkspaceId} をご利用のワークスペース ID に置き換えてください。構成はリージョンによって異なります。
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-plus",
"input":{
"messages":[
{
"role": "user",
"content": "Alibaba's stock price"
}
]
},
"parameters": {
"enable_search": true,
"search_options": {
"search_strategy": "agent",
"enable_source": true
},
"result_format": "message"
}
}'
レスポンス例
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"content": "Based on the latest market data, Alibaba's stock price differs because it is listed on both US and Hong Kong stock exchanges:\n\n* : The latest price is approximately .\n * Today's opening price: 160.98 USD\n * Today's price range: 156.20 - 161.19 USD\n\n* : The latest price is approximately .\n * Today's opening price: 156.50 HKD\n * Today's price range: 156.30 - 158.40 HKD\n\nPlease note that stock prices fluctuate in real time, and this information is for reference only.",
"role": "assistant"
}
}
],
"search_info": {
"search_results": [
{
"index": 1,
"title": "Alibaba(BABA) Stock Price_Quote_Chart - East Money",
"url": "https://wap.eastmoney.com/quote/stock/106.BABA.html"
},
{
"index": 2,
"title": "Alibaba(BABA)_US Stock Quote_Today's Price & Chart_Sina Finance",
"url": "https://gu.sina.cn/quotes/us/BABA"
},
{
"index": 3,
"title": "Alibaba-W (9988.HK) Stock Price, News, Quote & History - Yahoo Finance",
"url": "https://hk.finance.yahoo.com/quote/9988.HK/"
},
{
"index": 4,
"title": "Alibaba(BABA) Stock Latest Price, Real-time Chart, Price Analysis & Prediction",
"url": "https://cn.investing.com/equities/alibaba"
},
{
"index": 5,
"title": "Alibaba(BABA) Stock Price_Quote_Discussion - Xueqiu",
"url": "https://xueqiu.com/S/BABA"
},
{
"index": 6,
"title": "Alibaba(BABA) Stock Price, Market Cap, Real-time Quote, Chart, Financials - Moomoo",
"url": "https://www.moomoo.com/hans/stock/BABA-US"
},
{
"index": 7,
"title": "W(09988) Stock Price, Market Cap, Real-time Quote, Chart, Financials - Alibaba - Moomoo",
"url": "https://www.moomoo.com/hans/stock/09988-HK"
},
{
"index": 8,
"title": "Alibaba Group Holding Limited (BABA) Stock Price, News, Quote & History",
"url": "https://hk.finance.yahoo.com/quote/BABA/"
},
{
"index": 9,
"title": "Alibaba - Tencent Securities",
"url": "https://gu.qq.com/usBABA.N"
}
]
}
},
"usage": {
"input_tokens": 2004,
"output_tokens": 203,
"plugins": {
"search": {
"count": 1,
"strategy": "agent"
}
},
"prompt_tokens_details": {
"cached_tokens": 0
},
"total_tokens": 2207
},
"request_id": "45c231d2-811e-4e04-a361-f2c1909f1dd9"
}
Responses API による Web 検索
web_search ツールを tools 配列の tools パラメーターに追加することで、Web 検索を有効にできます。
この機能は、次のモデルでのみサポートされています:Qwen3.8、Qwen3.7、Qwen3.5 シリーズのモデル(オープンソースモデルを含む、Omni モデルを除く)、Qwen3.6-Plus、Qwen3.6-Flash シリーズ、および qwen3.6-35b-a3b、qwen3-max、qwen3-max-2026-01-23、deepseek-v4-flash、deepseek-v4-flash-0731、deepseek-v4-pro、deepseek-v4-pro-0813、glm-5.2、kimi-k3。
最良の結果を得るために、
web_search、web_extractor、およびcode_interpreterツールを一緒に有効にすることを推奨します。
Responses API の使用方法、コード例、移行ガイドについては、「OpenAI 互換 - Responses」をご参照ください。
from openai import OpenAI
import os
client = OpenAI(
# 環境変数を設定していない場合は、次の行をご利用の Model Studio API キーに置き換えてください: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# この構成はシンガポールリージョン向けです。{WorkspaceId} を実際のワークスペース ID に置き換えてください。構成はリージョンによって異なります。
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)
response = client.responses.create(
model="qwen3.7-max",
input="Singapore weather",
tools=[
{"type": "web_search"},
{"type": "web_extractor"},
{"type": "code_interpreter"}
],
extra_body={"enable_thinking": True}
)
print("="*20 + "Response content" + "="*20)
print(response.output_text)
print("="*20 + "Tool call count" + "="*20)
usage = response.usage
if hasattr(usage, 'x_tools') and usage.x_tools:
print(f"Web search count: {usage.x_tools.get('web_search', {}).get('count', 0)}")
# 中間出力を表示するには、以下の行のコメントを解除します
# for r in response.output:
# print(r.model_dump_json())
import OpenAI from "openai";
const openai = new OpenAI({
// 環境変数を設定していない場合は、次の行をご利用の Model Studio API キーに置き換えてください: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
// この構成はシンガポールリージョン向けです。{WorkspaceId} を実際のワークスペース ID に置き換えてください。構成はリージョンによって異なります。
baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});
async function main() {
const response = await openai.responses.create({
model: "qwen3.7-max",
input: "Singapore weather",
tools: [
{ type: "web_search" },
{ type: "web_extractor" },
{ type: "code_interpreter" }
],
enable_thinking: true
});
console.log("====================Response content====================");
console.log(response.output_text);
console.log("====================Tool call count====================");
console.log(`Web search count: ${response.usage?.x_tools?.web_search?.count || 0}`);
// console.log(JSON.stringify(response.output[0], null, 2));
}
main();
# この構成はシンガポールリージョン向けです。{WorkspaceId} を実際のワークスペース ID に置き換えてください。構成はリージョンによって異なります。
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.7-max",
"input": "Singapore weather",
"tools": [
{"type": "web_search"},
{"type": "web_extractor"},
{"type": "code_interpreter"}
],
"enable_thinking": true
}'
検索ソースの取得
Web 検索が実行されると、検索ソースがレスポンスで返されます。これらは、output 配列内の type が web_search_call である要素に表示され、その action.sources フィールドがソースリンクのリストです。上記の例の response から次のように抽出できます:
Responses API は、
enable_source、enable_citation、またはcitation_formatパラメーターをサポートしておらず、レスポンスコンテンツに[1]引用マーカーを挿入しません。引用マーカーを使用するには、DashScope API を使用してください。
# 上記のレスポンスから検索ソースを抽出します
print("=" * 20 + "Search sources" + "=" * 20)
for item in response.output:
if item.type == "web_search_call":
for i, source in enumerate(item.action.sources, start=1):
print(f"[{i}] {source.url}")
課金
注記このトピックで説明されている Web 検索は、モデルに組み込まれた Web 検索機能を指し、以下に説明するように課金され、無料の呼び出しクォータは含まれません。これは、Model Studio MCP マーケットプレイスで提供される Web Search MCP サービスとは別のものであり、2 つは独立して課金されます。Web Search MCP サービスは、すべてのユーザーに 2,000 回の無料クォータを提供し、その後は 1,000 回あたり 29 人民元で課金されます。詳細については、「Web 検索 MCP の追加」をご参照ください。
Web 検索の料金は、2 つのコンポーネントで構成されます:
-
モデル呼び出し料金:Web 検索機能は、取得した Web コンテンツをプロンプトに追加するため、入力トークンの数が増加します。これらのトークンは、モデルの標準レートで課金されます。料金の詳細については、Model Studio コンソールをご参照ください。Responses API を使用する場合、Web 検索ツールはエージェントポリシーと同じレートで課金されます。
-
検索ポリシー料金:
-
agent ポリシー:
-
1,000 回あたりの料金は次のとおりです:
- 中国 (北京) リージョンの場合:$0.573411。
- シンガポールリージョンの場合:$10.00。
-
-
agent_max ポリシー (期間限定オファー):
このポリシーは、Web 検索と Web エクストラクタツールの両方をカバーします。
-
Web 検索ツールの 1,000 回あたりの料金:
- 中国 (北京) デプロイメントスコープの場合:$0.573411。
- シンガポールリージョンの場合:$10.00。
-
Web エクストラクタツールは期間限定で無料です。
-
-
エラーメッセージ
エラーのトラブルシューティングについては、「エラーコード」をご参照ください。