DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

kaka100330 /

kaka100330/dsh-web-ask

Verified

划选提问 + 侧边栏内嵌问答,用你自己的 DeepSeek 网页版账号作答(DSH 插件)

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@b0016902

dsh-web-ask

在 DSH 里划选一段话,用你自己的 DeepSeek 网页版账号回答,结果显示在右侧栏。

一条提问发出去的内容是三部分:

部分 作用
划选的原文 告诉模型问什么
当前会话的完整记录(.md 附件) 告诉模型为什么问
被引用消息里的图片 告诉模型长什么样

打开面板就是账号的网页会话列表——不是本机的 localStorage 记录。列表来自 GET /api/v0/chat_session/fetch_page,点任意一条可以整段预览,也能接着聊。

回复按 Markdown 渲染,用的是 DSH 自己的渲染器 (@deepseek-ai/dsh-client-ui-primitives 的 MarkdownText),所以代码块、表格、 脚注、复制按钮的行为与 DSH 其他位置一致。深度思考默认折叠,点标题展开;推理过程 是当前唯一内容时会自动展开,不会出现空白。

为什么需要 Host 半边

浏览器不能直接调 chat.deepseek.com:实测该站点对第三方 origin 不返回 access-control-allow-origin,预检请求直接 429。所以页面里 fetch 连响应都读不到。

因此本插件分两层:

浏览器(划选 / 面板) ──/web-ask/api──▶ Host(本机 node) ──▶ chat.deepseek.com

token 只存在于 Host 侧,永远不回传浏览器。

安装

需要 DSH >= 0.2.1-rc.2 与 Node >= 20。

dsh plugin --profile desktop add D:\\path\\to\\dsh-web-ask

发布到 npm 之后也可以按名字装:dsh plugin --profile desktop add dsh-web-ask。

**桌面版必须先完全退出应用(含托盘)**再执行上一条命令。装好后重启。只刷新页面不会加载 Host 半边。

配置 token

插件出厂没有任何凭据,第一次用它必须自己粘贴一次。

  1. 浏览器登录 https://chat.deepseek.com

  2. 开发者工具 → Console → 执行:

    JSON.parse(localStorage.getItem('userToken')).value
    
  3. 复制输出的字符串(是长串,不是 JSON)

  4. 在 DSH 右侧栏打开「网页版提问」,粘贴进输入框,点「保存」

面板顶部始终有「填写 token / 更换 token」按钮,存过也能再点开;下面还有 「清除已保存的 token」。token 会在账号在别处登出后失效,那时面板会提示, 换一枚即可。

保存前插件会先拿它验证一次;验证不过不会落盘。token 存在 $DSH_HOME/.credentials.yaml 的 WEB_ASK_TOKEN 下(明文,和 DSH 其他凭据一样)。

复用已有凭据

如果你已经给别的插件配过同一枚 token(例如 @xueray/dsh-web-bridge 的 DEEPSEEK_WEB_TOKEN),在插件设置里改成:

tokenSource: dsh-credential
credentialRef: DEEPSEEK_WEB_TOKEN

插件就会直接读那一枚,不必重填。

使用

  1. 在对话里划选助手或你自己说过的一段话
  2. 选区上方出现「提问」
  3. 点它 —— 右侧栏打开面板,引用已经在里面
  4. 输入问题,发送

面板里可以继续追问:追问沿用同一条网页会话,不重新上传上下文。

上下文里放什么

每次提问都会把当前 DSH 会话导出成 .md 附件发过去。文件里只有你的提问和模型的回答正文—— 不含系统提示词、工具列表、工具描述、技能目录。

面板上有一个开关:上下文包含工具调用(默认关)。

开关 附件内容
关(默认) 只含正文。助手某一轮只在调工具、没写字的,记一句「本轮没有文字回复,只执行了操作」
开 额外附上每次工具调用的名字、入参和返回(单条入参截到 800 字、返回截到 1200 字,总量 40K 字封顶)

无论开关如何,附件总是会发;预算默认 100K tokens,超出按「引用那一轮优先、邻近次之、 最近 10 轮再次之」裁剪,裁剪会在文件里写明省略了多少轮。超过单文件 20 MiB 会直接报错。

隐私

每次提问都会把当前 DSH 会话的完整记录导出成 .md 附件,发给 chat.deepseek.com。

首次使用会要求确认一次,之后面板底部一直显示这条状态。不想发就别用这个插件 —— 它存在的意义就是把这个上下文交给网页版模型。

已知限制

  • 非官方客户端。用的是 chat.deepseek.com 的私有接口,DeepSeek 改协议这个插件就会坏。
  • 网页版没有工具调用,所以本插件不注册 LLM provider,它不会出现在模型选择器里。
  • 一次划选 = 一条新的网页会话;想在已有网页会话里续聊,用面板内的追问。
  • 附件合计上限 10 个(网页版服务端硬限),其中上下文占 1 个,所以图片最多 9 张。
  • 单文件上限 20 MiB。

与其它插件共存

本插件用到的名字都与 @xueray/dsh-web-bridge、dsh-sidebar-qa 不同,三者可以同时装:

本插件
cordis entry id web-ask
侧栏 tab kind web-ask
侧栏 tab id dsh-web-ask:panel
路由前缀 /web-ask/api
浮层属性 data-dsh-web-ask
凭据引用 WEB_ASK_TOKEN
localStorage dsh-web-ask:*

结构


lib/pow.js 工作量证明(Keccak-f[1600] 变体,跳过第 0 轮) lib/transport.js chat.deepseek.com 的 HTTP 客户端 lib/completion-stream.js SSE 状态树解析(SET / APPEND / BATCH) lib/context-export.js 会话 → Markdown 附件 lib/http.js 请求围栏、信封、ndjson lib/index.js Host 入口与路由 lib/client.js 浏览器半边(手写成宿主认的模块形态)


本仓库只发布插件本体。测试与测试用的会话切片留在作者本机,不在仓库里。

`lib/client.js` 必须手写:本机没有可用的打包器,且宿主要求
`window.__ModuleLoader__.load({id, factory})` 形态,`id` 必须等于包名,`factory` 是惰性 CJS。
它只能 `require` 平台 seed(`react`、`react-dom/client` 等),不能 `require` 同包的文件。

## 许可

MIT。见 [LICENSE](LICENSE) 与 [NOTICE](NOTICE)。
—/ 5

No ratings yet

Verified DSH bundle

Commit b0016902c36a

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout