可通过开发者工具网络面板捕获/chat/completions响应,从中提取usage对象的prompt_tokens、completion_tokens和total_tokens字段;或用console脚本、custom javascript插件、service worker等方式自动监控token消耗。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用Perplexity时希望实时掌握每次查询所消耗的Token数量,但官方界面未直接暴露原始token计数字段,则可通过浏览器开发者工具捕获网络请求中的响应载荷来提取该信息。以下是具体操作路径:
一、启用浏览器开发者工具并定位API响应
Perplexity前端通过向/chat/completions端点发送POST请求获取模型响应,响应体中包含未公开但实际存在的usage对象,内含prompt_tokens、completion_tokens和total_tokens字段。需手动触发请求并筛选对应数据包。
1、在Chrome或Edge浏览器中打开Perplexity网页(如https://www.perplexity.ai)。
2、按下F12或右键选择“检查”,切换至“Network”(网络)标签页。
3、在Filter栏输入completions,清空已有记录后点击“Preserve log”以持续捕获后续请求。
4、在Perplexity输入框中提交任意问题,等待响应完成。
5、在网络列表中找到类型为fetch/XHR且名称含completions的条目,点击进入详情页。
6、切换至“Response”面板,滚动查找"usage":{开头的JSON区块。
二、解析响应体中的Token字段
该响应体为标准JSON格式,其中usage字段结构固定,可直接读取数值。若响应被压缩或加密,则说明当前会话启用了服务端混淆策略,需配合其他方法验证。
1、确认响应头部Content-Encoding值为identity而非gzip或br。
2、在Response文本中搜索"prompt_tokens",其后紧邻的数字即为提示词消耗量。
3、同理定位"completion_tokens"与"total_tokens",三者单位均为整数token。
4、将三项数值复制至本地计算器,验证是否满足total_tokens = prompt_tokens + completion_tokens关系。
三、使用Console执行自动提取脚本
浏览器控制台支持运行JavaScript脚本,可编写简短代码自动遍历最近请求并输出token统计。该方法无需手动翻找响应体,适用于高频查询场景。
1、在开发者工具中切换至“Console”(控制台)标签页。
2、粘贴以下代码并回车执行:
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("<strong><font color='\"green\"'>Token用量:</font></strong>", j.usage)); } else { console.log("<strong><font color='\"green\"'>未捕获到/completions请求,请先发起一次查询</font></strong>"); }
3、若控制台输出Token用量:后跟{prompt_tokens: X, completion_tokens: Y, total_tokens: Z},则提取成功。
4、如报错TypeError: Failed to fetch,说明跨域限制触发,此时应改用Network面板人工提取。
四、安装Custom JavaScript插件实现持久化监控
部分浏览器支持注入自定义脚本,可在每次加载Perplexity页面时自动监听fetch请求并打印token数据,避免重复打开开发者工具。
1、安装浏览器扩展“Custom JavaScript for Websites 2”(Chrome Web Store提供)。
2、访问扩展选项页,点击“Add new script”。
3、在“URL pattern”栏填入https://www.perplexity.ai/*。
4、在“JavaScript”栏粘贴以下代码:
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("<strong><font color='\"green\"'>[Perplexity Token]</font></strong>", data.usage); } }); } return response; }); };
5、保存后刷新Perplexity页面,后续所有/chat/completions响应的usage字段将自动输出至控制台。
五、通过Service Worker拦截并重写响应
Service Worker具有更高权限,可劫持页面所有网络请求,在响应返回前注入token统计逻辑,甚至修改DOM显示悬浮提示。此方法对技术理解要求较高,但监控精度最高。
1、打开Perplexity页面,按F12进入开发者工具,切换至“Application”标签页。
2、展开左侧“Service Workers”,确认当前注册了活跃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、在主页面JS中监听message事件,接收并渲染TOKEN_USAGE消息内容至浮动层。










