Skip to main content
工具调用

联网搜索

大模型的训练数据存在知识截止日期,无法回答实时问题。启用联网搜索后,模型可从网络获取实时数据,准确回答股票价格、天气预报、最新新闻等时效性问题。

使用方式

联网搜索支持以下三种API调用方式,启用参数各有不同:
  • OpenAI 兼容-Responses API
  • OpenAI 兼容-Chat Completions API
  • DashScope
通过 tools 参数添加 web_search 工具即可启用联网搜索。
Responses API仅支持Qwen3.8、Qwen3.7、Qwen3.6、Qwen3.5系列的Max、Plus、Flash模型;思考模式下的qwen3-max、qwen3-max-2026-01-23;以及deepseek-v4-flash、deepseek-v4-flash-0731。
# 导入依赖与创建客户端...
response = client.responses.create(
    model="qwen3.8-max",
    input="杭州天气",
    tools=[
        {"type": "web_search"},
        {"type": "web_extractor"},
        {"type": "code_interpreter"}
    ],
    extra_body={"enable_thinking": True}
)

多模态模型的联网搜索

qwen3.5-plus、qwen3.5-flash 以及 qwen3.5-omni 系列等模型支持图片、视频等多模态输入,属于多模态模型。这类模型需通过多模态接口multimodal-generation 端点)调用:Python 与 Java 使用 MultiModalConversation,而不能使用面向纯文本模型的 Generationtext-generation 端点)。多模态模型的基础调用方式可参见《视觉推理》《图像与视频理解》文档。
若使用 Generationtext-generation 端点)调用上述多模态模型,会返回 400 url error, please check url,请改用 MultiModalConversationmultimodal-generation 端点)。Java SDK 的 MultiModalConversationParam 提供 enableSearch(true) 用于开启联网搜索,但未提供 searchOptions() 方法,需通过通用参数 parameter("search_options", ...) 注入搜索策略等配置;Python 的 MultiModalConversation.call 可直接传入 search_options。多模态模型开启联网搜索时需使用流式调用(Java 使用 streamCall,Python 设置 stream=True),否则会返回 Non-streaming mode does not support Web Search 报错。
Python
import os
import dashscope
from dashscope import MultiModalConversation
# 以下为新加坡地域配置,调用时请将 {WorkspaceId} 替换为真实的业务空间ID,各地域的配置不同。
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"
responses = MultiModalConversation.call(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 需使用支持联网搜索的多模态模型
    model="qwen3.5-plus",
    messages=[{"role": "user", "content": [{"text": "杭州今天天气如何"}]}],
    # 多模态接口可直接传入 enable_search 与 search_options
    enable_search=True,
    search_options={
        # 多模态模型的联网搜索策略需设为 agent
        "search_strategy": "agent",
        "enable_source": True,
    },
    # 多模态模型开启联网搜索时需使用流式调用
    stream=True,
    incremental_output=True,
)
for response in responses:
    print(response.output.choices[0].message.content)

支持的模型

  • 华北2(北京)
  • 新加坡
  • 千问
    • 千问Max
      • Qwen3.8-Max:qwen3.8-max
      • Qwen3.7-Max:qwen3.7-max、qwen3.7-max-preview、qwen3.7-max-2026-05-17 及之后的快照版本
      • Qwen3.6-Max:qwen3.6-max-preview
      • Qwen3-Max:qwen3-max、qwen3-max-2025-09-23及之后的快照版本、qwen3-max-preview
      • Qwen-Max:qwen-max及之后的快照版本
    • 千问开源:qwen3.8-2.4t-a95b、qwen3.8-27b
    • 千问Plus
      • Qwen3.7-Plus:qwen3.7-plus、qwen3.7-plus-2026-05-26及之后的快照版本
      • Qwen3.6-Plus:qwen3.6-plus、qwen3.6-plus-2026-04-02及之后的快照版本
      • Qwen3.5-Plus:qwen3.5-plus、qwen3.5-plus-2026-02-15及之后的快照版本
      • Qwen-Plus:qwen-plus、qwen-plus-latest、qwen-plus-2025-07-14及之后的快照版本
    • 千问Flash
      • Qwen3.8-Flash:qwen3.8-flash
      • Qwen3.7-Flash:qwen3.7-flash、qwen3.7-flash-2026-07-15及之后的快照版本
      • Qwen3.6-Flash:qwen3.6-flash、qwen3.6-flash-2026-04-16及之后的快照版本
      • Qwen3.5-Flash:qwen3.5-flash、qwen3.5-flash-2026-02-23及之后的快照版本
      • Qwen-Flash:qwen-flash、qwen-flash-2025-07-28及之后的快照版本
    • 千问Turbo:qwen-turbo
    • QwQ:qwq-plus
    • 千问Omni:qwen3.5-omni-plus、qwen3.5-omni-plus-2026-03-15、qwen3.5-omni-flash、qwen3.5-omni-flash-2026-03-15
    • 千问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
    • 角色扮演:qwen-plus-character、qwen-flash-character、qwen-flash-character-2026-02-26
    2025 年 7 月后发布的千问Max、千问Plus、千问Flash 模型都自动支持联网搜索。
  • 第三方模型
    • DeepSeek:deepseek-v4-pro、deepseek-v4-flash、deepseek-v4-flash-0731、deepseek-v3.2、deepseek-v3.2-exp、deepseek-v3.1、deepseek-r1-0528、deepseek-r1、deepseek-v3(其中 deepseek-v4-flash、deepseek-v4-flash-0731 同时支持Responses API
    • Kimi:Moonshot-Kimi-K2-Instruct
    • MiniMax:MiniMax-M2.1

快速开始

以下示例通过联网搜索查询天气信息。
  • OpenAI 兼容
  • DashScope
  • Python
  • Node.js
  • curl
import os
from openai import OpenAI

client = OpenAI(
    # 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的配置,调用时请将 {WorkspaceId} 替换为真实的业务空间ID,各地域的配置不同。
    base_url="https://{WorkspaceId}.cn-beijing.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": "杭州明天天气如何"},
    ],
    extra_body={"enable_search": True}
)
print(completion.choices[0].message.content)
响应示例
根据现有资料,2025年9月17日(明天)杭州市的天气情况如下:

- **天气状况**:多云转晴,部分地区可能有小雨。
- **气温**:白天最高气温约30℃至34℃,夜间最低气温约24℃至26℃。
- **风力**:风力较小,一般为东风、东南风或西风,风速小于3级。
- **湿度**:相对湿度约77%。
- **空气质量**:良好,空气质量指数约为34至38。
- **穿衣建议**:建议穿棉麻面料的衬衫、薄长裙、薄T恤等清凉透气的衣服。

此外,冷空气将于明天午后到夜里抵达浙江,开始逐渐带来降温,但高温仍会持续到当天午后。从18日开始,全省范围的高温将彻底缓解。

请注意根据天气变化及时调整出行和穿衣安排。

核心能力

联网搜索除基础搜索外,还支持强制搜索、搜索策略设置、搜索来源返回等进阶功能。DashScope 协议支持全部功能。OpenAI 兼容协议因协议限制,不支持搜索来源返回和角标标注等功能,具体差异见下表。

功能特性

DashScope

OpenAI 兼容-Chat Completions

OpenAI 兼容-Responses

基础联网搜索

支持

支持

支持

强制联网搜索

支持

支持

不支持

设置搜索量级策略

支持

支持

不支持

开启垂域搜索

支持

支持

不支持

设置搜索时效性

支持

支持

不支持

限定搜索来源站点

支持

支持

不支持

通过自然语言干预检索范围

支持

支持

不支持

返回搜索来源

支持

不支持

不支持

角标引用标注

支持

不支持

不支持

提前返回搜索来源

支持

不支持

不支持

图文混合输出

支持

支持

不支持

设置搜索量级策略

通过search_strategy参数可在成本、质量和响应速度之间取得平衡。 search_strategy可选值:
  • turbo (默认): 兼顾响应速度与搜索效果,适用于大多数场景。
  • max: 采用更全面的搜索策略,可调用多源搜索引擎,以获取更详尽的搜索结果,但响应时间可能更长。
  • agent:可多次调用联网搜索工具与大模型,实现多轮信息检索与内容整合。
    该策略仅适用于 qwen3.5-plus、qwen3.5-plus-2026-02-15、qwen3.5-flash、qwen3.5-flash-2026-02-23、qwen3-max、qwen3-max-2026-01-23、qwen3-max-2025-09-23、qwen3.5-omni-plus、qwen3.5-omni-plus-2026-03-15、qwen3.5-omni-flash、qwen3.5-omni-flash-2026-03-15、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。
    启用该策略时,仅支持 返回搜索来源enable_source: true ),其他联网搜索功能不可用。
    启用该策略时,每次调用额外收费,参见 计费说明
  • agent_max:在agent策略基础上支持网页抓取,参见:网页抓取
    该策略仅适用于qwen3-max、qwen3-max-2026-01-23的思考模式。
    启用该策略时,仅支持 返回搜索来源enable_source: true ),其他联网搜索功能不可用。
    启用该策略时,每次调用额外收费,参见 计费说明
日常查询建议使用默认的 turbo 策略。对于需要高精度、多源交叉验证的研究或报告生成场景,可选择 maxagent 策略。英文场景推荐使用agent 不同模型处理时效性数据的能力存在差异。qwen3-max 具备日期推理能力,能识别非交易日并提示无数据;qwen-max 不具备该能力,会直接返回搜索获取的股价数据。股票等强时效性查询建议使用 qwen3-max 或更新版本的模型。
  • OpenAI 兼容
  • DashScope
  • Python
  • Node.js
  • curl
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的配置,调用时请将 {WorkspaceId} 替换为真实的业务空间ID,各地域的配置不同。
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-plus",
    messages=[
        {"role": "user", "content": "Qwen 2025年9月份发布了哪些模型"},
    ],
    extra_body={
        "enable_search": True,
        "search_options": {
            "search_strategy": "max"  # 配置搜索策略为高性能模式
        }
    }
)
print(completion.choices[0].message.content)
响应示例
根据已有的知识库内容,阿里云千问团队在2025年9月份发布了以下模型:

1. **Qwen3-Next**:这是下一代基础模型架构,采用了高稀疏度混合专家(MoE)架构。该模型总参数量达800亿,但在每次推理时仅激活30亿参数,从而显著降低了推理成本,同时性能可以媲美2350亿参数的Qwen3旗舰版。

2. **Qwen3-Next-80B-A3B系列模型**:这是基于Qwen3-Next架构开发的模型系列,具有更高的计算效率和更低的训练成本。其训练成本相比密集模型Qwen3-32B下降了超过90%。

3. **Qwen3-Max-Preview**:该模型的参数量超过1万亿,支持最长256K tokens的上下文窗口,并覆盖超过100种语言。它在指令跟随和检索等方面进行了升级。

这些模型的发布标志着阿里云在人工智能领域的进一步突破,特别是在模型效率、性能和多语言支持方面。

强制联网搜索

默认情况下,模型自行判断是否需要联网搜索。业务场景强依赖实时信息时,可设置 forced_search 参数为true,强制执行联网搜索。 forced_search可选值
  • true: 强制联网搜索。
  • false (默认): 模型判断是否需要联网。
  • OpenAI 兼容
  • DashScope
  • Python
  • Node.js
  • curl
Python SDK需通过extra_body传递enable_search,Node.js SDK在顶层传递。
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的配置,调用时请将 {WorkspaceId} 替换为真实的业务空间ID,各地域的配置不同。
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-plus",
    messages=[
        {"role": "user", "content": "杭州明天天气如何"},
    ],
    extra_body={
        "enable_search": True,
        "search_options": {
            "forced_search": True  # 强制联网搜索
        }
    }
)
print(completion.choices[0].message.content)
响应示例
根据现有资料,2025年9月17日(明天)杭州市的天气情况如下:

- **天气状况**:多云转晴,部分地区可能有小雨。
- **气温**:白天最高气温约30℃至34℃,夜间最低气温约24℃至26℃。
- **风力**:风力较小,一般为东风、东南风或西风,风速小于3级。
- **湿度**:相对湿度约77%。
- **空气质量**:良好,空气质量指数约为34至38。
- **穿衣建议**:建议穿棉麻面料的衬衫、薄长裙、薄T恤等清凉透气的衣服。

此外,冷空气将于明天午后到夜里抵达浙江,开始逐渐带来降温,但高温仍会持续到当天午后。从18日开始,全省范围的高温将彻底缓解。

请注意根据天气变化及时调整出行和穿衣安排。

获取并标注引用来源

联网搜索支持在响应中返回搜索来源链接,并通过角标标注引用出处,增强信息可追溯性。
  1. 开启返回搜索来源: 设置 enable_source: true,响应的 search_info 字段将包含搜索结果列表。
  2. 开启角标标注: 在 enable_sourcetrue 的前提下,设置 enable_citation: true,模型回复内容中将出现类似 [1] 的角标。
  3. 设置角标样式: 通过citation_format参数设置,可选值:
    • "[<number>]" (默认): 样式为 [1]
    • "[ref_<number>]": 样式为 [ref_1]
以上 enable_source、enable_citation、citation_format 参数仅支持 DashScope 调用方式。
Responses API 的联网搜索:其搜索来源会在响应中自动返回(参见 获取搜索来源),但 Responses API 暂不支持上述 enable_citation 角标标注(不会在回复内容中自动插入 [1] 角标)。
  • Python
  • Java
  • curl
import os
import dashscope

# 以下为华北2(北京)地域的配置,调用时请将 {WorkspaceId} 替换为真实的业务空间ID,各地域的配置不同。
dashscope.base_http_api_url = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1"
response = dashscope.Generation.call(
    api_key=os.getenv("DASHSCOPE_API_KEY", "YOUR_API_KEY"),
    model="qwen-plus",
    messages=[{"role": "user", "content": "杭州明天天气是什么?"}],
    enable_search=True,
    search_options={
        "enable_source": True,       # 必须开启才能使用角标标注
        "enable_citation": True,     # 开启角标标注
        "citation_format": "[ref_<number>]", # 设置角标样式
    },
    result_format="message"
)

print("="*20 + "搜索结果" + "="*20)
for web in response.output.search_info["search_results"]:
    print(f"[{web['index']}]: [{web['title']}]({web['url']})")
print("="*20 + "回复内容" + "="*20)
print(response.output.choices[0].message.content)
响应示例
====================搜索结果====================
[1]: [直降近10℃!刚刚确认:冷空气即将抵达,这波很猛](https://cj.sina.com.cn/articles/view/1665450974/6344c3de01901avjw)
[2]: [直降近10℃!刚刚确认:冷空气即将抵达,这波很猛](https://hznews.hangzhou.com.cn/chengshi/content/2025-09/15/content_9083259.htm)
[3]: [杭州市2025年9月份天气查询](https://www.ip.cn/tianqi/zhejiang/hangzhou/202509.html)
[4]: [40天天气预报](http://uc.src.weather.com.cn/mweather40d/index.shtml?10121010103A)
[5]: [杭州天气预报杭州2025年09月18日天气](https://tianqi.eastday.com/tianqi/hangzhou/20250918.html)
[6]: [杭州市2024年9月份天气查询](https://www.ip.cn/tianqi/zhejiang/hangzhou/202409.html)
[7]: [风里有了秋的味道,杭州人盼望已久的第一缕桂花香终于来了](https://baijiahao.baidu.com/s?id=1843471369098538519&wfr=spider&for=pc)
[8]: [余杭区2024年9月份天气历史记录](https://www.ip.cn/tianqi/zhejiang/hangzhou/yuhang/202409.html)
====================回复内容====================
根据最新的天气信息,杭州明天(2025年9月18日)的天气预计会是阴转多云,最高气温为28℃,最低气温24℃,风力较弱,有来自东北方向的风,风速约为2级。此外,空气湿度相对适中,紫外线强度弱,空气质量良好,适合外出活动,但建议关注最新的天气预报以获取更准确的信息[ref_5]。

开启垂域搜索

天气、股票等垂直领域查询对数据精度要求较高,通用网页搜索结果可能不够精确。 开启垂域搜索后,模型优先参考垂直领域数据源,返回更精准的结果。 设置enable_search_extensiontrue以开启此功能。 可选值:
  • true: 开启。
  • false (默认): 不开启。
支持的领域

领域

说明

示例问题

汇率

提供多币种间的最新汇率转换,支持标准货币代码。

人民币与美元的汇率

天气

提供实时、未来几天及历史天气数据。

杭州天气

股票

支持 A 股、港股、美股,可获取实时股价、前一交易日收盘价、历史趋势、30 日收盘价、股票代码或指数对应股价。

沪指昨天收盘点数

油价查询

实时查询全国各地区最新汽柴油价格,每日更新。

杭州油价

万年历

基于指定日期,提供农历、节气、节日及传统黄历中的吉凶宜忌等信息。

今天是农历几号

金价

提供最新价、开盘价、最高价、最低价等实时行情。

金价多少钱了

银价

提供最新价、开盘价、最高价、最低价等实时行情。

银价多少钱了

彩票

支持双色球、大乐透、排列3、排列5、七星彩、快乐8、3D 等主流彩票类型。

最新一期双色球开奖结果

电视剧

提供主流平台的电视剧资讯。

近期热播电视剧

电影

提供主流电影平台的最新资讯。

最近上映了哪些电影

车牌限行

根据车牌号查询当日限行规则。

浙Axxxxxx,今天是否在杭州限行

足球赛事

支持英超、西甲、德甲、意甲、法甲、中超、苏超等联赛的赛程与积分榜。

英超现在哪支球队排名第一

垂域搜索优先使用垂直领域数据源,但不能替代模型的日期推理能力。若在非交易日查询股价仍返回股价数据,需更换为 qwen3-max 或更新版本的模型。
  • OpenAI 兼容
  • DashScope
  • Python
  • Node.js
  • curl
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的配置,调用时请将 {WorkspaceId} 替换为真实的业务空间ID,各地域的配置不同。
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-plus",
    messages=[
        {"role": "user", "content": "阿里股价如何"},
    ],
    extra_body={
        "enable_search": True,
        "search_options": {"enable_search_extension": True},
    }
)
print(completion.choices[0].message.content)
响应示例
截至2025年9月15日,阿里巴巴美股的收盘价为158.470美元。而在9月16日的实时信息中,阿里巴巴美股的价格为158.040美元,显示出股价在当天略有下降,日环比为1.92%。此外,与上个月相比,股价上涨了17.07%。

如果你需要更具体的实时股价信息,建议查看专业的股票市场平台或财经网站。

设置搜索时效性

查询近期新闻或最新动态时,可通过 freshness 参数限制搜索时间范围,过滤过期网页。 可选值:
  • 7: 仅检索最近 7 天内的内容
  • 30: 仅检索最近 30 天内的内容
  • 180: 仅检索最近 180 天内的内容
  • 365: 仅检索最近 365 天内的内容
  • 不设置(默认): 不限制时间范围
生效条件:
  • 仅对 search_strategy: turbo 生效
  • 支持模型:qwen3-max、qwen3-max-preview、qwen3-max-2025-09-23、qwen-plus、qwen-flash、qwen-plus-character、qwen-flash-character、qwen-flash-character-2026-02-26
  • OpenAI 兼容
  • DashScope
Python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的配置,调用时请将 {WorkspaceId} 替换为真实的业务空间ID,各地域的配置不同。
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-plus",
    messages=[
        {"role": "user", "content": "最近AI领域有哪些重大新闻?"},
    ],
    extra_body={
        "enable_search": True,
        "search_options": {
            "search_strategy": "turbo",
            "freshness": 7  # 仅检索最近7天内的内容
        }
    }
)
print(completion.choices[0].message.content)

限定搜索来源站点

需要将搜索限定在特定网站(如官方站点或权威媒体)时,可使用 assigned_site_list 参数限定来源。启用后,搜索将严格限于指定网站列表。 功能限制
  • 仅在 search_strategy 设为 turbo 时生效;
  • 适用于以下模型:
    • 千问 Max 系列:qwen3-maxqwen3-max-previewqwen3-max-2025-09-23 及之后的快照版本
    • 千问 Plus 系列:qwen-plus
    • 千问 Flash 系列:qwen-flash
    • 角色扮演模型:qwen-plus-characterqwen-flash-characterqwen-flash-character-2026-02-26
  • 最多配置25个站点。
assigned_site_list 参数默认值为[],表示不限制来源。
当指定站点内无相关内容时,搜索结果可能为空,模型将使用自身知识回答。
  • OpenAI 兼容
  • DashScope
Python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的配置,调用时请将 {WorkspaceId} 替换为真实的业务空间ID,各地域的配置不同。
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-plus",
    messages=[
        {"role": "user", "content": "北京有哪些热门新闻?"},
    ],
    extra_body={
        "enable_search": True,
        "search_options": {
            "search_strategy": "turbo",
            "assigned_site_list": ["baidu.com", "sina.cn"]  # 仅从指定站点检索
        }
    }
)
print(completion.choices[0].message.content)

通过自然语言控制检索范围

通过 prompt_intervene 参数,可用自然语言指定搜索范围(如仅检索特定主题或地域),系统据此进行针对性检索。 支持模型:qwen3-max、qwen3-max-preview、qwen3-max-2025-09-23、qwen-plus、qwen-flash、qwen-plus-character、qwen-flash-character、qwen-flash-character-2026-02-26 prompt_intervene 只能指定检索范围,无法弥补模型推理能力的不足。若在非交易日查询股价仍返回股价数据,需更换模型解决。
  • OpenAI 兼容
  • DashScope
Python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的配置,调用时请将 {WorkspaceId} 替换为真实的业务空间ID,各地域的配置不同。
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-plus",
    messages=[
        {"role": "user", "content": "智能科技发展现状"},
    ],
    extra_body={
        "enable_search": True,
        "search_options": {
            "search_strategy": "turbo",
            "intention_options": {
                "prompt_intervene": "仅检索AI技术相关内容"
            }
        }
    }
)
print(completion.choices[0].message.content)

提前返回搜索来源

流式输出场景下,搜索结果就绪到首个数据块发送之间通常有 0.5 秒以上延迟。启用此功能可在搜索完成后立即返回搜索来源,降低首包延时。设置 prepend_search_result 为 true以启用此功能。 可选值:
  • true:首个数据包仅包含搜索来源,模型回复在后续数据包中。
  • false (默认):首个数据包会包含搜索来源和模型回复的起始部分。
不支持 OpenAI 兼容方式与 DashScope Java SDK调用。
  • Python
  • curl
import os
import dashscope

# 以下为华北2(北京)地域的配置,调用时请将 {WorkspaceId} 替换为真实的业务空间ID,各地域的配置不同。
dashscope.base_http_api_url = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1"
responses = dashscope.Generation.call(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="qwen-plus",
    messages=[{"role": "user", "content": "杭州明天天气是什么?"}],
    enable_search=True,
    search_options={
        "enable_source": True,
        "prepend_search_result": True,  # 首包只返回搜索来源
    },
    result_format="message",
    stream=True,
    incremental_output=True
)

first_chunk = True
for resp in responses:
    if first_chunk:
        search_info = resp.output.get("search_info", {})
        if search_info:
            print("=" * 20 + f"已阅读{len(search_info['search_results'])}个页面" + "=" * 20)
            for web in search_info["search_results"]:
                print(f"[{web['index']}]: [{web['title']}]({web['url']})")
            first_chunk = False
            print("=" * 20 + "回复内容" + "=" * 20)

    content = resp.output.choices[0].message.content
    print(content, end='')
响应示例
====================已阅读8个页面====================
[1]: [直降近10℃!刚刚确认:冷空气即将抵达,这波很猛](https://cj.sina.com.cn/articles/view/1665450974/6344c3de01901avjw)
[2]: [直降近10℃!刚刚确认:冷空气即将抵达,这波很猛](https://hznews.hangzhou.com.cn/chengshi/content/2025-09/15/content_9083259.htm)
[3]: [杭州市2025年9月份天气查询](https://www.ip.cn/tianqi/zhejiang/hangzhou/202509.html)
[4]: [40天天气预报](http://uc.src.weather.com.cn/mweather40d/index.shtml?10121010103A)
[5]: [杭州天气预报杭州2025年09月18日天气](https://tianqi.eastday.com/tianqi/hangzhou/20250918.html)
[6]: [杭州市2024年9月份天气查询](https://www.ip.cn/tianqi/zhejiang/hangzhou/202409.html)
[7]: [风里有了秋的味道,杭州人盼望已久的第一缕桂花香终于来了](https://baijiahao.baidu.com/s?id=1843471369098538519&wfr=spider&for=pc)
[8]: [余杭区2024年9月份天气历史记录](https://www.ip.cn/tianqi/zhejiang/hangzhou/yuhang/202409.html)
====================回复内容====================
根据2025年9月17日的天气信息,杭州明天(9月18日)的天气情况如下:

**小雨转阴,气温较低。**
*   **天气状况**: 白天有小雨,之后转为阴天。
*   **气温**: 最高气温约 **26℃**,最低气温约 **22℃**。
*   **风力**: 白天有东北风。

**天气特点**:
受冷空气影响,杭州将迎来一次明显的降温过程。与前几日35℃以上的高温相比,明天最高气温将大幅下降近10℃,体感会凉爽许多。预计这次降温后,直到25日之前都不会再出现高温天气了。

图文混合输出

设置 enable_text_image_mixed: true 可启用图文混合输出。启用后,模型会在回复中嵌入相关图片。 示例效果
image.png
支持的模型:qwen-max、qwen-plus-latest、qwen-flash 该参数与 enable_search 相互独立,无需同时启用。 图片返回格式:模型返回的图片以 HTML <img> 标签形式嵌入回复内容中。如需在前端展示,可直接渲染 HTML,或将其转换为 Markdown 格式。
<!-- 模型返回的图片格式示例 -->
<p align="center">
<img src="https://example.com/image.jpg" alt="图片描述" width="400" height="auto">
</p>
以下示例代码展示如何启用图文混合输出功能。
  • OpenAI 兼容
  • DashScope
Python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的配置,调用时请将 {WorkspaceId} 替换为真实的业务空间ID,各地域的配置不同。
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-plus-latest",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "介绍一下杭州西湖"},
    ],
    # 启用图文混合输出
    extra_body={"enable_text_image_mixed": True}
)
print(completion.choices[0].message.content)

思考模型的联网搜索

前文的示例中,模型获取搜索结果后直接回复。这适用于事实性强、时效要求高的简单查询(如“杭州明天天气如何”)。但面对行业趋势分析、多源信息整合或报告撰写等复杂任务,模型难以给出高质量回答。可改用深度思考模型:获取检索内容后,先推理,再生成回复,可显著提升复杂任务的回答质量。 推理路径对用户可见,便于理解回复如何从检索信息中推导得出。 支持联网搜索,且具有深度思考能力的模型包括:
  • 千问
    • 千问Maxqwen3-max、qwen3-max-2026-01-23、qwen3-max-preview
    • 千问Plus:qwen-plus、qwen-plus-latest、qwen-plus-2025-07-14及之后的快照版本
    • 千问Flash:qwen-flash、qwen-flash-2025-07-28及之后的快照版本
    • 千问Turbo:qwen-turbo
    • QwQ:qwq-plus
  • DeepSeek:deepseek-v4-pro、deepseek-v4-flash、deepseek-v3.2、deepseek-v3.2-exp、deepseek-v3.1、deepseek-r1-0528、deepseek-r1
思考模型详情参见: 深度思考
  • OpenAI兼容
  • DashScope
  • Python
  • Node.js
  • HTTP

示例代码

from openai import OpenAI
import os

# 初始化OpenAI客户端
client = OpenAI(
    # 如果没有配置环境变量,请用阿里云百炼API Key替换:api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的配置,调用时请将 {WorkspaceId} 替换为真实的业务空间ID,各地域的配置不同。
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)

reasoning_content = ""  # 定义完整思考过程
answer_content = ""  # 定义完整回复
is_answering = False  # 判断是否结束思考过程并开始回复

# 创建聊天完成请求
completion = client.chat.completions.create(
    # 此处以qwen-plus为例,可更换为其它支持联网搜索的深度思考模型
    model="qwen-plus",
    messages=[{"role": "user", "content": "请你结合近期的AI热点新闻,预测一下AI的发展趋势"}],
    extra_body={
        "enable_thinking": True,
        "enable_search": True,  # 开启联网搜索的参数
        "search_options": {
            "forced_search": True,  # 强制联网搜索的参数
            "search_strategy": "max"
        },
    },
    stream=True,
    stream_options={"include_usage": True}
)

print("\n" + "=" * 20 + "思考过程" + "=" * 20 + "\n")

for chunk in completion:
    # 如果chunk.choices为空,则打印usage
    if not chunk.choices:
        print("\n" + "=" * 20 + "Usage" + "=" * 20)
        print(chunk.usage)
    else:
        delta = chunk.choices[0].delta
        # 打印思考过程
        if hasattr(delta, "reasoning_content") and delta.reasoning_content != None:
            print(delta.reasoning_content, end="", flush=True)
            reasoning_content += delta.reasoning_content
        else:
            # 开始回复
            if delta.content != "" and is_answering is False:
                print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")
                is_answering = True
            # 打印回复过程
            if delta.content:
                print(delta.content, end="", flush=True)
                answer_content += delta.content

# print("=" * 20 + "完整思考过程" + "=" * 20 + "\n")
# print(reasoning_content)
# print("=" * 20 + "完整回复" + "=" * 20 + "\n")
# print(answer_content)

返回结果

====================思考过程====================

我需要基于知识库中的AI热点新闻来预测AI的发展趋势。让我先分析一下知识库中的内容,找出近期的AI热点新闻和相关趋势。

从知识库中,我可以看到几条与AI相关的新闻:
...
我将基于这些信息,提供一个关于AI发展趋势的预测性回答。
====================完整回复====================

# AI发展趋势预测:从热点新闻看未来方向
根据近期AI热点新闻分析,我认为AI发展将呈现以下重要趋势:
...
AI发展正从"技术驱动"向"需求驱动"转变,更加注重解决实际问题和提升用户体验。随着技术成熟和应用场景拓展,AI将更深入地融入日常生活,但人性化、情感化的设计将成为关键差异化因素。正如"银发+AI"报告所强调的,技术终将服务于人,而非取代人与人之间的情感连接。
未来AI发展的核心将是在提升效率的同时,保持并增强人与人之间的情感纽带,实现技术与人文的和谐共生。
====================Usage====================
CompletionUsage(completion_tokens=1683, prompt_tokens=2688, total_tokens=4371, completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=None, audio_tokens=None, reasoning_tokens=1022, rejected_prediction_tokens=None), prompt_tokens_details=PromptTokensDetails(audio_tokens=None, cached_tokens=0))

Responses API的联网搜索

通过 tools 参数的tools数组中添加 web_search 工具即可启用联网搜索。
支持Qwen3.5及更高版本(Qwen3.5、Qwen3.6、Qwen3.7、Qwen3.8)的Max、Plus、Flash系列;思考模式下的 qwen3-max、qwen3-max-2026-01-23;以及 deepseek-v4-flash、deepseek-v4-flash-0731。
为了获得最佳回复效果,建议同时开启 web_searchweb_extractorcode_interpreter 工具。
关于Responses API的使用说明、代码示例和迁移指南,请参见 OpenAI兼容-Responses
from openai import OpenAI
import os

client = OpenAI(
    # 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的配置,调用时请将 {WorkspaceId} 替换为真实的业务空间ID,各地域的配置不同。
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1"
)

response = client.responses.create(
    model="qwen3.7-max",
    input="杭州天气",
    tools=[
        {"type": "web_search"},
        {"type": "web_extractor"},
        {"type": "code_interpreter"}
    ],
    extra_body={"enable_thinking": True}
)

print("="*20 + "回复内容" + "="*20)
print(response.output_text)

print("="*20 + "工具调用次数" + "="*20)
usage = response.usage
if hasattr(usage, 'x_tools') and usage.x_tools:
    print(f"联网搜索次数: {usage.x_tools.get('web_search', {}).get('count', 0)}")
# 取消以下注释查看中间过程的输出
# for r in response.output:
#     print(r.model_dump_json())

获取搜索来源

执行联网搜索后,搜索来源会在响应的 output 数组中 typeweb_search_call 的元素内返回,其 action.sources 字段为搜索来源链接列表。可在上述示例的 response 基础上按如下方式提取:
Responses API 暂不支持 enable_sourceenable_citationcitation_format 参数,不会在回复内容中自动插入 [1] 角标。如需角标标注,请使用 DashScope 调用方式。
# 在上述 response 的基础上提取搜索来源
print("=" * 20 + "搜索来源" + "=" * 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}")

计费说明

本文所述“联网搜索”为模型内置的联网搜索功能,其计费如下方所示,本身不提供免费调用额度。它与百炼 MCP 广场提供的“联网搜索 MCP”服务是相互独立的两个功能,计费也相互独立:联网搜索 MCP 全部用户前 2000 次调用免费,免费额度用尽后按 29 元/千次计费,详情请参见添加联网搜索MCP
联网搜索的费用包含两部分:
  • 模型调用费用:联网搜索的网页内容会拼接到提示词中,增加模型的输入 Token,按照模型的标准价格计费。价格详情请参考百炼控制台。使用 Responses API方式时,联网搜索工具的计费和agent 策略相同。
  • 搜索策略费用
    • turbo 与 max 策略:2026年2月27日 00:00 起:正式计费。每调用 1000 次的费用为:turbo 策略 3元,max 策略 4元。该标准仅适用于华北2(北京)地域。
    • agent 策略
      • 每调用 1000 次的费用为:
        • 华北2(北京)地域:4元
        • 新加坡地域 73.392381元。
    • agent_max 策略(限时优惠): 包含联网搜索与网页抓取的费用。
      • 联网搜索工具每 1000 次调用费用:
        • 华北2(北京)地域:4元。
        • 新加坡地域: 73.392381元。
      • 网页抓取工具限时免费。

限流说明

联网搜索限流为 15 RPS(每秒请求数),按阿里云主账号维度计算(所有API Key 的联网搜索请求总和,不区分模型)。超出限制时API不会报错,但搜索链路不会触发。

常见问题

Q:开启联网搜索后,模型为何没有执行网络搜索?

A:可能原因如下:
  • 模型判断无需联网:模型判断当前问题不涉及实时信息,可直接使用自身知识回答。如需强制联网,请在 search_options 中设置 forced_search: true
  • 触发限流:账号的请求频率超过了 15 RPS。API 不会报错,但会跳过搜索步骤,请控制请求频率。
  • 模型不支持:调用的模型不支持联网搜索,请参见支持的模型

Q:如何判断是否执行了搜索?

A:根据调用方式判断:
  • DashScope
    • 如果执行了搜索,响应会包含 search_info 字段,并且 usage 中会包含 plugins 字段。
    • 如果未执行搜索,响应不包含 search_info 字段,usage 中不包含 plugins 字段。
  • OpenAI 兼容 暂无法通过响应明确判断是否执行搜索。可对比usage中返回的输入 Token 数量。如果该数值远超问题本身,则说明执行了搜索。 例如:提问“杭州天气”,未联网时输入 Token 为 10,联网搜索后输入 Token 变为 1953。

Q:为何输入英文无法执行联网搜索?

A:平台正在持续优化联网的判定流程对于英文的支持。当前建议使用中文提问,或在输入英文时强制联网搜索

Q:开启联网搜索后,用户的提问内容是否会泄露到外部?

A:不会。系统不会将原始问题直接透传给搜索引擎,而是对查询意图进行深度解析和多层脱敏处理,仅提取可用于检索的关键信息片段。从原始 query 到实际检索会经过多次改写,确保敏感内容不会明文外泄。阿里云采用数据加密和隐私保护措施确保安全,具体请参考服务协议

Q:向量化检索是否会导致信息泄露?

A:不会。向量是高维数学表示,不具可读性,外部系统无法从中还原原始文字。向量匹配过程在封闭可信环境中完成,不会暴露给公共搜索引擎。

Q:联网搜索的搜索判定机制是什么?

A:系统先判断是否需要搜索——不涉及时事的内容通常不会触发。触发搜索的多为时事信息或百科知识类查询,与机密信息重叠度低。每次搜索都经过多次 query 改写后才执行检索。

Q:联网搜索后模型返回“无法回答”或无响应?

A:联网搜索结果可能包含管控信息,触发内容安全规则,导致模型返回 DataInspectionFailed 错误 (HTTP 400),响应内容为“抱歉,我无法回答这个问题”。排查方法:关闭联网搜索后重新发送相同查询,若模型正常回复,则确认是搜索返回的内容触发了拦截。内容安全拦截为非确定性行为,取决于搜索返回的具体内容,并非所有敏感话题查询都会触发。

Q:联网搜索查询股票价格时,非交易日仍返回股价数据,如何处理?

A:使用 qwen3-max 或更新版本的模型。qwen3-max 能识别非交易日并提示无收盘价;qwen-max 缺少日期推理能力,会在非交易日返回搜索获取的股价。enable_search_extensionprompt_intervene 无法解决该问题。

Q:调用 Kimi 系列模型时联网搜索为何不生效?

A:Kimi 系列模型不支持 enable_search 参数,无法使用本文所述的模型内置联网搜索。如需让 Kimi 模型获取实时信息,请在百炼控制台创建智能体应用,并通过工具 > MCP 服务添加联网搜索 MCP 工具(如 bailian_web_search)。添加后,模型将通过该 MCP 工具检索并返回实时搜索结果。联网搜索 MCP 与内置联网搜索是相互独立的两个功能,计费也相互独立,详情请参见添加联网搜索MCP

错误信息

如果执行报错,请参见错误码进行解决。
Token Plan
模型体验
模型调优
模型压缩目录节点
用量统计与性能监控
资产中心
服务支持