资讯动态

用Page Assist给本地DeepSeek配一个Web UI:部署调参与避坑指南

发布时间:2026/10/20 5:04:39 来源:尧图企业网站定制
简介这款名为Page Assist的浏览器插件面向Chrome与Firefox内置Deepseek模型可在侧边栏直接调用本地大模型无需外部服务兼顾数据隐私与交互效率。资源包共131个文件约11.97MB以JavaScript脚本、JSON配置、字体资源、HTML界面为主并附带WASM与GZ等模型运行文件其中JS负责交互逻辑JSON记录配置参数TTF/WOFF字体用于界面美化WASM辅助模型推理目录结构清晰便于二次开发。Chrome版本已实测通过Deepseek R1验证运行稳定Firefox版本尚未测试适合想抢先体验本地AI网页助手的用户。该资源不单是可安装的插件更是一个完整的浏览器扩展开发样例包含侧边栏、选项页、后台脚本、内容脚本、本地化资源等多类模块能帮助理解AI模型与前端应用的集成方式。目前已有9764人学习下载对本地AI部署或浏览器扩展开发感兴趣的读者可借此快速上手。1. Page Assist给本地 DeepSeek 补上的那块 Web UI把 DeepSeek 从 Ollama 拉下来之后你面对的通常是一行终端能提问能看流式输出但没法像网页版那样整理对话、读页面、开着侧栏随时问。Page Assist 这个本地 AI 模型的 Web UI解决的正是最后这一步。它跑在浏览器里直连本地模型服务把 DeepSeek 变成跟页面并排的对话窗还能把当前网页内容直接丢给模型做总结。适合自己搭私有化模型、又不想把数据交出去的开发者想留着终端但缺界面的人也能用它过渡。下面按一条能复现的路径讲先选型再部署再调参最后说事故。2. 为什么用 Page Assist 而不是桌面客户端它解决的是读页面这个动作2.1 网页版 AI 助手和桌面客户端的本质区别我最早接触的本地 AI 界面是那种独立窗口的桌面 AI 聊天客户端装好、配地址、开一个新窗口聊天。这种客户端的问题在于它跟你正在读的东西之间是割裂的。你要总结一篇文档得把文字复制出来再粘贴进去你要检索一句报错得来回切窗口。Page Assist 不一样它是一个挂在浏览器里的 AI 助手。页面右侧拉出侧边栏就是 DeepSeek 的对话窗口再把当前标签页的正文提取出来发过去模型拿到的就是你眼前这份资料。这里的关键不是图标好不好看而是模型的工作记忆和你正在看的内容有没有被放在同一屏。技术上Page Assist 走的是本地 HTTP 接口。它在设置里拿到模型服务的地址和模型名然后通过标准的 chat 接口跟本地模型通信。所有请求都停留在本机或内网不会把网页全文上传到某个云端服务。这是很多团队选它的理由模型私有化页面内容也私有化。桌面客户端不是做不到这一点而是浏览器的形态天生跟读网页这个场景耦合得更紧密。你让一个独立窗口去感知浏览器当前页面中间还得靠插件搭桥Page Assist 自己就住在浏览器里省掉了这座桥。流程上还有一个被忽视的好处打开侧边栏这个动作只消耗一个快捷键或一次点击。人在读文档时的注意力是连续的切走再切回会打断状态。用独立窗口你得先找到窗口再对齐上下文用侧边栏你只是把视野往右挪了一点主文档还挂在左边。对一天要读十几份长材料的人来说这点交互成本省下来是能感知的。所以我跟人聊这个选型时最常说一句如果你 80% 的时间都泡在浏览器里就用浏览器里的 UI如果你要的是一个独立的写作或管理工具桌面客户端更合适。Page Assist 的价值不在于替代谁而在于把读页面问模型看回复放在同一条链路里。2.2 请帮我看当前页面到底做了什么Page Assist 有一个经常被忽略的功能把当前标签页的正文交给模型。你以为它只是截个图实际上它会把页面主区域的文本抓取出来转成接近 Markdown 的格式再拼到 prompt 里发送。这个操作对本地 DeepSeek 很友好因为蒸馏过的模型读纯文本比读一堆 HTML 标签稳定得多。传过去的 token 量受上下文窗口约束所以它默认会做一次裁剪通常只保留可见区域和主要文本节点丢掉导航、脚本、广告位这些噪音。这个功能的典型用法是打开一篇长文档点侧边栏里的页面读取按钮然后输入用三句话总结这篇文章的结论。模型会根据页面内容回答而不是拿自己的通用知识去猜。它把 DeepSeek 从什么都知道一点变成了知道你眼前正在看什么。代价是 token 占用变大如果页面篇幅超过上下文窗口就得靠 Page Assist 截断或者你自己选中关键段落再发送。我这里说一个操作习惯我会先选中页面上真正相关的部分再点从选区读取这样比整页抓取更省上下文回答质量也更高。这里有个容易踩偏的细节页面读取依赖浏览器扩展的权限。安装时如果只给了在当前页面运行而没给读取网页内容的权限这个按钮点了没反应界面上也不会有明显报错。我习惯装完扩展先去权限设置里看一眼把读取标签页这一类权限打开再试用。权限少一点功能就是黑的这不是模型的问题是浏览器把你挡住了。2.3 什么样的工作流适合上 Page Assist不要因为它叫 Web UI 就无脑装。按我自己的经验适合的人分三类。第一类是文档密集型使用者每天要看大量技术长文问模型这段报错什么意思这套配置为什么这样写。第二类是内网私有化使用者模型必须跑在自己机器或内网里页面内容不能出网。第三类是模型调参期的人同一个模型要反复试系统提示词、试上下文长度侧边栏比终端更容易观察输出差异。不适合的也有。你如果重度依赖语音输入、需要模型记住多天前聊过什么、或者要把聊天记录导出成结构化数据库那桌面端或服务端方案更顺手。Page Assist 本质上是让本地模型随叫随到的界面不是知识库也不是项目管理工具。它的页面读取是一次性的上下文注入不是长期记忆换一个页面它就把上一个页面忘了。这个定位想清楚后面调参才不会期望错位。团队场景里如果多个人要共用一台机器上的模型服务Page Assist 也只是一个前端更重的模型调度和权限管理仍要在后端解决。3. 本地跑通 DeepSeek Page Assist三组最小命令与一个必改的跨域设置3.1 先把模型服务端跑起来用命令行拉取 DeepSeek 蒸馏版Page Assist 是一个界面底下必须有一个跑模型的 HTTP 服务。最常见的方案是用 Ollama 拉取 DeepSeek 的蒸馏版本地跑。先确认 Ollama 装好然后在终端执行# 拉取 DeepSeek R1 蒸馏版模型7B 这个量级兼顾效果和内存 ollama pull deepseek-r1:7b # 启动服务并监听本机 11434 端口 ollama serve # 换一个终端确认模型标签已就绪 ollama list这段命令的逻辑很直接pull把模型文件下载到本地目录serve起一个常驻的 HTTP 服务list用来确认模型标签已经存在。如果机器内存只有 8GB我一般会换成deepseek-r1:1.5b等后面讲到参数量对内存的影响再展开。ollama serve默认监听 11434Page Assist 默认也填这个地址所以本地跑通通常不需要额外改端口。要强调一个容易忽略的点ollama serve和ollama run是两回事。run是带着模型在终端里对话serve才是把模型服务敞开给其他程序调用。Page Assist 需要的是serve。如果你之前是开着run的窗口那界面里永远连不上。除此之外机器配置直接决定体验。7B 模型内存建议 8GB 起步14B 建议 16GB 以上32B 基本要 32GB 且磁盘跟得上。这些数字不是官方硬性指标是我在纯 CPU 机器上跑出来的底线有独立显卡可以把内存压力降一截。如果机器明显吃力输出会变成打字机一个字一个字往外蹦那是正常的硬件瓶颈不是模型坏了。3.2 安装 Page Assist浏览器扩展离线包和 Docker 自建Page Assist 最常见的形态是浏览器扩展安装在 Chromium 内核浏览器里。如果你在内网或离线环境就从项目的发布页下载离线安装包然后在扩展管理页打开开发者模式选择加载已解压的扩展程序。这里的关键校验点是看安装包的数字签名或哈希值来历不明的包不要碰。装好后浏览器工具栏会出现一个图标点击就能在右侧拉出 AI 助手侧边栏。另一种常见做法是跑 Docker 自建服务适合多人共用一台机器的场景。命令结构类似这样# 把 Page Assist 服务跑在 3000 端口界面数据挂到本地卷 docker run -d \ --name page-assist \ -p 3000:3000 \ -v page-assist-data:/app/data \ 镜像地址这里的-p 3000:3000是把容器内的 Web 服务映射到宿主机 3000 端口-v是把界面配置和聊天记录落到数据卷里避免容器重建之后什么都没了。用 Docker 版时浏览器访问http://localhost:3000就是一个完整的 AI 助手网页。它跟浏览器扩展版各有利弊扩展版和当前页面贴得更近页面读取更顺Docker 版适合团队统一维护也不依赖某个特定浏览器还能放在内网服务器上让其他人通过内部地址访问。我的建议是个人直接用扩展版团队场景再上 Docker两条路别混着用。3.3 告诉 Page Assist 模型服务在哪接口地址、模型名和 CORS装完界面第一步是配置连接。在 Page Assist 设置里找到模型服务或Ollama 设置填模型的 API 地址。默认就是http://localhost:11434模型名填deepseek-r1:7b。保存后界面上应该能列出该服务已有的模型这是个非常好用的连通性验证。如果列表拉不出来最常见的拦路虎是 CORS 跨域限制。浏览器里的脚本直接请求http://localhost:11434Ollama 默认的跨域白名单不一定包含浏览器扩展页面的来源。解决办法是在启动 Ollama 前设置环境变量# 放行来自浏览器页面的跨域请求星号表示所有来源 OLLAMA_ORIGINS* ollama serve注意这个设置的含义它对所有来源都开放了本地模型服务内网环境问题不大但如果这台机器的端口暴露到公网建议把星号换成具体的页面来源减少被任意网页调用模型算力的风险。很多看起来是Page Assist 连不上的问题根子都在这一条。我排查时会先在浏览器地址栏直接访问http://localhost:11434/api/tags如果这个地址能返回模型列表说明服务本身活着接下来就是跨域或者地址写错的问题。地址、模型名、跨域这三样配齐界面十分钟内就能跑起来。4. DeepSeek 在 Page Assist 里的必调参数别拿默认值直接开聊4.1 选对模型变体1.5b、7b、14b 怎么取舍才不卡Page Assist 里真正决定体验的不是界面而是模型服务端提供的模型标签。DeepSeek 蒸馏版在 Ollama 上有多个尺寸最常见的三个是 1.5b、7b、14b。尺寸差别直接反映在响应质量和资源占用上。我做一个参数对比供你决策模型标签内存建议响应速度适合场景deepseek-r1:1.5b4GB 左右起步快日常问答、页面摘要、低配机器deepseek-r1:7b8GB 左右起步中等代码解释、长文分析、主力对话deepseek-r1:14b16GB 左右起步慢一档需要更强推理、能接受等待这里的内存建议是量化后的粗略值不同量化精度会上下浮动。1.5b 跑在纯 CPU 上也能做到一两秒出字7b 在 CPU 上会开始有明显等待14b 基本建议有独立显卡或大内存。我的做法是在 Page Assist 里同时保留 1.5b 和 7b 两个模型因为界面支持多模型切换快问和深思是两种完全不同的需求。选型错的表观不是报错而是速度慢到你想放弃整套方案。换了小尺寸之后你通常会愿意继续用下去。还有一个容易忽略的选型点模型标签带不带推理后缀输出风格差别很大。带r1的系列会先输出一段思考过程再给最终答案。这个特性在本地模型上体验不错但它会多占输出 token也会让回复显得长。如果你要的是简洁结论可以在 Page Assist 的回复设置里关掉思考链展示或者换一个不带r1的 DeepSeek 标签。两种风格我都跑过实际写代码时带思考链的版本更稳日常闲聊则相反。4.2 上下文窗口num_ctx和输出长度越聊越短的问题从哪来很多人第一次用 Page Assist 会觉得奇怪为什么多聊几句模型就开始忘事这通常不是模型质量问题而是上下文窗口默认太小。Ollama 在启动时不显式指定上下文长度的话默认往往只有 2048。这个长度对多轮对话来说根本不够每轮对话历史都要占 token很快窗口就满了。Page Assist 会把超出的部分截掉模型眼前只剩最近几句话自然显得失忆。调整方法有两条路。一条是在模型层创建一个固定参数的标签适合你确定某个模型就要长期用某个上下文长度# 用 Modelfile 给 deepseek-r1:7b 设置默认上下文长度 cat Modelfile EOF FROM deepseek-r1:7b PARAMETER num_ctx 8192 EOF # 生成新标签Page Assist 里直接选这个新标签 ollama create deepseek-r1-ctx -f ModelfileFROM指定基础模型PARAMETER num_ctx设置上下文窗口为 8192create生成一个名叫deepseek-r1-ctx的新标签。之后在 Page Assist 的模型名里填这个新标签每次加载都会带上 8192 的上下文设置。另一条路是在 Page Assist 的模型设置里直接改上下文长度。我更推荐后者调参阶段用因为它只影响当前会话不用重新生成模型标签。上下文每翻一倍KV cache 占用的内存就多一块几百 MB 的浮动很正常别为了一条长文把机器直接跑爆。输出长度同样值得查一下。本地模型默认的生成上限偏保守如果你问给我写一个分步骤的完整方案它可能正写到一半就停下。Page Assist 回复设置里的输出长度上限我一般放到 2048 或更高。这两个参数是字面意义上的必调不改一定会遇到改完之后模型像换了一个人。验证方式很简单开个新对话让它写一段超过一千字的代码或方案看它能不能一口气写完。4.3 系统提示词和固定角色本地模型吃这一套Page Assist 支持设置默认系统提示词相当于每次开新对话都自动带上角色设定。这个功能在终端里也有但在 Web UI 里能按模型分别配置切换更直观。给 DeepSeek 这样的本地蒸馏模型写提示词要少绕弯子多用结构化的指令。我常用的模板是你是部署在本机的 AI 助手。回答保持简洁先给结论再给理由。 如果问题涉及代码给出可直接运行的代码块并说明关键参数。 遇到你不确定的内容直接说不知道不要编造。这个模板为什么有效因为蒸馏模型的指令遵循能力比商用大模型弱它需要你把输出格式和边界行为写清楚。只写你是好助手基本等于白写。我见过有人把系统提示词写成一篇小作文结果模型把注意力全放在人设上回答反而空。提示词的目标是约束行为不是表演角色这点在本地模型上尤其明显。在 Page Assist 里你可以把系统提示词挂到某个模型标签下切到 1.5b 用简版提示词、切到 14b 用深度提示词两个模型各司其职。保存后新会话生效已经开始的会话不会刷新提示词这个细节常让人误以为改了没效果其实是会话状态在作怪。5. Page Assist 常见问题排查黑屏、连不上、上下文丢失的四类高频事故5.1 打开侧边栏一片空白或黑屏先查扩展权限再怀疑版本现象点击浏览器工具栏图标侧边栏能拉出来但页面是白的或者只有顶部 logo聊天区渲染不出来。原因最常见的是浏览器扩展权限不足尤其是跟页面读取相关的 API 被浏览器拦截其次是离线安装的扩展版本跟浏览器内核版本不兼容。解决先去扩展管理页确认 Page Assist 拥有读取浏览数据权限然后重新加载一次扩展如果还是黑屏把扩展卸载用最新版安装包重装。不要第一时间怀疑模型服务黑屏问题通常跟后端无关。辅助判断的办法是打开浏览器开发者工具的控制台看有没有红色报错。如果是 JS 层面的渲染异常日志里会有明确堆栈如果是权限不足往往只给一句没有权限的提示。这两个方向分清楚排查时间能省一半。5.2 一直转圈提示连接失败浏览器先访问 API 一刀切定位现象Page Assist 界面上模型列表为空发消息一直停留在连接中过一会儿显示服务不可达。原因模型服务没起来、端口被占用、地址填错或者 CORS 把请求拦了这几种情况的表面症状几乎一样。解决按顺序排除。第一步在浏览器新开标签页访问http://localhost:11434/api/tags能返回 JSON 就说明服务活着第二步检查 Page Assist 设置里的地址是不是这个第三步确认 Ollama 启动时带上了OLLAMA_ORIGINS。三步走完绝大部分连接失败都能定位到具体层。我习惯把这几步做成一张小卡片贴在工位因为同类问题真的会反复出现。端口冲突时换端口不是不行但要记得同步改 Page Assist 设置两边不一致就会变成下一个事故。5.3 上下文越聊越短模型开始失忆别让它自己背锅现象开头几轮回答质量还行聊到三四轮后模型开始答非所问甚至说出与前面设定矛盾的话。原因默认上下文太小对话历史超出窗口被截断。Page Assist 会在请求里带上它自己的上下文设置Ollama 也有一套模型默认值任何一处数值偏小都会让历史被提前丢掉。解决把 Page Assist 的上下文长度调到 8192 以上同时用ollama show看一眼模型默认参数确认没有在模型层写死一个更小的值。调整后新开会话验证旧会话仍然采用旧参数。这里有个血泪经验光改界面设置不一定够如果模型是用 Modelfile 创建的num_ctx可能已经固定在里面界面请求不一定每次都能覆盖。所以排查时两个地方都要看用命令确认实际生效值别靠猜。5.4 发送消息没反应但日志一切正常模型名和提示词在捣鬼现象日志显示请求已经发出模型服务也返回了 200但界面上一个字都没新增。原因模型名填错了请求打到了默认模型而不是 DeepSeek或者系统提示词里含有导致生成被终止的内容极端情况是被本地的内容过滤规则拦下。解决在 Page Assist 设置里确认模型名跟ollama list的输出完全一致包括冒号和标签后缀。然后清空系统提示词发一条简单消息排除提示词干扰。如果恢复再一步一步把提示词加回来找到触发问题的片段。这类问题隐蔽在看起来通了但没通的状态里。我的排查顺序永远是先空提示词、再填完整提示词先把责任边界画清楚。不要在同一个黑环境里同时改三个变量出了问题你根本不知道是哪一步改坏的。6. 让 Page Assist 成为私人助手的进阶习惯多模型切换、页面上下文注入和验证闭环6.1 把多模型切换做成每天的固定动作Page Assist 支持在同一个界面里配置多个模型服务端和多个模型标签。我习惯在设置里加两个模型1.5b 留给临时问答比如这句话什么意思这个函数的参数怎么读7b 留给需要推理的长任务比如代码走读、方案对比。切换只是下拉框里点一下但要想清楚什么时候用哪个这个决策本身才值钱。临时问答用大模型是浪费深度任务用小模型是凑合两个模型摆在一起时你会被迫做更合理的分工。6.2 用一条 curl 建立验证闭环界面是人看的验证要走接口。每次改完配置我会先跑一条命令确认服务端状态# 检查模型服务是否就绪 curl http://localhost:11434/api/tags # 用一条最小对话验证生成链路是否通 curl http://localhost:11434/api/chat \ -H Content-Type: application/json \ -d {model:deepseek-r1:7b,messages:[{role:user,content:说一句话}]}验证闭环的价值在于把界面故障和模型故障分开。页面崩了看界面日志模型不回答看接口返回两件事不互相掩盖。我会把这条 curl 存成一个脚本改任何参数后先跑一遍再回界面操作。省下来的时间很可观也能避免在界面上反复试错。最后说一个我自己栽过的跟头当初为了界面好看装了一堆插件、调了一堆花哨参数结果连接没跑通浪费了整个下午。后来我学会先跑通接口、再谈界面。本地模型这套组合真正有生产力的状态永远是服务端稳、参数明确、界面简单。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑