Les données d'entraînement des grands modèles de langage comportent une date de coupure des connaissances, ce qui les empêche de répondre aux questions en temps réel. L'activation de la recherche web permet au modèle de récupérer des données actualisées et de répondre avec précision aux questions sensibles au facteur temps, telles que les cours boursiers, les prévisions météorologiques et les dernières actualités.
Utilisation
Vous pouvez activer la recherche web à l'aide des trois appels API ci-dessous, chacun nécessitant des paramètres différents.
Pour effectuer une recherche web avec des modèles tels que qwen3,7-max, utilisez la fonctionnalité de recherche web de l'API Responses .
OpenAI-compatible: Responses API
Ajoutez l'outil web_search au paramètre tools pour activer la recherche web.
L'API Responses prend uniquement en charge les modèles Qwen3,8, Qwen3,7, Qwen3,6, Qwen3,5, qwen3-max, qwen3-max-2026-01-23, deepseek-v4-flash, deepseek-v4-flash-0731, deepseek-v4-pro et glm-5.2.
# Import dependencies and create a client...
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-compatible: Chat Completions API
Définissez enable_search: true pour activer la recherche web.
# Import dependencies and create a client...
completion = client.chat.completions.create(
# Use a model that supports web search.
model="qwen-plus",
messages=[{"role": "user", "content": "What is the weather in Hangzhou tomorrow?"}],
# Since enable_search is not a standard OpenAI parameter, pass it via extra_body when using the Python SDK. For the Node.js SDK, pass it as a top-level parameter.
extra_body={"enable_search": True}
)
DashScope
Définissez enable_search: true pour activer la recherche web.
# Import dependencies...
response = dashscope.Generation.call(
# If the DASHSCOPE_API_KEY environment variable is not set, replace the next line with your Model Studio API key (e.g., api_key="sk-xxx",).
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Use a model that supports web search.
model="qwen-plus",
messages=[{"role": "user", "content": "What is the weather in Hangzhou tomorrow?"}],
# Enable web search
enable_search=True,
result_format="message"
)
Recherche web avec les modèles multimodaux
Des modèles tels que qwen3,5-plus, qwen3,5-flash et la série qwen3,5-omni acceptent des entrées multimodales (images, vidéos) et sont considérés comme des modèles multimodaux. Appelez ces modèles via l'API multimodale (le point de terminaison multimodal-generation) : utilisez MultiModalConversation en Python et en Java, et non Generation (le point de terminaison text-generation), réservé aux modèles textuels. Pour les bases de l'appel des modèles multimodaux, consultez les rubriques Raisonnement visuel et Compréhension d'images et de vidéos.
L'appel des modèles multimodaux mentionnés ci-dessus avec
Generation(le point de terminaisontext-generation) renvoie l'erreur400 url error, please check url. Utilisez plutôtMultiModalConversation(le point de terminaisonmultimodal-generation). Dans le SDK Java,MultiModalConversationParamproposeenableSearch(true)pour activer la recherche web, mais ne fournit pas de méthodesearchOptions(). Injectez la stratégie de recherche et les autres options via la méthode génériqueparameter("search_options", ...). En Python,MultiModalConversation.callaccepte directementsearch_options. La recherche web sur les modèles multimodaux nécessite des appels en mode streaming (utilisezstreamCallen Java, ou définissezstream=Trueen Python) ; sinon, la requête renvoie l'erreurNon-streaming mode does not support Web Search.
import os
import dashscope
from dashscope import MultiModalConversation
# The following uses the Singapore region. Replace {WorkspaceId} with your actual workspace ID; the configuration differs by region.
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"),
# Use a multimodal model that supports web search.
model="qwen3.5-plus",
messages=[{"role": "user", "content": [{"text": "What is the weather in Hangzhou today?"}]}],
# The multimodal API accepts enable_search and search_options directly.
enable_search=True,
search_options={
# For multimodal models, the search strategy must be set to agent.
"search_strategy": "agent",
"enable_source": True,
},
# Streaming is required when web search is enabled for multimodal models.
stream=True,
incremental_output=True,
)
for response in responses:
print(response.output.choices[0].message.content)
// dashscope SDK version >= 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 {
// The following uses the Singapore region. Replace {WorkspaceId} with your actual workspace ID; the configuration differs by region.
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()
// For multimodal models, the search strategy must be set to agent.
.searchStrategy("agent")
.enableSource(true)
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// Use a multimodal model that supports web search.
.model("qwen3.5-plus")
.messages(Arrays.asList(userMsg))
// Native method: enable web search.
.enableSearch(true)
// MultiModalConversationParam does not provide a searchOptions() method; inject search_options via the generic parameter() method.
.parameter("search_options", searchOptions)
.incrementalOutput(true)
.build();
// Streaming is required when web search is enabled for multimodal models.
Flowable<MultiModalConversationResult> result = conv.streamCall(param);
result.blockingForEach(message ->
System.out.print(message.getOutput().getChoices().get(0).getMessage().getContent()));
}
}
Modèles pris en charge
Singapour
-
Qwen-Plus
- Qwen3,7-Plus : qwen3,7-plus, qwen3,7-plus-2026-05-26 et versions ultérieures
- Qwen3,6-Plus : qwen3,6-plus, qwen3,6-plus-2026-04-02 et versions ultérieures
- Qwen3,5-Plus : qwen3,5-plus, qwen3,5-plus-2026-02-15 et versions ultérieures
-
Qwen-Flash
- Qwen3,7-Flash : qwen3,7-flash, qwen3,7-flash-2026-07-15 et versions ultérieures
- Qwen3,6-Flash : qwen3,6-flash, qwen3,6-flash-2026-04-16 et versions ultérieures
- Qwen3,5-Flash : qwen3,5-flash, qwen3,5-flash-2026-02-23 et versions ultérieures
-
Qwen-Max
-
Qwen3,8-Max : qwen3,8-max
-
Qwen3,7-Max : qwen3,7-max, qwen3,7-max-preview, qwen3,7-max-2026-05-17 et versions ultérieures
-
Qwen3,6-Max : qwen3,6-max-preview
-
qwen3-max et qwen3-max-2026-01-23
- En mode sans réflexion, la stratégie de recherche doit être définie sur
agent. - En mode réflexion, la stratégie de recherche doit être définie sur
agentouagent_max(ce qui ajoute la prise en charge de l'extraction web).
- En mode sans réflexion, la stratégie de recherche doit être définie sur
-
qwen3-max-2025-09-23 : La stratégie de recherche doit être définie sur
agent.
-
-
Qwen open source : qwen3,8-2,4t-a95b, qwen3,8-27b
-
Qwen-Omni : qwen3,5-omni-plus, qwen3,5-omni-plus-2026-03-15, qwen3,5-omni-flash, qwen3,5-omni-flash-2026-03-15
La stratégie de recherche doit être définie sur
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
La stratégie de recherche doit être définie sur
agent. -
Jeu de rôle : qwen-plus-character, qwen-flash-character
-
Modèles tiers
- DeepSeek : deepseek-v4-flash, deepseek-v4-flash-0731, deepseek-v4-pro (pris en charge uniquement par l'API Responses)
- GLM : glm-5,2 (pris en charge uniquement par l'API Responses)
Chine (Pékin)
-
Qwen-Max
-
Qwen3,8-Max : qwen3,8-max
-
Qwen3,7-Max : qwen3,7-max, qwen3,7-max-2026-05-20 et versions ultérieures
-
qwen3-max et qwen3-max-2026-01-23
- En mode sans réflexion, la stratégie de recherche doit être définie sur
agent. - En mode avec réflexion, la stratégie de recherche doit être définie sur
agentouagent_max(ce qui ajoute la prise en charge de l'extraction web).
- En mode sans réflexion, la stratégie de recherche doit être définie sur
-
qwen3-max-2025-09-23 : la stratégie de recherche doit être définie sur
agent.
-
-
Qwen open source : qwen3,8-2,4t-a95b, qwen3,8-27b
-
Qwen-Plus
-
Qwen3,7-Plus : qwen3,7-plus, qwen3,7-plus-2026-05-26 et versions ultérieures
-
Qwen3,6-Plus : qwen3,6-plus, qwen3,6-plus-2026-04-02 et versions ultérieures
-
Qwen3,5-Plus : qwen3,5-plus, qwen3,5-plus-2026-02-15 et versions ultérieures
Les stratégies de recherche
agentetagent_maxsont prises en charge en modes avec et sans réflexion.
-
-
Qwen-Flash
- Qwen3,7-Flash : qwen3,7-flash, qwen3,7-flash-2026-07-15 et versions ultérieures
- Qwen3,6-Flash : qwen3,6-flash, qwen3,6-flash-2026-04-16 et versions ultérieures
- Qwen3,5-Flash : qwen3,5-flash, qwen3,5-flash-2026-02-23 et versions ultérieures
-
Qwen-Omni : qwen3,5-omni-plus, qwen3,5-omni-plus-2026-03-15, qwen3,5-omni-flash, qwen3,5-omni-flash-2026-03-15
La stratégie de recherche doit être définie sur
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
La stratégie de recherche doit être définie sur
agent. -
Jeu de rôle : qwen-plus-character, qwen-flash-character, qwen-flash-character-2026-02-26
-
Modèles tiers
- DeepSeek : deepseek-v4-flash, deepseek-v4-flash-0731, deepseek-v4-pro (pris en charge uniquement par l'API Responses)
- GLM : glm-5,2 (pris en charge uniquement par l'API Responses)
Démarrage rapide
Les exemples suivants montrent comment interroger des informations boursières à l'aide de la recherche web.
Compatible OpenAI
Le protocole compatible OpenAI ne prend pas en charge le renvoi des sources de recherche dans la réponse.
Python
import os
from openai import OpenAI
client = OpenAI(
# If the environment variable is not set, provide your Model Studio API key directly, for example: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
# The following configuration is for the Asia Pacific SE 1 (Singapore) region. Replace {WorkspaceId} with your workspace ID. Configurations differ by region.
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": {
# Specify the web search strategy. Only 'agent' is supported.
"search_strategy": "agent"
}
}
)
print(completion.choices[0].message.content)
Exemple de réponse
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,
// The following configuration is for the Asia Pacific SE 1 (Singapore) region. Replace {WorkspaceId} with your workspace ID. Configurations differ by region.
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: {
// Specify the web search strategy. Only 'agent' is supported.
search_strategy: "agent"
}
});
console.log(completion.choices[0].message.content);
}
main();
Exemple de réponse
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
# The following configuration is for the Asia Pacific SE 1 (Singapore) region. Replace {WorkspaceId} with your workspace ID. Configurations differ by region.
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
Le protocole DashScope permet de définir
enable_sourcesurtrueafin d'inclure les sources de recherche dans la réponse.
Python
import os
import dashscope
# The following configuration is for the Asia Pacific SE 1 (Singapore) region. Replace {WorkspaceId} with your workspace ID. Configurations differ by region.
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={
# The web search strategy. Only 'agent' is currently supported.
"search_strategy": "agent",
"enable_source": True # Specifies whether to return search sources.
},
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)
Exemple de réponse
====================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 {
// The following configuration is for the Asia Pacific SE 1 (Singapore) region. Replace {WorkspaceId} with your workspace ID. Configurations differ by region.
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()
// Specify the web search strategy. Only 'agent' is supported.
.searchStrategy("agent")
// Specifies whether to return search sources.
.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());
}
}
}
Exemple de réponse
====================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
# The following configuration is for the Asia Pacific SE 1 (Singapore) region. Replace {WorkspaceId} with your workspace ID. Configurations differ by region.
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"
}
}'
Exemple de réponse
{
"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"
}
Recherche web avec l'API Responses
Vous pouvez activer la recherche web en ajoutant l'outil web_search au tableau tools du paramètre tools.
Cette fonctionnalité est prise en charge uniquement pour les séries Qwen3,5 et ultérieures Max, Plus et Flash, ainsi que pour qwen3-max et qwen3-max-2026-01-23 en mode de réflexion (thinking mode).
Pour obtenir les meilleurs résultats, nous vous recommandons d'activer conjointement les outils
web_search,web_extractoretcode_interpreter.
Pour consulter les instructions d'utilisation, des exemples de code et les guides de migration relatifs à l'API Responses, reportez-vous à la rubrique OpenAI-compatible - Responses.
from openai import OpenAI
import os
client = OpenAI(
# If you have not configured an environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# This configuration is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. Configurations vary by region.
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)}")
# Uncomment the following lines to view the intermediate output
# for r in response.output:
# print(r.model_dump_json())
import OpenAI from "openai";
const openai = new OpenAI({
// If you have not configured an environment variable, replace the following line with your Model Studio API key: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
// This configuration is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. Configurations vary by region.
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();
# This configuration is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. Configurations vary by region.
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
}'
Récupération des sources de recherche
Une fois la recherche web exécutée, les sources de recherche sont renvoyées dans la réponse. Elles figurent dans l'élément dont le type est web_search_call au sein du tableau output. Le champ action.sources contient la liste des liens source. Vous pouvez les extraire de l'objet response de l'exemple ci-dessus comme suit :
L'API Responses ne prend pas en charge les paramètres
enable_source,enable_citationnicitation_format, et n'insère pas de marqueurs de citation tels que[1]dans le contenu de la réponse. Pour utiliser des marqueurs de citation, utilisez l'API DashScope.
# Extract search sources from the response above
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}")
Facturation
RemarqueLa recherche web décrite dans cette rubrique fait référence à la fonctionnalité de recherche web intégrée au modèle. Elle est facturée selon les modalités ci-dessous et ne bénéficie d'aucun quota d'appels gratuits. Elle est distincte du service Web Search MCP proposé sur la place de marché Model Studio MCP ; ces deux services sont facturés indépendamment. Le service Web Search MCP offre un quota gratuit de 2 000 appels pour tous les utilisateurs, puis est facturé 29 CNY pour 1 000 appels. Pour plus d'informations, consultez la rubrique Add web search MCP.
Les frais liés à la recherche web se composent de deux éléments :
-
Frais d'appel au modèle : La fonctionnalité de recherche web ajoute le contenu web récupéré à l'invite (prompt), ce qui augmente le nombre de jetons d'entrée. Ces jetons sont facturés au tarif standard du modèle. Pour connaître les détails tarifaires, consultez la console Model Studio. Lorsque vous utilisez l'API Responses, l'outil de recherche web est facturé au même tarif que la politique agent.
-
Frais de politique de recherche :
-
Politique agent :
-
Le tarif pour 1 000 appels est le suivant :
- Pour la région Chine (Pékin) : 0,573411 $.
- Pour la région Singapour : 10,00 $.
-
-
Politique agent_max (offre limitée dans le temps) :
Cette politique couvre à la fois la recherche web et l'outil web extractor.
-
Frais par 1 000 appels pour l'outil de recherche web :
- Pour le périmètre de déploiement Chine (Pékin) : 0,573411 $.
- Pour la région Singapour : 10,00 $.
-
L'outil web extractor est gratuit pour une durée limitée.
-
-
Messages d'erreur
Pour résoudre les erreurs, consultez la section Codes d'erreur.