<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Websearch on Wilson Wu</title><link>https://wilsonwu.me/zh/tags/websearch/</link><description>Recent content in Websearch on Wilson Wu</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Mon, 28 Sep 2026 00:00:00 -0400</lastBuildDate><atom:link href="https://wilsonwu.me/zh/tags/websearch/index.xml" rel="self" type="application/rss+xml"/><item><title>用 Microsoft Web IQ 增强 OpenWebUI：零代码实现联网搜索与链接自动读取</title><link>https://wilsonwu.me/zh/blog/2026/microsoft-web-iq-in-openwebui/</link><pubDate>Mon, 28 Sep 2026 00:00:00 -0400</pubDate><guid>https://wilsonwu.me/zh/blog/2026/microsoft-web-iq-in-openwebui/</guid><description>&lt;p&gt;&lt;img alt="OpenWebUI 接入 Microsoft Web IQ" loading="lazy" src="https://wilsonwu.me/zh/blog/2026/microsoft-web-iq-in-openwebui/1-openwebui-web-iq.png"&gt;&lt;/p&gt;
&lt;p&gt;在&lt;a href="https://wilsonwu.me/zh/blog/2026/migrate-openwebui-to-azure-pg/"&gt;上一篇文章&lt;/a&gt;中，我把 OpenWebUI 的数据库迁移到了 Azure 托管 PostgreSQL。在日常使用 OpenWebUI 的过程中，我经常遇到两个问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;问不到最新的信息&lt;/strong&gt;：模型有知识截止时间，问到最近的版本发布、新闻或价格，要么答不上来，要么答错。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;贴进去的链接不会被打开&lt;/strong&gt;：把文章、文档或 GitHub 页面的 URL 贴进对话框，想让模型总结、翻译或对比，模型却不会去读这个链接，有时甚至会根据 URL 猜出一段“看起来很像”的内容。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这两个问题都可以靠 OpenWebUI 的联网能力解决。本文使用微软新推出的 &lt;strong&gt;Microsoft Web IQ&lt;/strong&gt; 作为联网搜索引擎，并让模型自动识别消息中的 URL、读取网页后再回答。整个过程只需要在 Azure 门户中创建一个 Web IQ 资源，再到 OpenWebUI 的管理界面中完成配置，&lt;strong&gt;不需要写代码，也不需要部署额外的服务&lt;/strong&gt;。&lt;/p&gt;</description><content:encoded><![CDATA[<p><img alt="OpenWebUI 接入 Microsoft Web IQ" loading="lazy" src="/zh/blog/2026/microsoft-web-iq-in-openwebui/1-openwebui-web-iq.png"></p>
<p>在<a href="/zh/blog/2026/migrate-openwebui-to-azure-pg/">上一篇文章</a>中，我把 OpenWebUI 的数据库迁移到了 Azure 托管 PostgreSQL。在日常使用 OpenWebUI 的过程中，我经常遇到两个问题：</p>
<ol>
<li><strong>问不到最新的信息</strong>：模型有知识截止时间，问到最近的版本发布、新闻或价格，要么答不上来，要么答错。</li>
<li><strong>贴进去的链接不会被打开</strong>：把文章、文档或 GitHub 页面的 URL 贴进对话框，想让模型总结、翻译或对比，模型却不会去读这个链接，有时甚至会根据 URL 猜出一段“看起来很像”的内容。</li>
</ol>
<p>这两个问题都可以靠 OpenWebUI 的联网能力解决。本文使用微软新推出的 <strong>Microsoft Web IQ</strong> 作为联网搜索引擎，并让模型自动识别消息中的 URL、读取网页后再回答。整个过程只需要在 Azure 门户中创建一个 Web IQ 资源，再到 OpenWebUI 的管理界面中完成配置，<strong>不需要写代码，也不需要部署额外的服务</strong>。</p>

<blockquote>
  <p>本文基于 Open WebUI v0.11.4（2026 年 9 月发布），界面名称以英文界面为准。文中的 API Key 均为占位符。</p>

</blockquote>
<h2 id="最终效果">最终效果</h2>
<p>配置完成后：</p>
<ul>
<li>提问涉及最新信息时，模型会自己调用 <code>search_web</code>，由 Web IQ 返回搜索结果，回答附带参考链接；</li>
<li>消息中出现 <code>http://</code> 或 <code>https://</code> 链接时，模型会自己调用 <code>fetch_url</code>，通过 Web IQ 读取页面正文后再回答，读取过的页面会出现在引用来源中；</li>
<li>两者可以在同一次回答中组合使用，例如先读取你给出的文档，再搜索最新的变更说明做对比。</li>
</ul>
<h2 id="为什么选择-microsoft-web-iq">为什么选择 Microsoft Web IQ</h2>
<p><img alt="Bing Search v7、Grounding with Bing Search 与 Web IQ 的接入方式对比" loading="lazy" src="/zh/blog/2026/microsoft-web-iq-in-openwebui/2-bing-vs-web-iq.png"></p>
<p>打开 OpenWebUI 的 <strong>Settings → Admin → Web Search</strong>，在 <strong>Web Search Engine</strong> 中可以找到 <code>bing</code>。选中后需要填写 <strong>Bing Search V7 Endpoint</strong> 和 <strong>Bing Search V7 Subscription Key</strong>，看起来只要填上 Azure 上 Bing 资源的密钥就能用，但这条路已经走不通了：</p>
<ul>
<li>Bing Search v7 API（包括 Bing Custom Search）已于 <strong>2025 年 8 月 11 日退役</strong>，已有实例全部下线，也无法再创建新资源；</li>
<li>现在 Azure 上能创建的 Bing 资源是 <strong>Grounding with Bing Search</strong>，它只能作为 Microsoft Foundry 智能体的工具使用，不能拿密钥直接调用搜索接口。想接入 OpenWebUI，就得自己开发一个桥接服务。</li>
</ul>
<p><strong>Microsoft Web IQ</strong> 是微软在 2026 年 6 月发布的一组面向 AI 应用的 API，用来为模型提供实时的网络信息（grounding），可以理解为“给 AI 智能体用的搜索引擎”：</p>
<ul>
<li>基于 Bing 的全球索引构建，并针对智能体的多轮检索重新设计；</li>
<li>返回的不只是链接列表，而是带来源的相关段落，可以直接放进模型上下文，用更少的 token 得到更好的回答；</li>
<li>覆盖网页、新闻、图片、视频等内容，支持 100 多种语言和市场。</li>
</ul>
<p>更重要的是，OpenWebUI 已经内置了 <code>microsoft_web_iq</code> 引擎。它既可以作为<strong>搜索引擎</strong>，也可以作为读取网页的<strong>网页加载引擎</strong>，只需要一个 API Key。</p>
<table>
	<thead>
			<tr>
					<th>方案</th>
					<th>在 OpenWebUI 中接入</th>
					<th>现状</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Bing Search v7</td>
					<td>内置 <code>bing</code> 引擎</td>
					<td>已退役，不可用</td>
			</tr>
			<tr>
					<td>Grounding with Bing Search</td>
					<td>自己开发桥接服务，通过 Foundry 调用</td>
					<td>主要面向 Foundry 智能体</td>
			</tr>
			<tr>
					<td>Microsoft Web IQ</td>
					<td>内置 <code>microsoft_web_iq</code> 引擎，填写 API Key 即可</td>
					<td>2026 年 6 月发布，目前为有限访问</td>
			</tr>
	</tbody>
</table>
<h2 id="工作原理">工作原理</h2>
<p><img alt="OpenWebUI 通过 Web IQ 搜索和读取网页" loading="lazy" src="/zh/blog/2026/microsoft-web-iq-in-openwebui/3-how-it-works.png"></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>用户消息
</span></span><span style="display:flex;"><span>  │
</span></span><span style="display:flex;"><span>  ▼
</span></span><span style="display:flex;"><span>OpenWebUI（模型以原生工具调用方式工作）
</span></span><span style="display:flex;"><span>  │
</span></span><span style="display:flex;"><span>  ├── search_web：联网搜索
</span></span><span style="display:flex;"><span>  │     └── Web IQ /search/web：返回标题、链接和相关段落
</span></span><span style="display:flex;"><span>  │
</span></span><span style="display:flex;"><span>  └── fetch_url：读取消息中的链接
</span></span><span style="display:flex;"><span>        └── Web IQ /browse：读取网页，返回 Markdown 格式的正文
</span></span></code></pre></div><p>几点说明：</p>
<ul>
<li><code>search_web</code> 和 <code>fetch_url</code> 是 OpenWebUI 的两个内置工具，同属 Web Search 类别，由模型自己决定何时调用；</li>
<li>这两个工具依赖原生工具调用（Native Function Calling），这是 v0.10.0 起的默认模式；</li>
<li>网页加载引擎也设为 Web IQ 之后，网页由 Web IQ 读取，需要 JavaScript 渲染的页面也能读到内容。PDF 等文件仍然由 OpenWebUI 下载后自行解析。</li>
</ul>
<h2 id="第一步创建-web-iq-资源并获取-api-key">第一步：创建 Web IQ 资源并获取 API Key</h2>
<p>Web IQ 以 Azure 资源的形式提供。在 Azure 门户中搜索 <strong>Microsoft Web IQ</strong>，进入 <strong>Microsoft Web IQ resources</strong>，点击 <strong>Create</strong>，在 <strong>Basics</strong> 页填写：</p>
<ul>
<li><strong>Subscription</strong> 和 <strong>Resource group</strong>：选择用于管理和计费的订阅与资源组；</li>
<li><strong>Name</strong>：资源名称；</li>
<li><strong>Region</strong>：固定为 <strong>Global</strong>，这是一个可以跨 Azure 区域使用的全局资源。</li>
</ul>
<p><img alt="在 Azure 门户中创建 Microsoft Web IQ 资源" loading="lazy" src="/zh/blog/2026/microsoft-web-iq-in-openwebui/4-create-web-iq-resource.png"></p>
<p>点击 <strong>Review + create</strong> 完成创建，然后在资源页面中复制 API Key，下一步会用到。</p>
<p>Web IQ 目前仍处于<strong>有限访问</strong>（limited access）阶段。如果在 Azure 门户中找不到或者无法创建这个资源，可以先到 <a href="https://www.microsoft.com/en-us/WebIQ">Microsoft Web IQ 官网</a> 点击 <strong>Join the waitlist</strong> 申请。</p>
<h2 id="第二步配置-web-iq-搜索和网页读取">第二步：配置 Web IQ 搜索和网页读取</h2>
<p>以管理员身份登录 OpenWebUI，点击左下角的头像，进入 <strong>Settings → Admin → Web Search</strong>。</p>
<h3 id="1-search-部分">1. Search 部分</h3>
<table>
	<thead>
			<tr>
					<th>设置项</th>
					<th>值</th>
					<th>说明</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Web Search</td>
					<td>开启</td>
					<td>全局开关</td>
			</tr>
			<tr>
					<td>Web Search Engine</td>
					<td><code>microsoft_web_iq</code></td>
					<td>选中后会出现下面三项</td>
			</tr>
			<tr>
					<td>Microsoft Web IQ API Base URL</td>
					<td><code>https://api.microsoft.ai/v3</code></td>
					<td>保持默认值</td>
			</tr>
			<tr>
					<td>Microsoft Web IQ API Key</td>
					<td><code>&lt;WEB_IQ_API_KEY&gt;</code></td>
					<td>第一步获取的 API Key</td>
			</tr>
			<tr>
					<td>Language</td>
					<td><code>en</code></td>
					<td>搜索结果的语言代码，默认为 <code>en</code></td>
			</tr>
			<tr>
					<td>Search Result Count</td>
					<td><code>5</code></td>
					<td>每次搜索返回的结果数量</td>
			</tr>
			<tr>
					<td>Fetch URL Content Length Limit</td>
					<td><code>50000</code></td>
					<td><code>fetch_url</code> 最多返回的字符数，留空表示不限制</td>
			</tr>
	</tbody>
</table>
<p>几点说明：</p>
<ul>
<li><strong>Microsoft Web IQ API Base URL</strong>：OpenWebUI 已经预先填好，一般不需要修改；如果 Web IQ 资源页面显示了其他终结点，以资源页面为准；</li>
<li><strong>Language</strong>：技术类内容用 <code>en</code> 通常效果更好；如果主要查询中文资讯，可以改为 <code>zh</code>（以 Web IQ 支持的语言代码为准）；</li>
<li><strong>Fetch URL Content Length Limit</strong>：默认不截断，遇到很长的页面会占用大量上下文，建议设置上限；</li>
<li><strong>Web Search Confirmation</strong>：可选。开启后，用户在对话中使用联网搜索前会先看到确认提示，例如默认的 “Your query will be sent to the configured web search provider.”，提醒用户查询内容会发送到外部服务。</li>
</ul>
<h3 id="2-loader-部分">2. Loader 部分</h3>
<table>
	<thead>
			<tr>
					<th>设置项</th>
					<th>值</th>
					<th>说明</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Web Loader Engine</td>
					<td><code>microsoft_web_iq</code></td>
					<td>读取网页也交给 Web IQ，与搜索共用上面的 API Key</td>
			</tr>
	</tbody>
</table>
<p>点击 <strong>Save</strong> 保存，配置立即生效，不需要重启容器。</p>
<p>Web Loader Engine 也可以保持 <strong>Default</strong>，由 OpenWebUI 服务器自己抓取网页。但默认加载器读不到需要 JavaScript 渲染的内容，它的 User-Agent 也容易被部分网站拦截，交给 Web IQ 读取会省心很多。</p>
<h2 id="第三步让模型自动识别并读取消息中的-url">第三步：让模型自动识别并读取消息中的 URL</h2>
<p><img alt="没有 fetch_url 时模型只能猜，有 fetch_url 时先读后答" loading="lazy" src="/zh/blog/2026/microsoft-web-iq-in-openwebui/5-read-before-answer.png"></p>
<h3 id="1-模型设置">1. 模型设置</h3>
<p>进入 <strong>Settings → Admin → Models</strong>，编辑对话使用的模型：</p>
<table>
	<thead>
			<tr>
					<th>位置</th>
					<th>设置</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Capabilities</td>
					<td>勾选 <strong>Web Search</strong>、<strong>Builtin Tools</strong>、<strong>Citations</strong>、<strong>Status Updates</strong></td>
			</tr>
			<tr>
					<td>Builtin Tools</td>
					<td>确认 <strong>Web Search</strong>（Search the web and fetch URLs）已勾选</td>
			</tr>
			<tr>
					<td>Default Features</td>
					<td>勾选 <strong>Web Search</strong>，新对话默认打开联网开关</td>
			</tr>
			<tr>
					<td>Advanced Params</td>
					<td><strong>Function Calling</strong> 设为 <strong>Native</strong>（默认值）</td>
			</tr>
	</tbody>
</table>
<p>其中 <strong>Default Features</strong> 很关键：原生模式下，只有模型启用了 Web Search 能力，并且当前对话打开了联网开关，<code>search_web</code> 和 <code>fetch_url</code> 才会提供给模型。不勾选的话，用户每次都要在输入框的 <strong>+</strong> 菜单中手动打开联网搜索，否则贴进来的链接不会被读取。</p>
<p>原生模式要求模型具备可靠的工具调用能力，建议使用较新的模型，太小或太旧的模型可能不会正确调用工具。</p>
<h3 id="2-系统提示词">2. 系统提示词</h3>
<p>是否调用 <code>fetch_url</code> 由模型自己决定。为了让行为更稳定，在同一个页面的 <strong>System Prompt</strong> 中加入以下规则：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>你可以使用 search_web 和 fetch_url 两个工具：
</span></span><span style="display:flex;"><span>1. 用户消息中出现以 http:// 或 https:// 开头的链接时，先调用 fetch_url 读取链接内容，再根据读取结果回答；有多个链接时逐个读取。
</span></span><span style="display:flex;"><span>2. 问题涉及最新动态、版本、价格等时效性信息，或者你不确定答案时，调用 search_web 搜索；搜索结果中的摘要不够时，再用 fetch_url 打开最相关的结果。
</span></span><span style="display:flex;"><span>3. 链接无法访问或内容为空时，如实告诉用户，不要根据链接地址推测页面内容。
</span></span><span style="display:flex;"><span>4. 在回答末尾列出参考链接。
</span></span></code></pre></div><p>第 3 条用来防止模型在读取失败后“编”一段内容；第 4 条则是因为原生模式下，<code>search_web</code> 的结果不会出现在引用来源中，只有 <code>fetch_url</code> 读取过的页面才会，所以需要模型在回答中写出来。</p>
<h3 id="3-手动附加网页">3. 手动附加网页</h3>
<p>如果希望某个链接一定被读取，也可以手动附加：</p>
<ul>
<li>在输入框中输入 <code>#</code> 后粘贴链接，然后选择该网页；</li>
<li>或者通过输入框的 <strong>+ → Attach Webpage</strong> 添加链接。</li>
</ul>
<p>这两种方式由 OpenWebUI 直接读取页面（同样使用上面配置的网页加载引擎），不依赖模型的判断。</p>
<h2 id="效果验证">效果验证</h2>
<h3 id="1-读取链接">1. 读取链接</h3>
<p>新建一个对话，输入：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>帮我总结这篇文档的要点：https://docs.openwebui.com/features/chat-conversations/web-search/providers/microsoft-web-iq
</span></span></code></pre></div><p>预期：</p>
<ul>
<li>回答过程中显示模型调用了 <code>fetch_url</code>；</li>
<li>回答下方的引用来源中出现这篇文档；</li>
<li>回答内容与文档一致，而不是泛泛而谈。</li>
</ul>
<h3 id="2-联网搜索">2. 联网搜索</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>Open WebUI 最新发布的版本是多少？有哪些主要更新？
</span></span></code></pre></div><p>预期：</p>
<ul>
<li>模型调用 <code>search_web</code>，结果来自 Web IQ；</li>
<li>如果摘要不够，模型会继续调用 <code>fetch_url</code> 打开发布说明页面；</li>
<li>回答末尾列出参考链接。</li>
</ul>
<h3 id="3-组合使用">3. 组合使用</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>先读取 https://github.com/open-webui/open-webui/releases 的内容，再搜索一下社区对最新版本的反馈，最后给我一个是否升级的建议。
</span></span></code></pre></div><p>预期模型会先读取给出的链接，再根据需要多次搜索，最后综合两部分信息给出建议。</p>
<h3 id="4-排查问题">4. 排查问题</h3>
<p>如果没有达到预期效果，可以先查看 OpenWebUI 的日志：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>docker logs --since 10m open-webui 2&gt;&amp;<span style="color:#ae81ff">1</span> |
</span></span><span style="display:flex;"><span>grep -Ei <span style="color:#e6db74">&#39;web iq|microsoft browse|fetch_url|blocked&#39;</span>
</span></span></code></pre></div><p>常见的日志：</p>
<ul>
<li><code>Error searching with Microsoft Web IQ API</code>：搜索请求失败，通常是 API Key 不正确或者尚未开通；</li>
<li><code>Error browsing ... with Microsoft Web IQ</code>：Web IQ 读取网页失败；</li>
<li><code>Blocked ...</code>：链接指向内网地址或者在过滤列表中，被 OpenWebUI 拦截。</li>
</ul>
<p>也可以直接用 curl 验证 API Key，下面的请求格式与 OpenWebUI 实际发送的一致：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -sS https://api.microsoft.ai/v3/search/web <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span>  -H <span style="color:#e6db74">&#34;x-apikey: </span>$WEB_IQ_API_KEY<span style="color:#e6db74">&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span>  -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span>  -d <span style="color:#e6db74">&#39;{&#34;query&#34;: &#34;Open WebUI&#34;, &#34;maxResults&#34;: 3, &#34;language&#34;: &#34;en&#34;, &#34;contentFormat&#34;: &#34;passage&#34;}&#39;</span>
</span></span></code></pre></div><p>正常情况下会返回包含 <code>webResults</code> 的 JSON，每条结果都有 <code>url</code>、<code>title</code> 和 <code>content</code>。</p>
<h2 id="注意事项">注意事项</h2>
<ul>
<li><strong>数据会发送到 Web IQ</strong>：搜索词和需要读取的链接会发送到 Web IQ API（<code>api.microsoft.ai</code>），数据如何处理以 Web IQ 的服务条款为准。敏感对话可以关闭联网开关，或者开启 Web Search Confirmation 提醒用户。</li>
<li><strong>请求中会附带用户信息</strong>：从 v0.11.4 的源码看，调用 Web IQ 搜索时，OpenWebUI 会在请求头中附带当前用户的名称、ID、邮箱和角色（<code>X-OpenWebUI-User-*</code>），目前无法通过配置关闭。如果组织对此有要求，上线前需要评估。</li>
<li><strong>内网链接无法读取</strong>：读取链接之前，OpenWebUI 会先校验 URL，默认禁止访问内网地址和云元数据地址。这些防护默认开启，无需额外配置，Web IQ 本身也访问不到内网页面。</li>
<li><strong>调用次数与成本</strong>：每次 <code>search_web</code> 和 <code>fetch_url</code> 都是一次 Web IQ 调用，原生模式下模型还可能为一个问题连续调用多次。建议 Search Result Count 保持在 3～5，只在需要联网的模型上把 Web Search 设为默认功能。Web IQ 的费用计入创建资源时选择的 Azure 订阅，可以为资源组设置预算告警。</li>
</ul>
<h2 id="常见问题">常见问题</h2>
<table>
	<thead>
			<tr>
					<th>现象</th>
					<th>可能原因</th>
					<th>处理方法</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>贴了链接，模型说无法访问网页</td>
					<td>对话没有打开联网开关，或者模型没有启用 Web Search 能力和内置工具</td>
					<td>检查模型的 Capabilities、Default Features 和对话中的联网开关</td>
			</tr>
			<tr>
					<td>模型根据 URL 编造内容</td>
					<td>没有调用 <code>fetch_url</code></td>
					<td>确认 Function Calling 为 Native，并加入系统提示词</td>
			</tr>
			<tr>
					<td>普通用户看不到联网开关</td>
					<td>用户组没有 Web Search 功能权限</td>
					<td>在用户组的功能权限中允许 Web Search</td>
			</tr>
			<tr>
					<td>搜索始终没有结果</td>
					<td>API Key 错误或者尚未开通</td>
					<td>查看日志，并用 curl 验证 API Key</td>
			</tr>
			<tr>
					<td>搜索结果的语言不符合预期</td>
					<td>Language 与查询的语言不一致</td>
					<td>修改 Language</td>
			</tr>
			<tr>
					<td>部分网页读取失败</td>
					<td>页面需要登录、禁止抓取，或者链接指向内网</td>
					<td>换一个可以公开访问的链接，或者直接把正文粘贴到对话中</td>
			</tr>
	</tbody>
</table>
<h2 id="总结">总结</h2>
<p>Bing Search API 退役之后，OpenWebUI 内置的 <code>bing</code> 引擎已经无法使用。借助 OpenWebUI 内置的 <code>microsoft_web_iq</code> 引擎，只需要在 Azure 上创建一个 Web IQ 资源并拿到 API Key，就可以在管理界面中完成联网搜索的接入：</p>
<ul>
<li>搜索和网页读取都交给 Web IQ，返回的是适合直接放进模型上下文的段落和正文；</li>
<li>在原生工具调用模式下，<code>search_web</code> 负责搜索，<code>fetch_url</code> 负责读取消息中的链接；</li>
<li>通过模型的 Default Features 和系统提示词，让模型自动识别 URL、先读后答，并在回答中给出参考链接。</li>
</ul>
<p>整个过程不需要写一行代码。无论是询问最新的信息，还是直接丢一个链接让模型总结，现在都可以在 OpenWebUI 中完成。</p>
<h2 id="参考资料">参考资料</h2>
<ul>
<li><a href="https://blogs.bing.com/search/2026/6/Announcing-Microsoft-Web-IQ/">Announcing Microsoft Web IQ</a></li>
<li><a href="https://www.microsoft.com/en-us/WebIQ">Microsoft Web IQ</a></li>
<li><a href="https://docs.openwebui.com/features/chat-conversations/web-search/providers/microsoft-web-iq">Open WebUI: Microsoft Web IQ</a></li>
<li><a href="https://docs.openwebui.com/features/chat-conversations/web-search/agentic-search">Open WebUI: Agentic Web Search &amp; URL Fetching</a></li>
<li><a href="https://docs.openwebui.com/features/chat-conversations/web-search/providers/bing">Open WebUI: Bing</a></li>
<li><a href="https://docs.openwebui.com/getting-started/advanced-topics/hardening">Open WebUI: Hardening</a></li>
</ul>
]]></content:encoded></item></channel></rss>