Perplexity Token用量查询指南:浏览器控制台实时监控教程
想要精确追踪你在Perplexity上每次对话消耗的Token数量吗?虽然平台界面未直接提供此数据,但所有用量信息都潜藏在网络请求中。通过几种技术方法,你可以轻松提取这些关键指标。以下方案按实现复杂度排序,从即时手动查看到后台自动监控,你可根据自身技术偏好进行选择。
一、启用浏览器开发者工具并定位API响应
最基础的方法是直接审查浏览器与服务器之间的原始通信数据。Perplexity前端会调用 /chat/completions 接口,服务器返回的响应体中的 usage 对象,就包含了提示词、生成内容及总计的Token消耗。
操作流程如下:
1. 在Chrome或Edge浏览器中访问Perplexity网页。
2. 按下 F12 键,或右键点击页面选择“检查”,启动开发者工具。
3. 切换到“Network”(网络)面板。在筛选栏输入 completions 以过滤请求,并勾选“Preserve log”(保留日志)确保记录不被清除。
4. 返回页面,在输入框提出一个问题并等待AI生成回复。
5. 此时网络列表中会出现一个类型为 fetch/XHR、名称包含 completions 的条目。点击它,在详情面板中选择“Response”(响应)标签页。
6. 在响应体中,定位类似 "usage":{ 的JSON结构,所需Token数据即存储于此。
二、解析响应体中的Token字段
成功定位响应体后,下一步是解读其中的数据。响应通常为标准JSON格式,usage 字段结构固定。解析时需注意两个技术细节。
首先,检查响应头信息。若 Content-Encoding 值为 identity,数据为明文可直接读取。若显示 gzip 或 br,则表示数据经过压缩,但现代浏览器通常会自动解压并显示可读内容。
随后,在Response文本中搜索三个核心字段:"prompt_tokens"、"completion_tokens" 和 "total_tokens"。其后的数值分别对应提问消耗、回答消耗及Token总用量。
最后进行数据验证:将前两项数值相加,核对总和是否与 total_tokens 一致,以确保数据读取准确无误。
三、使用Console执行自动提取脚本
若频繁手动查看网络面板效率过低,可通过在浏览器控制台执行脚本实现自动化提取。此方法适合需要持续监控用量数据的用户。
1. 在开发者工具中,切换至“Console”(控制台)标签页。
2. 复制并粘贴以下JavaScript代码,按回车执行:
const reqs = performance.getEntriesByType("resource").filter(r => r.name.includes("completions")); if (reqs.length > 0) { const lastReq = reqs[reqs.length - 1]; fetch(lastReq.name).then(r => r.json()).then(j => console.log("Token用量:", j.usage)); } else { console.log("未捕获到/completions请求,请先发起一次查询"); }
3. 脚本执行成功后,控制台将直接输出如 {prompt_tokens: 85, completion_tokens: 120, total_tokens: 205} 的结构化结果。
4. 若遇到 TypeError: Failed to fetch 类跨域错误,表明当前页面存在安全策略限制,脚本无法直接读取历史请求。此时仍需采用第一种手动查看方法。
四、安装Custom Ja vaScript插件实现持久化监控
对于追求无缝监控体验的用户,可借助浏览器扩展实现后台自动追踪。此方案能在每次使用Perplexity时自动记录Token消耗,无需手动介入。
1. 在Chrome网上应用店搜索并安装“Custom Ja vaScript for Websites 2”扩展程序。
2. 安装后点击扩展图标,进入其选项页面。
3. 点击“Add new script”添加新脚本。
4. 在“URL pattern”栏中输入 https://www.perplexity.ai/*,确保脚本仅在该域名下生效。
5. 在“Ja vaScript”代码框中,粘贴以下监控代码:
const originalFetch = window.fetch; window.fetch = function(...args) { return originalFetch.apply(this, args).then(response => { if (args[0].includes("/chat/completions")) { response.clone().json().then(data => { if (data.usage) { console.log("[Perplexity Token]", data.usage); } }); } return response; }); };
6. 保存设置并刷新Perplexity页面。此后,每次提问并获得回答后,开发者工具的控制台都会自动打印本次对话的Token用量详情。
五、通过Service Worker拦截并重写响应
这是最进阶且功能最强大的方案,适合具备开发经验的用户。Service Worker能拦截所有网络请求,允许你在数据抵达页面前进行处理,甚至可实现修改界面、添加悬浮提示窗等高级功能。
1. 打开Perplexity页面,启动开发者工具(F12)。
2. 切换至“Application”(应用)面板,在左侧导航中找到“Service Workers”项。检查当前页面是否已注册Service Worker(通常为 sw.js 文件)。
3. 为便于调试,可勾选右侧的“Update on reload”与“Bypass for network”选项。
4. 在“Sources”(源代码)面板中找到已注册的Service Worker文件。在其代码中定位监听 fetch 事件的部分,插入以下逻辑:
if (request.url.includes("/chat/completions") && request.method === "POST") { return fetch(request).then(response => { return response.clone().json().then(data => { if (data.usage) { self.postMessage({ type: "TOKEN_USAGE", payload: data.usage }); } return response; }); }); }
5. 最后,你需要在主页面JavaScript代码中添加 message 事件监听器,以接收Service Worker发送的Token数据,并设计展示方式(例如在页面角落创建实时浮窗显示)。
从手动审查网络请求,到编写自动化脚本,再到利用浏览器扩展或Service Worker进行深度集成,上述方法提供了不同层级的Token监控解决方案。你的选择应基于对操作便捷性的需求及自身的技术实施能力。
