Todos os produtos
Search
Central de documentação

Alibaba Cloud Model Studio:Web search

Última atualização: Nov 05, 2026

Os dados de treinamento de modelos grandes de linguagem possuem uma data limite de conhecimento, o que impede respostas a perguntas em tempo real. Ao ativar a pesquisa na web, o modelo recupera dados atualizados e responde com precisão a questões sensíveis ao tempo, como cotações de ações, previsões do tempo e notícias de última hora.

Uso

É possível ativar a pesquisa na web por meio das três chamadas de API abaixo, cada uma exigindo parâmetros diferentes.

Para realizar pesquisas na web com modelos como qwen3.7-max, utilize a web search feature of the Responses API .

OpenAI-compatible: Responses API

Adicione a ferramenta web_search ao parâmetro tools para ativar a pesquisa na web.

A Responses API suporta apenas alguns modelos. Para ver os modelos suportados, consulte Pesquisa na web com a 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}
)

OpenAI-compatible: Chat Completions API

Defina enable_search: true para ativar a pesquisa na 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

Defina enable_search: true para ativar a pesquisa na web.

# Importe as dependências e crie um cliente...
response = client.chat.completions.create(
    # Use um modelo que suporte pesquisa na web.
    model="qwen-plus",
    messages=[{"role": "user", "content": "What is the weather in Hangzhou tomorrow?"}],
    # Ativa a pesquisa na web por meio do parâmetro enable_search
    enable_search=True
)

Pesquisa na web com modelos multimodais

A série Qwen3.8, Qwen3.7-Flash, Qwen3.7-Plus, a série Qwen3.6 e a série Qwen3.5 (incluindo qwen3.5-plus, qwen3.5-flash, a série qwen3.5-omni e os modelos open-source Qwen) aceitam entradas multimodais (imagens e vídeo), sendo classificados como modelos multimodais.

O suporte à estratégia de pesquisa varia conforme a série: a série qwen3.5-omni suporta apenas a estratégia agent; a série Qwen3.8 não suporta a estratégia agent (use turbo ou max, o padrão); os demais modelos suportam as estratégias turbo, max e agent. Chame esses modelos pela API multimodal (o endpoint multimodal-generation): use client.multimodal.chat.create no Python SDK 2.0 e MultiModalConversation em Java, e não o endpoint text-generation, destinado a modelos apenas de texto. Para conceitos básicos sobre chamadas de modelos multimodais, consulte os tópicos Raciocínio visual e Compreensão de imagens e vídeos.

Chamar os modelos multimodais acima pelo endpoint text-generation retorna o erro 400 url error, please check url . Utilize a API multimodal (o endpoint multimodal-generation: client.multimodal.chat.create em Python, MultiModalConversation em Java) em vez disso. No SDK Java, MultiModalConversationParam fornece enableSearch(true) para ativar a pesquisa na web, mas não disponibiliza um método searchOptions() . Injete a estratégia de pesquisa e outras opções pelo método genérico parameter("search_options", ...) . Em Python, client.multimodal.chat.create aceita search_options diretamente. A pesquisa na web em modelos multimodais exige chamadas em streaming (use streamCall em Java ou defina stream=True em Python); caso contrário, a solicitação retorna o erro Non-streaming mode does not support Web Search .

import os
import dashscope

# A configuração abaixo refere-se à região Singapura. Substitua {WorkspaceId} pelo ID real do seu workspace. O valor de region varia conforme a região.
client = dashscope.Client(
    # Se a variável de ambiente não estiver configurada, substitua a linha abaixo pela sua API Key do Model Studio: api_key="sk-xxx"
    # As API Keys variam conforme a região. Para obter uma API Key, consulte https://www.alibabacloud.com/help/model-studio/get-api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    workspace="{WorkspaceId}",
    region="ap-southeast-1",
)
stream = client.multimodal.chat.create(
    # Use um modelo multimodal que suporte pesquisa na web.
    model="qwen3.5-plus",
    messages=[{"role": "user", "content": [{"text": "What is the weather in Hangzhou today?"}]}],
    # A API multimodal aceita enable_search e search_options diretamente.
    enable_search=True,
    search_options={
        # A série qwen3.5-omni requer agent. A série Qwen3.8 não suporta agent; mantenha o padrão.
        "search_strategy": "agent",
        "enable_source": True,
    },
    # A pesquisa na web em modelos multimodais exige chamadas em streaming.
    stream=True,
)
for chunk in stream:
    content = chunk.choices[0].delta.content or ""
    print(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 compatíveis

kimi-k3.1-pro (implantado no Alibaba Cloud Model Studio) suporta Responses web_search e Anthropic web_search, mas não suporta Chat Completions enable_search, em Pequim, Singapura, EUA (Virgínia), Alemanha (Frankfurt), Japão (Tóquio) e China (Hong Kong).

Os modelos a seguir suportam pesquisa na web. Modelos com entrada multimodal (série Qwen3.8, Qwen3.7-Flash/Plus, série Qwen3.6, série Qwen3.5 e modelos open-source Qwen) devem ser chamados pela API multimodal. Consulte Pesquisa na web com modelos multimodais.

Singapore

  • Qwen
    • Qwen3.8 series: qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash, qwen3.8-2.4t-a95b, qwen3.8-27b (a estratégia agent não é suportada)
    • Qwen3.7 series: qwen3.7-max, qwen3.7-max-preview, qwen3.7-max-2026-05-17 e snapshots posteriores, qwen3.7-plus, qwen3.7-plus-2026-05-26 e snapshots posteriores, qwen3.7-flash, qwen3.7-flash-2026-07-15 e snapshots posteriores
    • Qwen3.6 series: qwen3.6-plus, qwen3.6-plus-2026-04-02 e snapshots posteriores, qwen3.6-flash, qwen3.6-flash-2026-04-16 e snapshots posteriores, qwen3.6-27b, qwen3.6-35b-a3b
    • Qwen3.5 series: qwen3.5-plus, qwen3.5-plus-2026-02-15 e snapshots posteriores, qwen3.5-flash, qwen3.5-flash-2026-02-23 e snapshots posteriores, qwen3.5-27b, qwen3.5-35b-a3b, qwen3.5-122b-a10b, qwen3.5-397b-a17b
    • Qwen-Omni: qwen3.5-omni-plus, qwen3.5-omni-plus-2026-03-15, qwen3.5-omni-flash, qwen3.5-omni-flash-2026-03-15 (a estratégia de pesquisa deve ser definida como 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 (a estratégia de pesquisa deve ser definida como agent)
  • Modelos de terceiros
    • DeepSeek: deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash-0731, deepseek-v4.1-flash-1017 (a série deepseek-v4 também suporta a Responses API)
    • GLM: glm-5.2 (suportado apenas pela Responses API)
    • Kimi: kimi-k3.1-pro (suporta Responses web_search e Anthropic web_search, mas não suporta Chat Completions enable_search); kimi-k3 (suportado apenas pela Responses API)

China (Beijing)

  • Qwen
    • Qwen3.8 series: qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash, qwen3.8-2.4t-a95b, qwen3.8-27b (a estratégia agent não é suportada)
    • Qwen3.7 series: qwen3.7-max, qwen3.7-max-2026-05-20 e snapshots posteriores, qwen3.7-plus, qwen3.7-plus-2026-05-26 e snapshots posteriores, qwen3.7-flash, qwen3.7-flash-2026-07-15 e snapshots posteriores
    • Qwen3.6 series: qwen3.6-plus, qwen3.6-plus-2026-04-02 e snapshots posteriores, qwen3.6-flash, qwen3.6-flash-2026-04-16 e snapshots posteriores, qwen3.6-27b, qwen3.6-35b-a3b
    • Qwen3.5 series: qwen3.5-plus, qwen3.5-plus-2026-02-15 e snapshots posteriores, qwen3.5-flash, qwen3.5-flash-2026-02-23 e snapshots posteriores, qwen3.5-27b, qwen3.5-35b-a3b, qwen3.5-122b-a10b, qwen3.5-397b-a17b
    • Qwen-Max: qwen-max e snapshots posteriores
    • Qwen-Plus: qwen-plus, qwen-plus-latest, qwen-plus-2025-07-14 e snapshots posteriores
    • Qwen-Flash: qwen-flash, qwen-flash-2025-07-28 e snapshots posteriores
    • Qwen-Omni: qwen3.5-omni-plus, qwen3.5-omni-plus-2026-03-15, qwen3.5-omni-flash, qwen3.5-omni-flash-2026-03-15 (a estratégia de pesquisa deve ser definida como 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 (a estratégia de pesquisa deve ser definida como agent)
    • Role-playing: qwen-plus-character, qwen-flash-character (a estratégia agent não é suportada)

    Os modelos Qwen-Max, Qwen-Plus e Qwen-Flash lançados após julho de 2025 suportam pesquisa na web automaticamente.

  • Modelos de terceiros
    • DeepSeek: deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash-0731, deepseek-v4.1-flash-1017 (a série deepseek-v4 também suporta a Responses API)
    • GLM: glm-5.2 (suportado apenas pela Responses API)
    • Kimi: kimi-k3.1-pro (suporta Responses web_search e Anthropic web_search, mas não suporta Chat Completions enable_search); kimi-k3 (suportado apenas pela Responses API)

deepseek-v4.1-flash-1017 oferece suporte à pesquisa na web nativa do modelo e à ferramenta integrada web_search na Responses API e na API compatível com Anthropic na China (Pequim), em Singapura (escopo de implantação International) e nos EUA (Virgínia), na Alemanha (Frankfurt), no Japão (Tóquio) e na China (Hong Kong) (escopo de implantação Global).

Início rápido

Os exemplos a seguir mostram como consultar informações sobre ações utilizando a pesquisa na web.

OpenAI compatible

O protocolo compatível com OpenAI não oferece suporte ao retorno de fontes de pesquisa na resposta.

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)
Resposta de exemplo
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();
Resposta de exemplo
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

O protocolo DashScope permite definir enable_source como true para incluir as fontes de pesquisa na resposta.

Python

import os
import dashscope

# A configuração abaixo refere-se à região Singapura. Substitua {WorkspaceId} pelo ID real do seu workspace. O valor de region varia conforme a região.
client = dashscope.Client(
    # Se a variável de ambiente não estiver configurada, substitua a linha abaixo pela sua API Key do Model Studio: api_key="sk-xxx"
    # As API Keys variam conforme a região. Para obter uma API Key, consulte https://www.alibabacloud.com/help/model-studio/get-api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    workspace="{WorkspaceId}",
    region="ap-southeast-1",
)

response = client.chat.completions.create(
    model="qwen-plus",
    messages=[{"role": "user", "content": "Alibaba stock price"}],
    enable_search=True,
    search_options={
        # A estratégia de pesquisa na web. Atualmente, apenas a estratégia 'agent' é suportada.
        "search_strategy": "agent",
        "enable_source": True # Especifica se as fontes de pesquisa devem ser retornadas.
    },
)
print("="*20 + "Resultados da pesquisa" + "="*20)
for web in response.search_info.search_results:
    print(f"[{web.index}]: [{web.title}]({web.url})")
print("="*20 + "Conteúdo da resposta" + "="*20)
print(response.choices[0].message.content)
Resposta de exemplo
====================Resultados da pesquisa====================
[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)
====================Conteúdo da resposta====================
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());
        }
    }
}
Resposta de exemplo
====================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"
    }
}'
Resposta de exemplo
{
  "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"
}

Pesquisa na web com a Responses API

Para ativar a pesquisa na web, adicione a ferramenta web_search ao array tools do parâmetro tools.

Este recurso é suportado apenas pelos seguintes modelos: modelos das séries Qwen3.8, Qwen3.7 e Qwen3.5 (incluindo modelos open-source, mas não os modelos Omni), séries Qwen3.6-Plus e Qwen3.6-Flash, e qwen3.6-35b-a3b; deepseek-v4-flash-0731, deepseek-v4.1-flash-1017, deepseek-v4-pro, deepseek-v4-pro-0813; glm-5.2; e kimi-k3, kimi-k3.1-pro.

Para obter melhores resultados, recomendamos ativar conjuntamente as ferramentas web_search , web_extractor e code_interpreter .

Para instruções de uso, exemplos de código e guias de migração da Responses API, consulte 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
}'

Obter fontes de pesquisa

Após a execução de uma pesquisa na web, as fontes são retornadas na resposta. Elas aparecem no elemento cujo type é web_search_call dentro do array output, e seu campo action.sources contém a lista de links de origem. Extraia esses dados do objeto response no exemplo acima da seguinte forma:

A Responses API não suporta os parâmetros enable_source , enable_citation ou citation_format , e não insere marcadores de citação como [1] no conteúdo da resposta. Para utilizar marcadores de citação, use a 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}")

Faturamento

As cobranças pela pesquisa na web consistem em dois componentes:

  • Taxas de chamada do modelo: O recurso de pesquisa na web anexa o conteúdo web recuperado ao prompt, aumentando o número de tokens de entrada. Esses tokens são cobrados à tarifa padrão do modelo. Para detalhes de preços, consulte o console do Model Studio. Ao usar a Responses API, a ferramenta de pesquisa na web é cobrada à mesma taxa da política agent.

  • Taxas da política de pesquisa:

    • Política agent:

      • A taxa por 1.000 chamadas é a seguinte:

        • Para a região China (Beijing): $0.573411.
        • Para a região Singapore: $10.00.
    • Política agent_max (Oferta por tempo limitado):

      Esta política abrange tanto a pesquisa na web quanto a ferramenta web extractor.

      • Taxa por 1.000 chamadas para a ferramenta de pesquisa na web:

        • Para o escopo de implantação China (Beijing): $0.573411.
        • Para a região Singapore: $10.00.
      • A ferramenta web extractor é gratuita por tempo limitado.

Mensagens de erro

Para solucionar erros, consulte Error codes.