DeepSeek Harness Hub
← 返回列表

genson1808/dsh-web-search-perplexity-account

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

面向 DeepSeek Harness 的 Perplexity 搜索提供程序,具备 oh-my-pi…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/16 · 已提供中文文档

DeepSeek Harness 的 Perplexity 消费者账户(Pro)网页搜索提供程序——通过浏览器 SSO / 邮箱 OTP 登录,无需按 API 密钥计费。移植自 oh-my-pi。

综合分
30
GitHub 分
30
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add genson1808/dsh-web-search-perplexity-account
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-llm@deepseek-ai/dsh-settings@deepseek-ai/cordis@deepseek-ai/dsh-authorization@deepseek-ai/dsh-credentials@deepseek-ai/dsh-launch-environment@deepseek-ai/dsh-web@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-web-search-perplexity

面向 DeepSeek Harness 的 Perplexity 搜索提供程序,具备 oh-my-pi 的完整认证链:消费者账户会话(含 Pro)、计费 Sonar API 密钥、OpenRouter 或匿名——按顺序逐一尝试并回退。包含完整的登录流程:浏览器 SSO、邮箱 OTP(支持 TOTP 质询)、macOS 桌面应用会话借用,以及 API 密钥粘贴。移植自 oh-my-pi 的 perplexity.ts 适配器。

本包将全部 Perplexity 搜索模式统一到一个提供程序中:消费者账户会话(含 Pro)、直接 Sonar API 密钥、OpenRouter 路由以及匿名回退。在你的配置文件中通过 searchProvider: perplexity-account 固定使用它。

工作原理

- 将 perplexity-account 的 WebSearchProvider 注册到 ctx.web。
- 每次搜索的认证链(oh-my-pi 的顺序;每次失败都会落到下一项):配置 cookies → 会话令牌(配置 / $PERPLEXITY_SESSION_TOKEN / 已存储记录)→ Perplexity API 密钥(配置 / $PERPLEXITY_API_KEY / 已存储记录)→ OpenRouter 密钥($OPENROUTER_API_KEY,路由到 perplexity/sonar-pro)→ 匿名。
- 账户模式通过 SSE 与 https://www.perplexity.ai/rest/sse/perplexity_ask 通信;会话 JWT 以 __Secure-next-auth.session-token cookie 的形式传递——正是它解锁了账户的 Pro 模型选择(使用 bearer 头会静默降级为匿名的 turbo)。
- API 密钥模式以 search_mode: "web"、num_search_results、max_tokens、temperature、web_search_options 以及原生域名/日期/语言过滤器 POST chat/completions。
- 向 ctx.authorization 注册两个登录流程(由每个 harness UI 渲染):
- Perplexity(账户会话)——浏览器 SSO 打开临时配置文件的 Chrome,并通过 DevTools 协议捕获会话 cookie;邮箱 OTP 走 CSRF → 验证码 → 可选的 TOTP 质询;原生借用读取旧版 ai.perplexity.mac 安装。
- Perplexity(API 密钥)——一个掩码粘贴提示。
- 记录存放在凭据存储中,主作用域为 web-search-perplexity/session 和 web-search-perplexity/api-key(并自动回退读取旧版 web-search-perplexity-account/ 记录);提供程序每次搜索都会重新读取它们,因此登录无需重启即可生效。

安装

克隆并构建插件:

git clone https://github.com/genson1808/dsh-web-search-perplexity
cd dsh-web-search-perplexity
npm install && npm run build

将其添加到你的 DeepSeek Harness 配置文件:

dsh plugin add /path/to/dsh-web-search-perplexity

该包声明了 dsh.bundle,因此 dsh plugin add 会将其追加到 dsh.profile.bundles,并且其随附的 cordis.patch.yml 会自动插入加载器条目。
配置

挂载是自动的;将其选为活动提供程序并进行调优则在配置文件的 cordis.patch.yml 中完成:

- id: web
config:
searchProvider: perplexity-account
- id:    # 显示在 设置 → 插件 → 插件列表 中
config:
sessionToken: !!js process.env.PERPLEXITY_SESSION_TOKEN  # 或留空并通过授权 UI 登录
model: experimental          # 消费者 model_preference;默认 'experimental'
searchRecency: week          # 可选:hour|day|week|month|year
timeoutMs: 60000             # 可选

| 字段 | 默认值 | 含义 |
|---|---|---|
| cookies | $PERPLEXITY_COOKIES | 来自已登录 perplexity.ai 会话的原始 Cookie 头(优先级最高) |
| sessionToken | $PERPLEXITY_SESSION_TOKEN | __Secure-next-auth.session-token 的值;回退到凭据记录 |
| apiKey | $PERPLEXITY_API_KEY | 计费的 Sonar API 密钥;回退到 api-key 凭据记录 |
| openRouterKey | $OPENROUTER_API_KEY | OpenRouter 密钥 — 路由 perplexity/ |
| model | experimental | 消费者 model_preference(付费计划上为 Sonar) |
| apiModel | sonar-pro | API 模式模型 |
| apiMaxTokens | 8192 | API 模式 max_tokens |
| apiTemperature | 0.2 | API 模式采样温度 |
| numSearchResults | 20 | API 模式 num_search_results |
| useResponsesApi | $PERPLEXITY_RESPONSES=1 | API 模式传输:使用 Responses API SSE 而非 chat/completions |
| searchRecency | (未设置) | search_recency_filter:hour、day、week、month、year |
| timeoutMs | 60000 | 每请求硬超时 |

要交互式登录,请运行 harness 的登录/授权 UI,并选择 Perplexity(账户会话) — 浏览器 SSO 是默认方式 — 或选择 Perplexity(API 密钥) 来存储 Sonar API 密钥。在 Web 界面中,该插件在 设置 → 插件 → 插件列表 → 全局插件 下显示为 已启用;插件配置* 下不会渲染任何卡片(这需要客户端浏览器 bundle),因此调优参数只能通过 profile 补丁(cordis.patch.yml)或环境变量进行配置。

查询指令

site: / -site:、after:、before: 和 lang: 指令映射到 Perplexity 原生的 search_domain_filter、日期和语言过滤器(因此引擎不会被双重约束);其他运算符作为文本信号传递。当存在显式的 after:/before: 边界时,时效性会被丢弃 — 上游 API 拒绝这种组合。

注意事项

- 消费者 ask 端点是非官方的 — Perplexity 可以随时更改或阻止它。API 密钥路径是受支持的路径。
- Perplexity 在 ask 端点上不提供结果数量控制;maxResults 是在事后切片的(ctx.web 接缝无论如何都会强制执行该限制)。
- 匿名模式始终可用,但始终获得免费的 turbo 模型。
- useResponsesApi 镜像了 oh-my-pi 的 PI_PERPLEXITY_RESPONSES=1 选择加入;它在上游是实验性的,默认关闭。
- 设置 PERPLEXITY_AUTH_NO_BORROW=1 以跳过桌面应用会话借用(oh-my-pi 的 PI_AUTH_NO_BORROW)。

开发

bash
npm run typecheck   # tsc --noEmit
npm test            # 单元测试(模拟 fetch)
npm run build       # tsdown → lib/ + tsc 声明文件

致谢

- 登录和 ask 端点逻辑移植自 oh-my-pi(packages/ai/src/registry/oauth/perplexity.ts、packages/coding-agent/src/web/search/providers/perplexity.ts),MIT 许可。
- 插件架构、接缝类型和配置布局遵循 deepseek-ai/deepseek-harness,MIT 许可。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群