<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>玉米糊的个人笔记</title><description>个人技术笔记与折腾心得</description><link>https://www.33163316.xyz/</link><language>zh_CN</language><item><title>f1tr：给 F1 25 配一个会说话的 AI 比赛工程师</title><link>https://www.33163316.xyz/posts/f1tr-intro/</link><guid isPermaLink="true">https://www.33163316.xyz/posts/f1tr-intro/</guid><description>介绍 kemi-20/f1tr——一个 Windows 桌面应用：监听 F1 25 UDP 遥测，让 AI 扮演比赛工程师实时给出策略建议，并通过 MiMo TTS 语音播报，支持语音输入、游戏截图与全局热键。</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;f1tr：给 F1 25 配一个会说话的 AI 比赛工程师&lt;/h1&gt;
&lt;p&gt;继续记录我的开源项目。这次是 &lt;a href=&quot;https://github.com/kemi-20/f1tr&quot;&gt;kemi-20/f1tr&lt;/a&gt;——一个给 F1 25 玩家准备的 Windows 桌面应用：监听游戏 UDP 遥测数据，让 AI 扮演比赛工程师，实时给出策略建议，并用 MiMo TTS 把建议用语音播报出来。&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;kemi-20/f1tr&quot;}&lt;/p&gt;
&lt;h2&gt;它能做什么&lt;/h2&gt;
&lt;p&gt;一边玩 F1 25，应用会：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;接收全部遥测数据&lt;/strong&gt;：速度 / 档位 / 转速、四轮磨损与温度（表温 / 内温 / 刹车温）、车身损伤、燃料、ERS、天气、旗语，以及所有对手的位置 / 圈速 / 差距 / 轮胎 / 进站 / 罚时&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键时刻主动播报&lt;/strong&gt;：轮胎磨损越界、被后车追近、进站窗口打开、安全车 / 虚拟安全车、变天、碰撞、低油等，工程师会用无线电口吻给出建议&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语音播报&lt;/strong&gt;：通过 MiMo TTS 把建议转成语音，支持中文 / English / 中英混合三种模式，带优先级抢断队列&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语音输入&lt;/strong&gt;：按热键或点 Speak 按钮说话，录音转文字后发给 AI 工程师（MiMo ASR）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;音频直传&lt;/strong&gt;：如果默认模型支持音频输入，录音直接发给模型（跳过 ASR 转写）；不支持时走 MiMo ASR 转文字&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;游戏截图&lt;/strong&gt;：AI 可主动调用截图工具查看游戏画面，支持图片输入的模型直接看图，不支持的自动用 MiMo 视觉模型描述后转达&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全局热键&lt;/strong&gt;：系统级热键，F1 25 全屏运行时也能触发语音输入&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UDP 断线保护&lt;/strong&gt;：游戏断连超 2 分钟自动暂停 AI 工程师，恢复后自动重启&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;完整驾驶舱界面&lt;/strong&gt;：精确赛道俯视图（世界坐标校准）、驾驶 HUD（换挡灯 / ERS / DRS）、四轮卡片（剩余寿命 / 温度 / 刹车）、损伤面板、对手榜、工程师对话流&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;对手榜双模式&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;正赛&lt;/strong&gt;：显示与你的时间差、四胎平均磨损、进站次数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;练习赛 / 排位赛&lt;/strong&gt;：显示每个人的最佳圈速和与你的圈数差（三位小数，精确到赛道进度）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;智能上下文&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;正赛才提醒 DRS 攻防，练习赛 / 排位赛不讲 DRS&lt;/li&gt;
&lt;li&gt;雨天 / 湿地自动标记 DRS 禁用，告知 AI 不可开 DRS&lt;/li&gt;
&lt;li&gt;人工 Ask 强制播报；自动消息由 AI 判断紧急程度决定是否播报&lt;/li&gt;
&lt;li&gt;工程师风格可选 GP / Bono / Bozzi / Adami 四种真实无线电语气&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;快速开始&lt;/h2&gt;
&lt;h3&gt;1. 下载&lt;/h3&gt;
&lt;p&gt;去 &lt;a href=&quot;https://github.com/kemi-20/f1tr/releases&quot;&gt;Releases&lt;/a&gt; 页面下载最新版：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;F1 Race Engineer Setup x.x.x.exe&lt;/code&gt; — 安装版（推荐）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F1 Race Engineer-x.x.x-portable.exe&lt;/code&gt; — 绿色版，解压即用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;:::note
首次运行 Windows SmartScreen 可能提示「未知发布者」（因为没有代码签名），点「更多信息」→「仍要运行」即可。
:::&lt;/p&gt;
&lt;h3&gt;2. 配置 AI 与语音密钥&lt;/h3&gt;
&lt;p&gt;在应用同目录创建 &lt;code&gt;.env&lt;/code&gt; 文件，填入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# AI（OpenAI 兼容端点，支持 DeepSeek / OpenAI / 本地 Ollama 等）
AI_API_BASE_URL=api.deepseek.com
AI_API_KEY=sk-你的密钥
AI_MODEL=deepseek-v4-flash

# MiMo TTS &amp;amp; ASR（语音合成 + 语音识别 + 视觉描述共用）
MIMO_API_BASE_URL=api.xiaomimimo.com
MIMO_API_KEY=sk-你的mimo密钥
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;.env&lt;/code&gt; 不会上传、不含在程序里，纯本地读取。也可启动后在右上角设置面板里临时改连接。&lt;/p&gt;
&lt;h3&gt;3. 在 F1 25 中开启遥测&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Options -&amp;gt; Settings -&amp;gt; UDP Telemetry Settings&lt;/code&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;端口 &lt;strong&gt;20777&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;速率 20 / 30 / 60 Hz（推荐 30）&lt;/li&gt;
&lt;li&gt;Telemetry Format：2023 / 2024 / 2025 均可（应用会自动识别）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. 启动&lt;/h3&gt;
&lt;p&gt;双击 &quot;F1 Race Engineer&quot;。进入比赛后，工程师会在关键时刻自动播报；也可以在右下角工程师面板手动 &lt;strong&gt;Ask&lt;/strong&gt; 提问，或按 &lt;strong&gt;Speak&lt;/strong&gt; 按钮语音输入。&lt;/p&gt;
&lt;h2&gt;语音输入&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;点击右下角 &lt;strong&gt;Speak&lt;/strong&gt; 按钮开始录音，按钮变红，再点一次结束（30 秒超时自动停止）&lt;/li&gt;
&lt;li&gt;或按&lt;strong&gt;全局热键&lt;/strong&gt;（默认空格键，可在设置中更改），游戏全屏时也能触发&lt;/li&gt;
&lt;li&gt;录音编码为 MP3 格式，发送给 MiMo 语音识别（mimo-v2.5-asr）转为文字&lt;/li&gt;
&lt;li&gt;转写文字自动作为车手消息发给 AI 工程师，工程师回复会通过 TTS 播报&lt;/li&gt;
&lt;li&gt;热键仅在 UDP 连接中或断开不超过 2 分钟时生效&lt;/li&gt;
&lt;li&gt;如果默认模型支持音频输入（设置中开启），录音直接发给模型，跳过 ASR&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;设置面板（右上角齿轮）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AI / LLM&lt;/strong&gt;：连接地址、模型、温度（0-2）、最大回复 tokens、图片输入开关、音频输入开关、测试连接&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TTS - MiMo&lt;/strong&gt;：语音密钥状态 + 测试&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语音 - 语言&lt;/strong&gt;：中文 / English / 中英混合 + 嗓音选择 + 工程师风格（GP / Bono / Bozzi / Adami）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;遥测 - 触发&lt;/strong&gt;：端口、轮胎磨损阈值、防守距离、心跳间隔等&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;音频 - 主题&lt;/strong&gt;：音量、静音、高优先级抢断、停止播报、配色主题&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;快捷键&lt;/strong&gt;：语音输入热键配置（默认空格键，按任意键捕获）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;从源码构建&lt;/h2&gt;
&lt;p&gt;需要 Node.js 18+：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/kemi-20/f1tr.git
cd f1tr
npm install
npm run dev          # 开发模式（热重载）
npm run build:win    # 打包 Windows 安装器 + 绿色版（产物在 release/）
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;技术栈&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Electron + TypeScript&lt;/strong&gt;：主进程负责 UDP 解码 / LLM / TTS / ASR / 截图 / 全局热键，渲染进程负责 UI 与 Web Audio 播放&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;F1 25 UDP 解码&lt;/strong&gt;：支持 2025 与 2026 赛季包两种线缆格式，自动按包头分派&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;React + Tailwind&lt;/strong&gt;：深色赛车玻璃拟态界面&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OpenAI 兼容 LLM&lt;/strong&gt;：默认 DeepSeek（自动禁用 thinking 模式以降低延迟），支持 tool calling（截图工具）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MiMo TTS&lt;/strong&gt;：24000Hz 单声道 PCM16 流式播放，带优先级抢断队列&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MiMo ASR&lt;/strong&gt;：语音转文字（mimo-v2.5-asr），录音编码 MP3 128kbps&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MiMo Vision&lt;/strong&gt;：游戏截图描述（mimo-v2.5），为不支持图片输入的模型提供视觉&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lamejs&lt;/strong&gt;：浏览器端 MP3 编码&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Electron globalShortcut&lt;/strong&gt;：系统级热键，游戏全屏时也能响应&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;项目使用 MIT 许可，欢迎提 issue 和 PR。如果你也玩 F1 25，装上试试，听工程师在你耳边喊「Box Box Box」的感觉还挺上头的。&lt;/p&gt;
</content:encoded></item><item><title>opgo：把 Coding Plan 套餐共享给多人的轻量网关</title><link>https://www.33163316.xyz/posts/opgo-intro/</link><guid isPermaLink="true">https://www.33163316.xyz/posts/opgo-intro/</guid><description>介绍 kemi-20/opgo——一个把 Coding Plan 套餐共享给多人的轻量网关，支持按 token 精确计费、多用户额度管理、峰谷时计费与 Web 用量查询，并附 Ubuntu / Windows 完整安装教程。</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;opgo：把 Coding Plan 套餐共享给多人的轻量网关&lt;/h1&gt;
&lt;p&gt;这是本站的第一篇文章，介绍一下我最近写的一个小项目：&lt;a href=&quot;https://github.com/kemi-20/opgo&quot;&gt;kemi-20/opgo&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;kemi-20/opgo&quot;}&lt;/p&gt;
&lt;h2&gt;它是什么&lt;/h2&gt;
&lt;p&gt;opgo 是一个用 Go 编写的&lt;strong&gt;轻量共享网关&lt;/strong&gt;：把一份 Coding Plan 套餐共享给多人使用。成员请求被透明转发到上游，网关按模型单价与真实 token 用量计费（内部 8 位小数精度），额度按 &lt;strong&gt;5 小时 / 一周 / 31 天&lt;/strong&gt; 三个滚动窗口限制，并附带一个 Web 用量查询页。&lt;/p&gt;
&lt;p&gt;简单说，就是一家人 / 一个小团队合买一份套餐，opgo 负责：转发、计费、限流、记账、查账。&lt;/p&gt;
&lt;h2&gt;核心功能&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;透明反代&lt;/strong&gt;：只替换认证头，请求体原样转发，兼容 OpenAI / Anthropic 协议&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;按 token 精确计费&lt;/strong&gt;：模型单价写在 &lt;code&gt;config.jsonc&lt;/code&gt;（已预置 deepseek-v4-flash、deepseek-v4-pro、mimo-v2.5、gpt-5.6-luna、hy3 定价）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;每人独立额度&lt;/strong&gt;：每个用户（uuid）拥有 5 小时 / 一周 / 31 天滚动窗口，多 key 共享额度&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;峰谷时计费&lt;/strong&gt;：模型级 peak 配置，Peak 时段（UTC 01:00-04:00 与 06:00-10:00）自动按倍率加倍扣款，配置里只需填谷时价&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;总池保护&lt;/strong&gt;：以上游实时余量接口为准，套餐额度用尽即返回 429&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;流式请求照常计费&lt;/strong&gt;：自动注入 &lt;code&gt;include_usage&lt;/code&gt;，流式响应也能拿到真实用量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQLite 记录全部用量&lt;/strong&gt;，Web 查询页普通用户查自己、管理员看全部&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;密钥防泄露&lt;/strong&gt;：任何接口和前端都不返回任何 key，内置 &lt;code&gt;opgo -audit&lt;/code&gt; 自检&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;单文件静态二进制&lt;/strong&gt;，Windows / Linux 均可直接运行&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;安装教程&lt;/h2&gt;
&lt;h3&gt;Ubuntu / Debian（amd64）一键安装&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL https://raw.githubusercontent.com/kemi-20/opgo/main/install.sh | sudo bash
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;首次启动会自动生成 &lt;code&gt;/opt/opgo/config.jsonc&lt;/code&gt;（示例配置），编辑后重启服务：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl restart opgo
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Windows 本地运行&lt;/h3&gt;
&lt;p&gt;先安装 &lt;a href=&quot;https://go.dev/dl/&quot;&gt;Go&lt;/a&gt;（1.23.12 或更高），然后在项目目录下构建并运行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;go build -o opgo.exe .
.\opgo.exe
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;首次运行会在当前目录自动生成 &lt;code&gt;config.jsonc&lt;/code&gt;，修改后重启即可。&lt;/p&gt;
&lt;h2&gt;配置文件说明&lt;/h2&gt;
&lt;p&gt;配置文件名为 &lt;code&gt;config.jsonc&lt;/code&gt;（JSONC = JSON with Comments），程序会自动剥离注释再解析，所以&lt;strong&gt;行内 &lt;code&gt;//&lt;/code&gt; 注释可以放心写&lt;/strong&gt;；VSCode 打开时把语言模式选为 &lt;code&gt;JSONC&lt;/code&gt; 即可消除红色波浪线。也兼容旧版 &lt;code&gt;config.json&lt;/code&gt;：两者同时存在时优先读 &lt;code&gt;.jsonc&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;核心字段：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;字段&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;listen&lt;/td&gt;
&lt;td&gt;监听地址，默认 &lt;code&gt;:3003&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;upstream_base&lt;/td&gt;
&lt;td&gt;上游地址（必填）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;master_key&lt;/td&gt;
&lt;td&gt;母 key（必填）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;admin_password&lt;/td&gt;
&lt;td&gt;Web 管理员密码（必填）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;balance_url&lt;/td&gt;
&lt;td&gt;余量接口，留空用默认值&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;balance_interval_seconds&lt;/td&gt;
&lt;td&gt;余量同步间隔，默认 120&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;rate_limit_per_minute&lt;/td&gt;
&lt;td&gt;每用户每分钟限流，0 = 不限&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;limits_per_user&lt;/td&gt;
&lt;td&gt;每人的 5h / 1w / 1m 美元限额&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pricing&lt;/td&gt;
&lt;td&gt;模型单价（每百万 token）+ context_length + max_output_tokens + modality + transformation + tag&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;users&lt;/td&gt;
&lt;td&gt;uuid + 备注（可空）+ key 列表&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;一个最小示例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;listen&quot;: &quot;:3003&quot;,
  &quot;upstream_base&quot;: &quot;https://api.example.com&quot;,
  &quot;master_key&quot;: &quot;你的母key&quot;,
  &quot;admin_password&quot;: &quot;管理员密码&quot;,
  &quot;limits_per_user&quot;: {
    &quot;5h&quot;: 1.0,
    &quot;1w&quot;: 10.0,
    &quot;1m&quot;: 30.0
  },
  &quot;pricing&quot;: {
    &quot;deepseek-v4-flash&quot;: {
      &quot;input_per_million&quot;: 0.44,
      &quot;output_per_million&quot;: 1.32,
      &quot;cached_read_per_million&quot;: 0.014,
      &quot;cached_write_per_million&quot;: 0,
      &quot;context_length&quot;: 1000000,
      &quot;max_output_tokens&quot;: 384000
    }
  },
  &quot;users&quot;: [
    {
      &quot;uuid&quot;: &quot;user-1&quot;,
      &quot;remark&quot;: &quot;张三&quot;,
      &quot;keys&quot;: [&quot;用户key-1&quot;]
    }
  ]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;配置支持&lt;strong&gt;热更新&lt;/strong&gt;：程序后台每 1 秒轮询配置文件，修改保存后无需重启立即生效（仅 &lt;code&gt;listen&lt;/code&gt; 变更需要重启）。配置文件非法时自动保留旧配置并在日志中告警，不影响运行。&lt;/p&gt;
&lt;h2&gt;客户端接入&lt;/h2&gt;
&lt;p&gt;客户端把 baseURL 指向 &lt;code&gt;http://&amp;lt;主机IP&amp;gt;:3003/v1&lt;/code&gt; 即可：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OpenAI SDK / openai-compatible&lt;/strong&gt;：&lt;code&gt;baseURL: http://IP:3003/v1&lt;/code&gt;，自动请求 &lt;code&gt;/v1/chat/completions&lt;/code&gt;、&lt;code&gt;/v1/responses&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Anthropic SDK&lt;/strong&gt;：&lt;code&gt;baseURL: http://IP:3003/v1&lt;/code&gt;，自动请求 &lt;code&gt;/v1/messages&lt;/code&gt;（x-api-key 填你的用户 key）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型列表&lt;/strong&gt;：&lt;code&gt;GET http://IP:3003/v1/models&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;套餐余量&lt;/strong&gt;（与上游官方格式一致）：&lt;code&gt;GET http://IP:3003/v1/usage&lt;/code&gt;（Authorization: Bearer 你的用户 key）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;代理会自动剥离 &lt;code&gt;/v1&lt;/code&gt; 前缀并转发到上游对应端点；&lt;code&gt;/v1/models&lt;/code&gt; 与 &lt;code&gt;/v1/usage&lt;/code&gt; 由本地提供，不经过上游。&lt;/p&gt;
&lt;h2&gt;Web 用量查询&lt;/h2&gt;
&lt;p&gt;浏览器打开 &lt;code&gt;http://主机:3003/&lt;/code&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;用户页签&lt;/strong&gt;：输入自己的 key，查看三个窗口已用 / 限额 / 百分比与总池实时余量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;管理员页签&lt;/strong&gt;：输入密码，查看全部用户（uuid / 备注 / 用量）与总池&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;密钥自检与数据查询&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;opgo -audit -config /opt/opgo/config.jsonc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;全部 PASS 退出码为 0；任何响应中出现 key 都会 FAIL。用量数据存在 SQLite 里，可直接查询：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sqlite3 /opt/opgo/usage.db &quot;select uuid, model, total_tokens, cost_units, datetime(created_at_epoch_ms/1000,&apos;unixepoch&apos;) from usage order by id desc limit 20;&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;注意事项&lt;/h2&gt;
&lt;p&gt;:::warning
共享订阅可能违反上游服务条款，请自行确认合规性。
:::&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;管理员密码走明文 HTTP，公网使用请在前置 Nginx / Caddy 上加 HTTPS&lt;/li&gt;
&lt;li&gt;同一窗口内并发请求可能把消费略推过限额（最多一个请求的量）&lt;/li&gt;
&lt;li&gt;发布版本只需打 tag：&lt;code&gt;git tag v0.1.0 &amp;amp;&amp;amp; git push origin v0.1.0&lt;/code&gt;，CI 会自动构建并发布 Release（opgo-linux-amd64 / opgo-windows-amd64.exe）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;项目目前还很年轻，欢迎提 issue 和 PR。后续我也会在这里记录更多使用心得和踩坑经验。&lt;/p&gt;
</content:encoded></item></channel></rss>