Los datos de entrenamiento de los modelos de lenguaje grandes tienen una fecha límite de conocimiento, lo que les impide responder preguntas en tiempo real. Habilitar la búsqueda web permite que el modelo recupere datos en tiempo real y responda con precisión a preguntas sensibles al tiempo, como precios de acciones, pronósticos meteorológicos y noticias de última hora.
Uso
Puede habilitar la búsqueda web utilizando las cuatro llamadas de API a continuación, cada una de las cuales requiere diferentes parámetros.
Para la búsqueda web con modelos como qwen3.7-max, use la función de búsqueda web de la Responses API.
Compatible con OpenAI: API de Responses
Agregue la herramienta web_search al parámetro tools para habilitar la búsqueda web.
La Responses API solo admite algunos modelos. Para ver los modelos compatibles, consulte Búsqueda web con Responses API.
# 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}
)
Compatible con OpenAI: API de Chat Completions
Establezca enable_search: true para habilitar la búsqueda 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
Establezca enable_search: true para habilitar la búsqueda 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"
)
Compatible con Anthropic
Agregue la herramienta de búsqueda web del lado del servidor de Anthropic (name establecido en web_search) al parámetro tools para habilitar la búsqueda web. El endpoint es https://{WorkspaceId}.{region}.maas.aliyuncs.com/apps/anthropic.
Este método está dirigido a clientes oficiales de Anthropic como Claude Code. En esos clientes, una pregunta simple en lenguaje natural activa la búsqueda web sin configuración adicional.
Cuando llama a la API directamente con el SDK de Anthropic o mediante HTTP, pase el identificador de cliente
x-anthropic-billing-header: cc_entrypoint=cli;ensystem. De lo contrario, la búsqueda web no surtirá efecto.
Acerca de la versión de la herramienta: El sufijo de fecha en
type(por ejemplo,web_search_20250305) está determinado por la versión del cliente oficial de Anthropic, y un cliente más reciente puede enviar una versión con fecha diferente. Model Studio identifica la herramienta por su categoría y no valida el sufijo de fecha, por lo que no necesita fijartypea una versión específica. Simplemente pase el valor que su cliente envía realmente.
Modelos compatibles: series Max, Flash y de código abierto de Qwen3.8 (excluyendo Omni); series Max, Plus y Flash de Qwen3.7; series Qwen3.6-Plus y Qwen3.6-Flash; series Qwen3.5-Plus y Qwen3.5-Flash; deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash-0731,
deepseek-v4.1-flash-1017; glm-5.2; kimi-k3.
# Import dependencies and create the client...
message = client.messages.create(
model="qwen3.8-max",
max_tokens=2048,
# Pass the client identifier
system=[{"type": "text", "text": "x-anthropic-billing-header: cc_entrypoint=cli;"}],
messages=[{"role": "user", "content": "What will the weather in Hangzhou be like tomorrow?"}],
tools=[
{
# The date suffix depends on the client version. The value below is the one current Claude Code sends.
"type": "web_search_20250305",
"name": "web_search",
# Optional. Maximum number of searches per request.
"max_uses": 8
}
]
)
El proceso de recuperación se devuelve como bloques de contenido server_tool_use (solicitud de búsqueda) y web_search_tool_result (resultados de búsqueda). El número de búsquedas se reporta en usage.server_tool_use.web_search_requests.
Búsqueda web con modelos multimodales
Las series Max, Flash y de código abierto de Qwen3.8, Qwen3.7-Flash, Qwen3.7-Plus, la serie Qwen3.6 y la serie Qwen3.5 (incluyendo qwen3.5-plus, qwen3.5-flash, la serie qwen3.5-omni y los modelos de código abierto de Qwen) aceptan entradas multimodales (imágenes, video) y son modelos multimodales.
La compatibilidad con la estrategia de búsqueda varía según la serie: la serie qwen3.5-omni solo admite la estrategia agent; qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash, qwen3.8-2.4t-a95b y qwen3.8-27b no admiten la estrategia agent en la API multimodal (utilice la opción predeterminada turbo o max); para ejecutar Qwen3.8 con recuperación al estilo de agente, utilice Búsqueda web con la API de Responses; otros modelos listados en esta sección admiten las estrategias turbo, max y agent. Llame a estos modelos a través de la API multimodal (el endpoint multimodal-generation): utilice MultiModalConversation tanto en Python como en Java, no Generation (el endpoint text-generation), que es para modelos de solo texto. Para conocer los conceptos básicos sobre cómo llamar a modelos multimodales, consulte los temas Razonamiento visual y Comprensión de imágenes y videos.
Llamar a los modelos multimodales anteriores con
Generation(el endpointtext-generation) devuelve400 url error, please check url. UtiliceMultiModalConversation(el endpointmultimodal-generation) en su lugar. En el SDK de Java,MultiModalConversationParamproporcionaenableSearch(true)para habilitar la búsqueda web, pero no ofrece un métodosearchOptions(). Inyecte la estrategia de búsqueda y otras opciones mediante el método genéricoparameter("search_options", ...). En Python,MultiModalConversation.callaceptasearch_optionsdirectamente. La búsqueda web en modelos multimodales requiere llamadas en streaming (usestreamCallen Java, o establezcastream=Trueen Python); de lo contrario, la solicitud devuelve un errorNon-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={
# The qwen3.5-omni series requires agent. On the multimodal API the Qwen3.8 series does not support agent; keep the default.
"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()));
}
}
Modelos admitidos
Los siguientes modelos admiten la búsqueda web. Los modelos con entrada multimodal (la serie Qwen3.8, Qwen3.7-Flash/Plus, la serie Qwen3.6, la serie Qwen3.5 y los modelos de código abierto de Qwen) deben llamarse a través de la API multimodal. Consulte Búsqueda web con modelos multimodales.
Singapore
-
Qwen
- Serie Qwen3.8: qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash, qwen3.8-2.4t-a95b, qwen3.8-27b (
search_strategy: agentno es compatible; para la recuperación al estilo de agente, utilice la herramientaweb_searcha través de la API de Responses) - Serie Qwen3.7: qwen3.7-max, qwen3.7-max-preview, qwen3.7-max-2026-05-17 y snapshots posteriores, qwen3.7-plus, qwen3.7-plus-2026-05-26 y snapshots posteriores, qwen3.7-flash, qwen3.7-flash-2026-07-15 y snapshots posteriores
- Serie Qwen3.6: qwen3.6-plus, qwen3.6-plus-2026-04-02 y snapshots posteriores, qwen3.6-flash, qwen3.6-flash-2026-04-16 y snapshots posteriores, qwen3.6-27b, qwen3.6-35b-a3b
- Serie Qwen3.5: qwen3.5-plus, qwen3.5-plus-2026-02-15 y snapshots posteriores, qwen3.5-flash, qwen3.5-flash-2026-02-23 y snapshots posteriores, qwen3.5-27b, qwen3.5-35b-a3b, qwen3.5-122b-a10b, qwen3.5-397b-a17b
- Qwen-Omni: qwen3.8-omni-flash, qwen3.5-omni-plus, qwen3.5-omni-plus-2026-03-15, qwen3.5-omni-flash, qwen3.5-omni-flash-2026-03-15 (la estrategia de búsqueda debe establecerse en
agent) - Qwen-Omni-Realtime: qwen3.8-omni-flash-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 estrategia de búsqueda debe establecerse en
agent)
- Serie Qwen3.8: qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash, qwen3.8-2.4t-a95b, qwen3.8-27b (
-
Modelos de terceros
- DeepSeek: deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash-0731,
deepseek-v4.1-flash-1017(la serie deepseek-v4 también admite la Responses API) - GLM: glm-5.2 (compatible solo con la Responses API)
- Kimi: kimi-k3 (compatible solo con la Responses API)
- DeepSeek: deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash-0731,
China (Beijing)
-
Qwen
- Serie Qwen3.8: qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash, qwen3.8-2.4t-a95b, qwen3.8-27b (
search_strategy: agentno es compatible; para la recuperación al estilo de agente, utilice la herramientaweb_searcha través de la API de Responses) - Serie Qwen3.7: qwen3.7-max, qwen3.7-max-2026-05-20 y snapshots posteriores, qwen3.7-plus, qwen3.7-plus-2026-05-26 y snapshots posteriores, qwen3.7-flash, qwen3.7-flash-2026-07-15 y snapshots posteriores
- Serie Qwen3.6: qwen3.6-plus, qwen3.6-plus-2026-04-02 y snapshots posteriores, qwen3.6-flash, qwen3.6-flash-2026-04-16 y snapshots posteriores, qwen3.6-27b, qwen3.6-35b-a3b
- Serie Qwen3.5: qwen3.5-plus, qwen3.5-plus-2026-02-15 y snapshots posteriores, qwen3.5-flash, qwen3.5-flash-2026-02-23 y snapshots posteriores, qwen3.5-27b, qwen3.5-35b-a3b, qwen3.5-122b-a10b, qwen3.5-397b-a17b
- Qwen-Max: qwen-max y snapshots posteriores
- Qwen-Plus: qwen-plus, qwen-plus-latest, qwen-plus-2025-07-14 y snapshots posteriores
- Qwen-Flash: qwen-flash, qwen-flash-2025-07-28 y snapshots posteriores
- Qwen-Omni: qwen3.8-omni-flash, qwen3.5-omni-plus, qwen3.5-omni-plus-2026-03-15, qwen3.5-omni-flash, qwen3.5-omni-flash-2026-03-15 (la estrategia de búsqueda debe establecerse en
agent) - Qwen-Omni-Realtime: qwen3.8-omni-flash-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 estrategia de búsqueda debe establecerse en
agent) - Juego de roles: qwen-plus-character, qwen-flash-character (la estrategia
agentno es compatible)
Los modelos Qwen-Max, Qwen-Plus y Qwen-Flash lanzados después de julio de 2025 admiten automáticamente la búsqueda web.
- Serie Qwen3.8: qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash, qwen3.8-2.4t-a95b, qwen3.8-27b (
-
Modelos de terceros
- DeepSeek: deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash-0731,
deepseek-v4.1-flash-1017(la serie deepseek-v4 también admite la Responses API) - GLM: glm-5.2 (compatible solo con la Responses API)
- Kimi: kimi-k3 (compatible solo con la Responses API)
- DeepSeek: deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash-0731,
Global
Los siguientes modelos son compatibles en las regiones de EE. UU. (Virginia), China (Hong Kong), Japan (Tokyo) y Germany (Frankfurt). En China (Hong Kong), Japan (Tokyo) y Germany (Frankfurt), debe llamarlos desde un espacio de trabajo cuyo alcance de implementación de servicio sea Global. Para obtener más información, consulte Regiones y dominios de acceso.
-
DeepSeek:
deepseek-v4.1-flash-1017admite la búsqueda web nativa del modelo y la herramienta integradaweb_searchen la Responses API y en la API compatible con Anthropic en China (Pekín), Singapur (alcance de implementación International) y EE. UU. (Virginia), Alemania (Fráncfort), Japón (Tokio) y China (Hong Kong) (alcance de implementación Global). -
Qwen
- Serie Qwen3.8: qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash
- Qwen-Omni: qwen3.8-omni-flash (establezca la estrategia de búsqueda de Chat Completions en
agent; la Responses API también es compatible)
Inicio rápido
Los siguientes ejemplos muestran cómo consultar información bursátil mediante la búsqueda web.
Compatible con OpenAI
Establezca enable_search=True para habilitar la búsqueda web. Para qwen3.8-omni-flash, establezca también search_options={"search_strategy": "agent"}. Cuando utilice la API de Responses, configure tools=[{"type": "web_search"}] en su lugar. Consulte Búsqueda web con la API de Responses.
El protocolo compatible con OpenAI no admite devolver fuentes de búsqueda en la respuesta.
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)
Respuesta de ejemplo
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();
Respuesta de ejemplo
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
El protocolo DashScope admite establecer
enable_sourceentruepara incluir fuentes de búsqueda en la respuesta.
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)
Respuesta de ejemplo
====================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.7-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());
}
}
}
Respuesta de ejemplo
====================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"
}
}'
Respuesta de ejemplo
{
"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"
}
Búsqueda web con Responses API
Puede habilitar la búsqueda web agregando la herramienta web_search al arreglo tools del parámetro tools.
Esta función solo es compatible con los siguientes modelos: las series Max, Flash y de código abierto de Qwen3.8, y
qwen3.8-omni-flash; los modelos de las series Qwen3.7 y Qwen3.5 (incluidos los modelos de código abierto, pero no los modelos Omni), las series Qwen3.6-Plus y Qwen3.6-Flash, y qwen3.6-35b-a3b; deepseek-v4-flash-0731,deepseek-v4.1-flash-1017, deepseek-v4-pro, deepseek-v4-pro-0813; glm-5.2; y kimi-k3.
Cuando se habilita mediante la herramienta
web_search, el modelo realiza una recuperación multivuelta al estilo de agente: puede llamar de forma autónoma aweb_search(y opcionalmente aweb_extractor/code_interpreter) varias veces dentro de una sola respuesta.
qwen3.8-max,qwen3.8-max-0902,qwen3.8-flash,qwen3.8-2.4t-a95byqwen3.8-27bno admiten el valoragentdesearch_strategyen la API de Chat Completions. Para utilizar la recuperación multivuelta al estilo de agente con Qwen3.8, use la herramientaweb_searchde la API de Responses documentada en esta sección.
La API de Responses no utiliza el parámetro
search_strategy. Si se activa la búsqueda web —y si el modelo realiza múltiples rondas de búsqueda— depende exclusivamente de adjuntar la herramientaweb_searchy de las propias decisiones del modelo. Un valorsearch_options.search_strategypasado a la API de Responses se ignora silenciosamente y no activa una búsqueda.
Para los modelos que admiten estas herramientas, habilite
web_search,web_extractorycode_interpreterconjuntamente. Paraqwen3.8-omni-flash, la única herramienta integrada compatible esweb_search.
Para obtener instrucciones de uso, ejemplos de código y guías de migración para la API de Responses, consulte Compatible con OpenAI - 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.8-max",
input="What is the weather in Singapore tomorrow?",
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 trace" + "="*20)
# Agent-style multi-turn retrieval: the model may call web_search multiple times
for item in response.output:
t = getattr(item, "type", None)
if t == "web_search_call":
q = getattr(getattr(item, "action", None), "query", "")
print(f"[web_search_call] query={q}")
elif t == "web_extractor_call":
print(f"[web_extractor_call]")
print("="*20 + "Source citations" + "="*20)
for item in response.output:
if getattr(item, "type", None) == "message":
for part in item.content:
for ann in getattr(part, "annotations", []) or []:
if getattr(ann, "type", None) == "url_citation":
print(f"- {ann.title}: {ann.url}")
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)}")
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.8-max",
input: "What is the weather in Singapore tomorrow?",
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 trace====================");
// Agent-style multi-turn retrieval: the model may call web_search multiple times
for (const item of response.output) {
if (item.type === "web_search_call") {
console.log(`[web_search_call] query=${item.action?.query || ""}`);
} else if (item.type === "web_extractor_call") {
console.log("[web_extractor_call]");
}
}
console.log("====================Source citations====================");
for (const item of response.output) {
if (item.type === "message") {
for (const part of item.content || []) {
for (const ann of part.annotations || []) {
if (ann.type === "url_citation") {
console.log(`- ${ann.title}: ${ann.url}`);
}
}
}
}
}
console.log("====================Tool call count====================");
console.log(`Web search count: ${response.usage?.x_tools?.web_search?.count || 0}`);
}
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.8-max",
"input": "What is the weather in Singapore tomorrow?",
"tools": [
{"type": "web_search"},
{"type": "web_extractor"},
{"type": "code_interpreter"}
],
"enable_thinking": true
}'
Ejemplo de salida de respuesta (recuperación multivuelta al estilo de agente)
Para una consulta como "¿Cuál es el clima en Singapur mañana?", el modelo realiza múltiples rondas de recuperación dentro de una sola respuesta. El arreglo output contiene múltiples elementos web_search_call (y opcionalmente web_extractor_call) intercalados con reasoning y el message final:
{
"output": [
{ "type": "reasoning", "..." : "..." },
{ "type": "web_search_call", "action": { "query": "Singapore weather tomorrow" } },
{ "type": "reasoning", "..." : "..." },
{ "type": "web_extractor_call", "..." : "..." },
{ "type": "web_search_call", "action": { "query": "Singapore 7-day forecast" } },
{ "type": "reasoning", "..." : "..." },
{ "type": "message", "content": [ /* final answer with url_citation annotations */ ] }
],
"usage": {
"x_tools": { "web_search": { "count": 2 } }
}
}
La presencia de múltiples elementos web_search_call y x_tools.web_search.count > 1 confirma una recuperación multivuelta al estilo de agente: el modelo decidió por sí mismo refinar la consulta y buscar de nuevo.
Obtener fuentes de búsqueda
Después de que se ejecuta una búsqueda web, las fuentes de búsqueda se devuelven en la respuesta. Aparecen en el elemento cuyo type es web_search_call dentro del arreglo output, y su campo action.sources es la lista de enlaces de origen. Puede extraerlos del response en el ejemplo anterior de la siguiente manera:
La API de Responses no admite los parámetros
enable_source,enable_citationnicitation_format, y no inserta marcadores de cita[1]en el contenido de la respuesta. Para utilizar marcadores de cita, use la API de 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}")
Facturación
Los cargos por búsqueda web constan de dos componentes:
-
Tarifas de llamada al modelo: La función de búsqueda web agrega contenido web recuperado al prompt, lo que aumenta el número de tokens de entrada. Estos tokens se facturan a la tarifa estándar del modelo. Para obtener detalles sobre los precios, consulte la consola de Model Studio. Cuando utiliza la API de Responses o el método compatible con Anthropic, la herramienta de búsqueda web se factura a la misma tarifa que la política de agente.
-
tarifas de política de búsqueda:
-
política de agente:
-
La tarifa por cada 1,000 llamadas es la siguiente:
- Para las regiones de China (Beijing), EE. UU. (Virginia), China (Hong Kong), Japón (Tokio) y Alemania (Frankfurt): $0.573411.
- Para la región de Singapur: $10.00.
-
-
Política agent_max (Oferta por tiempo limitado):
Esta política cubre tanto la búsqueda web como la herramienta de extractor web.
-
Tarifa por cada 1,000 llamadas para la herramienta de búsqueda web:
- Para las regiones de China (Beijing), EE. UU. (Virginia), China (Hong Kong), Japón (Tokio) y Alemania (Frankfurt): $0.573411.
- Para la región de Singapur: $10.00.
-
La herramienta de extractor web es gratuita por tiempo limitado.
-
-
Mensajes de error
Para solucionar errores, consulte Códigos de error.