插件指南

pi-web-access:安装、搜索降级、PDF 与 YouTube

安装 pi-web-access,了解经源码核验的搜索降级、PDF 提取、YouTube 依赖与实际验证步骤。

概览

pi-web-access 为 Pi 添加 web_search、fetch_content 和后续内容读取工具。使用下方安装命令,重启 Pi 后,先读取公开网址或做一次小范围搜索。

零配置指免 Key 的 Exa MCP 搜索路径,不代表所有供应商都免费、可以离线使用,或无需后端即可读取登录网站和分析 YouTube。

安装与运行边界

pi-web-access

在同一扩展中搜索网页、提取正文、读取 PDF 和分析视频。

pi install npm:pi-web-access
实现机制
注册 Pi 原生工具。搜索通过供应商 API 或 Exa MCP;普通网址先走直接 HTTP 与本地 HTML 提取,再按配置降级。GitHub 仓库网址另有本地克隆路径。
前置依赖
需要 Pi 和可访问外网的网络。Exa MCP 免 Key,其他 API 需对应凭据。GitHub 克隆需要 Git;PDF 本地文字提取使用包内 unpdf/pdf.js;视频抽帧可选安装 ffmpeg 和 yt-dlp。
数据范围
查询发送给选中的搜索服务。托管提取服务接收网址;配置 Datalab/Gemini 的 PDF 处理会发送 PDF 文件内容;本地视频分析可能上传视频到 Gemini。浏览器 Cookie 读取需显式启用。
失败行为
自动搜索尝试可用降级来源;指定供应商时严格使用该来源。来源耗尽返回诊断。远程托管 HTTP 提取须启用 fetchRouting.allowRemoteHostedProviders。
已知限制
免 Key 不代表离线或无限额度。DuckDuckGo 需显式选择;PDF 本地兜底没有 OCR;私密或年龄受限的 YouTube 视频可能失败,也不保证获取付费墙后的正文。

搜索如何降级

自动搜索先尝试已配置的 SearXNG。当前模型为 openai-codex 时,优先尝试已授权 OpenAI;否则 Exa 先于 OpenAI。有 Exa Key 使用直接 API,无 Key 使用 MCP。

此提交之后的可用来源顺序为 Brave → Parallel → TinyFish → Search1API → Searchinfinity → Querit → Tavily → Firecrawl → Jina → SERPdive → Kagi → Bocha → Ollama → Perplexity → Gemini API/Web。未配置的服务会跳过;依赖 Cookie 的 Gemini Web 需显式开启。

DuckDuckGo 需显式选择。指定单个 provider 时严格使用该来源;searchRouting.providers 可定义顺序,fallbackOn 决定哪些错误可以继续下一来源,不应假定所有错误都会自动降级。

网址提取的另一条路径

GitHub 仓库可克隆后本地读取。普通 HTML 先使用直接 HTTP、Readability 及 RSC 解析;之后可尝试配置好的自托管 Firecrawl 或 Crawl4AI。远程 HTTP(S) 目标若要用第三方托管提取器,需配置 fetchRouting.allowRemoteHostedProviders: true。

开启后,远程服务会收到目标网址并自行抓取;这与搜索 API 配置分别控制。降级链或“智能提取”都不保证读取登录页、付费墙或反爬页面。

PDF 的依赖与数据路径

PDF 按已配置的 Datalab、已配置的 Gemini、最后本地 unpdf/pdf.js 的顺序提取。本地路径不需要 pdftotext、浏览器或 Key,但只能读取内嵌文字,没有 OCR;远程 PDF 路径会收到文件内容。

设置 pdf.provider 为 unpdf 可选择本地提取;扫描件可能读不到有效文字。默认限制 20 MB、前 100 页。远程普通错误可回退本地,但取消及凭据/配置错误不会被当作普通可恢复错误。

{
  "pdf": { "provider": "unpdf", "maxSizeMB": 20, "maxPages": 100 }
}

区分 YouTube 理解与抽帧

YouTube 理解先尝试明确允许浏览器 Cookie 的 Gemini Web,再尝试 Gemini API、Perplexity。需要至少一个可用并已授权的后端;私密及年龄限制视频可能在整条链上失败。

ffmpeg 和 yt-dlp 是将 YouTube 帧提取为图片时的可选系统程序,并非远程转录/画面描述的前置条件。本地视频抽帧需要 ffmpeg;视频理解可能将文件上传到 Gemini。

配置并验证

可选供应商配置位于 ~/.pi/agent/web-search.json。例如 braveApiKey 可写成 "$BRAVE_API_KEY",从该环境变量解析凭据。需要时将上面的 PDF 设置合并到同一个 JSON 对象。

重启 Pi 后请求下面的搜索与抓取,检查来源链接及供应商元数据,再试一份已知的文本 PDF。这是可复现的验证方法,不代表本项目已调用所有上游服务或测量提取准确度。

web_search({ query: "Pi coding agent documentation", numResults: 3 })
fetch_content({ url: "https://pi.dev/" })

相关与替代方案

在 README 中引用

Pi Index: pi-web-access

一手来源与核验范围

本文区分源码 / 文档核验与实际运行测试。未标注“已实测”的功能、性能和节省比例不代表本站测量结果。