新闻详情

新闻详情

首页 / 资讯中心 / 详情

【AI+编程】0基础用Cursor写一款浏览器页面总结插件:TaoToken统一Key接入GLM-4-Flash实战

发布时间:2026/10/2 17:02:49来源:尧图网络
【AI+编程】0基础用Cursor写一款浏览器页面总结插件:TaoToken统一Key接入GLM-4-Flash实战
1. 零基础用 Cursor 写浏览器总结插件为什么卡在 Key 和接口上很多人第一次听到「用 Cursor 写一个浏览器页面总结插件」脑子里冒出来的画面是打开编辑器敲一句话插件就自己长出来了。真上手才发现代码确实能生成但真正让人卡住的不是写代码而是插件怎么安全地拿到大模型返回的内容。浏览器插件运行在用户的浏览器里你的 API Key 一旦写进前端代码等于把家门钥匙贴在门上。这个矛盾才是零基础做 AI 插件时最该先想清楚的事。这篇要交付的东西很具体用 Cursor 从零生成一个能总结当前网页的 Chrome 插件插件悬浮在页面左下角点击按钮后调用 GLM-4-Flash 返回总结。同时把「Key 放哪、接口怎么填」这个问题用 TaoToken 统一 Key 的方式解决掉——你只需要一个 Base URL 和一个 Key就能在插件里调通 GLM-4-Flash后面想换别的模型改一个 Model ID 就行。适合谁看没写过浏览器插件、但用过 Cursor 或愿意装一个的人手里有网页总结需求、想自己搓个小工具的人以及被「前端不能放 Key」这个问题困扰过的人。整条路径我会拆成可复制的 manifest.json、content script、background 配置以及 TaoToken 的 Base URL 填写示例最后带你在浏览器里加载插件、点按钮、看返回结果。先说清楚一个前提浏览器插件直接调大模型接口Key 暴露在前端是绕不开的风险。本地自己玩没问题但如果你打算把插件发给别人用正确做法是让插件请求你自己的后端由后端去调模型。这篇为了让你先跑通链路会先用 TaoToken 的统一 Key 在插件里直连跑通之后再告诉你后端中转怎么改。这样你既能看到效果也知道生产环境该往哪走。Cursor 在这里的角色是「帮你把样板代码写出来」。浏览器插件的目录结构、manifest 版本差异、content script 和 background 的通信这些对新手来说全是记忆负担。你不需要背只需要会问。下面每一步我都会给出可以直接复制进 Cursor 对话的提示词以及生成后你要改哪几行。2. TaoToken 前置准备统一 Key 接入 GLM-4-Flash 的 Base URL 怎么填在写插件之前先把「模型入口」准备好。传统做法是去各家平台分别注册、分别拿 Key、分别记不同的接口地址插件里换模型就要改一堆常量。TaoToken 的思路是给你一个统一的入口Base URL 固定Key 固定模型用 Model ID 区分。这样插件代码里只需要维护三个变量换模型不动结构。你需要准备的东西只有两样一个 TaoToken 的 API Key以及记住它的 Base URL。官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 。注意 API 地址后面不加任何查询参数插件里填的就是这个根地址具体路径由 SDK 或请求体决定。拿 Key 的入口在控制台的 API Keys 页面地址是 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。进去之后新建一个 Key复制出来先存到本地一个临时文件里别直接贴进聊天窗口。这个 Key 就是你插件里要用的凭证。模型这边我们选 GLM-4-Flash它的 Model ID 就写glm-4-flash。TaoToken 兼容 OpenAI 风格的请求格式所以插件里发请求时body 结构和你平时调 OpenAI 接口是一样的model、messages、stream这几个字段。Base URL 填https://taotoken.net/api完整请求地址就是 Base URL 加上/v1/chat/completions。这一点很关键很多人填错就是把 Base URL 写成了带/v1的完整地址结果拼接后路径重复报 404。如果你不确定模型名怎么写可以先用模型对话页面验证一下。地址是 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 在里面选 GLM-4-Flash发一句「你好」能返回内容说明 Key 和模型都正常。这一步花不了一分钟但能帮你排除掉后面插件报错时「到底是 Key 错还是代码错」的干扰。关于安全这里再强调一次这个 Key 放进浏览器插件的前端代码里任何拿到插件包的人都能看到。所以它只适合你自己本地调试。如果你要发布插件正确路径是插件请求你自己的服务端服务端持有 Key 去调 TaoToken再把结果返回给插件。TaoToken 的接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面有服务端调用的示例后面第五节我会给出改造方向。3. 可复制配置manifest.json、content script 与 background 三件套现在打开 Cursor新建一个空文件夹比如叫page-summary-extension。用Command LWindows 是Ctrl L打开对话窗口把下面这句话发给它帮我生成一个 Chrome Manifest V3 浏览器插件功能是总结当前页面。插件在页面左下角显示一个悬浮按钮点击后读取当前页面正文调用 OpenAI 兼容接口返回总结结果显示在按钮上方的面板里。请给出完整目录结构和每个文件的代码。Cursor 会给你一份目录通常是manifest.json、content.js、background.js可能还有styles.css。下面我把关键文件按可直接复制的形式写出来你对照着改。先看manifest.json。Manifest V3 是现在 Chrome 要求的版本host_permissions里要放 TaoToken 的域名否则请求会被浏览器拦掉{ manifest_version: 3, name: 页面总结助手, version: 1.0.0, description: 点击按钮总结当前网页内容, permissions: [activeTab, scripting], host_permissions: [https://taotoken.net/*], background: { service_worker: background.js }, content_scripts: [ { matches: [all_urls], js: [content.js], css: [styles.css] } ], action: { default_title: 页面总结 } }这里host_permissions必须包含https://taotoken.net/*这是新手最容易漏的一步漏了就会在控制台看到跨域或权限相关的报错。content_scripts的matches用all_urls表示所有页面都注入悬浮按钮。接着是content.js它负责在页面里画按钮、抓正文、把内容发给 backgroundconst API_BASE https://taotoken.net/api; const MODEL_ID glm-4-flash; function createPanel() { const btn document.createElement(button); btn.id summary-btn; btn.textContent 总结本页; document.body.appendChild(btn); const panel document.createElement(div); panel.id summary-panel; panel.style.display none; document.body.appendChild(panel); btn.addEventListener(click, async () { panel.style.display block; panel.textContent 正在总结...; const text document.body.innerText.slice(0, 6000); chrome.runtime.sendMessage({ type: SUMMARIZE, text }, (res) { panel.textContent res res.content ? res.content : 总结失败; }); }); } createPanel();注意document.body.innerText.slice(0, 6000)这一行是防止页面太长把请求撑爆。GLM-4-Flash 的上下文够用但前端截断能省流量也更稳。最后是background.js它持有 Key 并发起请求。这里就是 TaoToken 统一 Key 的接入点const API_BASE https://taotoken.net/api; const API_KEY 你的_TaoToken_Key; const MODEL_ID glm-4-flash; chrome.runtime.onMessage.addListener((msg, sender, sendResponse) { if (msg.type ! SUMMARIZE) return; fetch(${API_BASE}/v1/chat/completions, { method: POST, headers: { Content-Type: application/json, Authorization: Bearer ${API_KEY} }, body: JSON.stringify({ model: MODEL_ID, messages: [ { role: system, content: 你是一个网页总结助手用中文输出三到五条要点。 }, { role: user, content: msg.text } ], stream: false }) }) .then((r) r.json()) .then((data) { const content data.choices?.[0]?.message?.content || ; sendResponse({ content }); }) .catch((err) sendResponse({ content: 请求出错 err.message })); return true; });三件套里Base URL、Key、Model ID 都集中在background.js顶部这就是 TaoToken 统一 Key 的好处换模型只改MODEL_ID换 Key 只改API_KEY接口地址不动。return true这行别删它保证异步sendResponse能正常回传删了 content script 会一直收到 undefined。4. 验证请求加载插件、点击按钮、看返回结果代码写完接下来是把它装进浏览器。打开 Chrome地址栏输入chrome://extensions右上角打开「开发者模式」点「加载已解压的扩展程序」选中你那个page-summary-extension文件夹。加载成功后扩展列表里会出现「页面总结助手」。然后随便打开一个内容比较多的网页比如一篇技术博客。页面左下角应该出现「总结本页」按钮。点一下按钮上方弹出面板先显示「正在总结...」几秒后变成几条中文要点。如果这一步成功了说明从插件到 TaoToken 再到 GLM-4-Flash 的整条链路是通的。如果没出按钮先看页面控制台有没有报错。常见的是content.js注入失败多半是matches写错或者页面本身是chrome://开头的受限页。受限页插件无法注入换个普通网页再试。如果按钮出来了但点完一直「正在总结...」打开扩展的 Service Worker 控制台看日志。在chrome://extensions里找到你的插件点「Service Worker」链接会弹出一个 DevTools 窗口。这里能看到background.js的请求日志。如果看到 401说明 Key 不对如果看到 404多半是 Base URL 拼接错了如果看到跨域检查host_permissions。想更直接地验证接口本身可以先用模型对话页面发一条消息确认 Key 和模型没问题再回来查插件代码。这样能把「接口问题」和「插件问题」分开排查效率高很多。实测下来最容易出问题的是 Base URL 的写法。记住background.js里API_BASE填https://taotoken.net/api请求时拼/v1/chat/completions。不要填成https://taotoken.net/api/v1再拼/v1/chat/completions那样路径就重复了。5. 本篇常见错排查401、404、reading choices 与 OAuth 报错插件跑不通时报错信息其实已经把答案写在脸上了只是新手不熟悉。下面按真实会遇到的几类错误逐个拆。401 Unauthorized。这是 Key 的问题。检查background.js里的API_KEY是不是复制完整有没有多余空格有没有把 Key 写成了别的平台的。TaoToken 的 Key 在控制台 API Keys 页面重新生成一个替换后刷新插件在chrome://extensions点刷新按钮再试。注意 Key 只在创建时显示一次没存就重新建。404 Not Found。这是路径问题。九成是把 Base URL 写成了带/v1的地址。正确写法是API_BASE https://taotoken.net/api请求时${API_BASE}/v1/chat/completions。如果你用的是某个 SDKSDK 内部可能已经帮你拼了/v1那就把 Base URL 填成https://taotoken.net/api不要再手动加。Cannot read properties of undefined (reading choices)。这个报错说明data.choices是 undefined也就是返回体结构和你预期的不一样。常见原因有两个一是请求根本没成功返回的是错误对象比如{ error: {...} }你却直接去读choices二是stream设成了true返回的是流式数据不是一次性 JSON。先在background.js里把stream设为false并在.then((data) ...)里先console.log(data)看真实返回再决定怎么取字段。local proxy failed / 连接被拒绝。这类报错通常出现在你本地起了代理工具或者系统代理设置干扰了请求。插件请求走的是浏览器网络栈如果系统代理指向了一个不可用的地址请求就会失败。检查系统网络设置关掉不必要的代理或者确认你的网络能正常访问https://taotoken.net。OAuth 相关报错。如果你在插件里用了某些需要 OAuth 的第三方服务或者误把 TaoToken 的 Key 当成了 OAuth token会看到 token 无效之类的提示。TaoToken 用的是 Bearer Key不是 OAuth 流程Authorization头写Bearer 你的Key即可不需要走授权跳转。排查顺序建议固定下来先看 Service Worker 控制台的请求状态码再看返回体最后才怀疑代码逻辑。状态码能直接区分是凭证问题、路径问题还是网络问题。把console.log加在fetch之后、解析之前是最省时间的做法。6. 从本地玩具到可发布插件Key 该放哪以及后续怎么走跑通之后你会面临一个选择这个插件是自己用还是发给别人用。自己用Key 放前端无所谓反正只有你能看到。发给别人就必须把 Key 挪到服务端。改造方式不复杂插件不再直接请求 TaoToken而是请求你自己的后端接口后端持有 Key 去调 TaoToken把总结结果返回给插件。这样插件里只有你后端的地址没有模型 Key。如果你打算长期做这类 AI 插件或者想把它接进更复杂的编码工作流可以了解一下 Coding Plan地址是 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。它适合需要稳定调用、长期跑 Agent 的场景比每次手动管 Key 省心。回到插件本身你现在手里已经有一个能跑的版本。接下来可以做的优化把document.body.innerText换成更精准的正文提取避免把导航栏和广告也喂给模型给面板加个关闭按钮把总结结果缓存起来避免重复点击重复请求。这些都可以继续用 Cursor 生成你只需要把需求描述清楚。最后留一个实用习惯每次改完background.js记得去chrome://extensions点一下插件的刷新按钮再刷新目标网页。插件代码不会热更新不刷新等于没改。这个坑我踩过不止一次明明改了代码却一直报旧错查半天才发现是没刷新。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

打卡信奥刷题(3603)用C++实现信奥题 P11670 [USACO25JAN] Cow Checkups S 2026/10/2 20:09:12

打卡信奥刷题(3603)用C++实现信奥题 P11670 [USACO25JAN] Cow Checkups S

P11670 [USACO25JAN] Cow Checkups S 题目描述 Farmer John 的 NNN(1≤N≤5⋅1051 \leq N \leq 5 \cdot 10^51≤N≤5⋅105)头奶牛站成一行,奶牛 111 在队伍的最前面,奶牛 NNN 在队伍的最后面。FJ 的奶牛也有许多不同的品种。他用从…

阅读更多 →
RL-07-无模型2-TD算法03:TD算法在强化学习中的定位【当前估计⇽当前估计+α(TD Target−当前估计)】【TD Error =TD Target−当前估计】 2026/10/2 20:09:12

RL-07-无模型2-TD算法03:TD算法在强化学习中的定位【当前估计⇽当前估计+α(TD Target−当前估计)】【TD Error =TD Target−当前估计】

1. TD算法在强化学习中的核心定位 1.1 TD到底是什么 TD,全称 Temporal-Difference Learning,时序差分学习。 理解 TD 最重要的一点是: TD并不是一个与DQN、PPO、SAC完全同层级的单一现代强化学习算法,而是一类利用“当前估计 + 下一时刻估计”构造学习目标的价值学习方法…

阅读更多 →
FFDNet PyTorch实战:从环境配置到训练推理与ONNX导出全流程 2026/10/2 20:09:12

FFDNet PyTorch实战:从环境配置到训练推理与ONNX导出全流程

简介:FFDNet-pytorch 是一份面向图像去噪任务的 PyTorch 实现资源,适合具备一定深度学习基础、希望快速复现或集成 FFDNet 模型的研究者与开发者。它针对传统去噪方法计算复杂、对噪声类型敏感等问题,提供端到端可训练的网络结构与配套数据&a…

阅读更多 →
基于SpringBoot与Hadoop的企业云盘实战:存储选型、秒传分片与避坑指南 2026/10/2 20:09:12

基于SpringBoot与Hadoop的企业云盘实战:存储选型、秒传分片与避坑指南

简介:这是一套面向Java后端与大数据方向学习者的企业云盘项目源码,基于SpringBoot与Hadoop技术栈构建,适合希望实践微服务架构与分布式存储结合的中高级开发者参考。项目围绕用户管理、文件上传下载、共享权限、版本控制与多租户隔离等核心功…

阅读更多 →
如何提交你的第一个AI技能:agent-toolkit贡献者完全指南 2026/10/2 20:09:12

如何提交你的第一个AI技能:agent-toolkit贡献者完全指南

如何提交你的第一个AI技能:agent-toolkit贡献者完全指南 【免费下载链接】agent-toolkit A curated collection of skills for AI coding agents. Skills are packaged instructions and scripts that extend agent capabilities across development, documentation…

阅读更多 →
Win11自带录屏全攻略:快捷键、设置与常见问题一次说清 2026/10/2 20:09:05

Win11自带录屏全攻略:快捷键、设置与常见问题一次说清

Win11 自带录屏这事,很多朋友要么完全不知道,要么装了 Ocam、ShareX、Bandicam 一堆第三方工具,其实系统里那套 Xbox Game Bar 在绝大多数场景下完全够用,而且按几个快捷键就能搞定,连安装都不用。今天这篇就把 Win11 …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉