# dsh-deepseek-webchat **Repository Path**: NEVSTOP-LAB/dsh-deepseek-webchat ## Basic Information - **Project Name**: dsh-deepseek-webchat - **Description**: Embed DeepSeek web chat (chat.deepseek.com) into DSH. Requirements & design. / 将 DeepSeek 网页版对话嵌入 DSH。需求与设计。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-25 - **Last Updated**: 2026-08-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DSH-DeepSeek-Webchat 在 DSH 中嵌入官方 [chat.deepseek.com](https://chat.deepseek.com/) 网页对话插件。通过 **同源透明反向代理** 把官方网页版带入 DSH,交互等效于浏览器打开,登录态在浏览器 Cookie 中持久,**不使用 API token**。 > 说明:官方网页版带 CSP `frame-ancestors 'none'`,直接 iframe 无法嵌入。本插件在宿主起一个反向代理,把官方响应改写为允许被本机 iframe 渲染,因此能获得完整、可交互、可持久登录的「网页版」体验,而不只是静态快照。 ## 它能做什么 - **全局入口**:侧边栏「设置」旁新增「网页版」按钮,点击后弹出全屏覆盖层显示官方网页对话(带关闭按钮),体验等同浏览器打开。 - **每会话入口**:会话顶部视图环新增「网页版」标签,进入后自动定位到该会话关联的同一条官方对话并继续;首次进入(尚未关联)打开应用首页,创建的对话会自动记回该会话,后续重开回到同一条。 - **登录态持久**:在嵌入的官方网页里登录一次,`ds_session_id` 等 Cookie 会被重写为本机域并在浏览器 Cookie 中持久,之后自动复用。 ## 实现方式 方案:**透明反向代理**(`/deepseek` 前缀路由)。 | 职责 | 位置 | 说明 | | --- | --- | --- | | 反向代理 | `index.js` | 把 `/deepseek/*` 转发到 `https://chat.deepseek.com/*`,保留方法/头部/流式 body | | CSP 改写 | `index.js` | 把响应的 `frame-ancestors 'none'` → `frame-ancestors 'self'`,允许本机 iframe 渲染 | | Cookie 持久 | `index.js` | 把官方 `Set-Cookie`(`ds_session_id` 等)重写为本机域(去 domain、本地失效掉 Secure、path 限定 `/deepseek/`),浏览器 Cookie 持久复用 | | 会话映射 | `index.js` | 维护「DSH 会话 ↔ `chat_session_id`」映射,存到 `~/.dsh/dsh-deepseek-webchat/state.json` | | Bridge 注入 | `index.js` | 在 HTML 文档中注入 `