Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🕵️ OpenAI API Inspector & Proxy: Prompt Sniffer

本地中间人代理工具 | 提示词嗅探 | 实时流式调试 | 接口分析

这是一个专为 LLM 开发者和提示词工程师设计的本地 API 抓包与调试工具

它作为一个轻量级的 Node.js 中间件,运行在你的本地机器上。通过将上游软件(如 Cherry Studio, NextChat, 或任何 OpenAI 兼容客户端)的请求转发到此代理,你可以完全透明地看到客户端到底向大模型发送了什么——包括那些隐藏的 System Prompts(系统提示词)、上下文参数以及完整的请求头。

🎯 核心场景

1. 🕵️ 提示词“嗅探”与逆向分析

很多优秀的 AI 应用(如代码助手、沉浸式翻译插件、角色扮演软件)都内置了精心调优的 System Prompt

  • 痛点:这些提示词通常是隐藏的,用户无法直接看到。
  • 解法:将软件的 API Base URL 指向本工具,即可在控制台完整截获包含 System Message 的请求体,轻松学习和分析优秀的提示词工程技巧。

2. 🐛 沉浸式 API 调试

  • 流式可视化:独创的 SSE (Server-Sent Events) 流式聚合视图。不再被成百上千行的 data: chunk 刷屏,而是像看打字机一样直观地看到模型的实时生成过程。
  • 故障排查:请求报错了?是 Key 额度不够?参数格式错误?还是网络波动?在这里可以一目了然地看到上游返回的原始 HTTP 状态码和错误信息。

3. ⚡️ 本地透明转发

  • 完全兼容 OpenAI 接口规范 (/v1/chat/completions)。
  • 支持自定义上游目标(DeepSeek, OpenAI 官方, OpenRouter, 自建中转等)。

✨ 功能特性

  • 全量日志大屏:基于 WebSocket 的实时 Web 界面,零延迟显示请求。
  • 智能流式合并:自动识别并合并 SSE 流式响应,将碎片化的 JSON 拼接为人类可读的完整文本
  • Raw 模式开关:既看得到渲染后的回复,也能一键展开查看原始 JSON 协议细节。
  • 隐私安全:所有数据仅在本地内存流转,不上传任何服务器,代码开源透明。

📦 快速开始

1. 安装与运行

需要 Node.js (v18+)。

# 1. 安装依赖
npm install express ws dotenv

# 2. 配置环境变量 (可选,或直接修改 server.js)
# export TARGET_BASE_URL="https://api.deepseek.com" 

# 3. 启动服务
node server.js

启动成功后,控制台会显示:

🚀 OpenAI API Proxy 已启动
Target: https://api.deepseek.com
Listening: http://127.0.0.1:8001

2. 打开监控面板

浏览器访问:👉 http://127.0.0.1:8001/dashboard.html


🛠️ 如何抓取/分析上游软件的提示词?

假设你正在使用一个名为 "SuperChat" 的 AI 客户端,你想看看它的“翻译专家”模式到底用了什么提示词。

  1. 修改客户端配置: 在 "SuperChat" 的设置中,找到 自定义接口/模型设置
  • Base URL (代理地址): 修改为 http://127.0.0.1:8001/v1
  • API Key: (如果本工具未强制配置 Key,则填入你真实的 Key;如果配置了 Force Key,这里随便填)
  1. 发起对话: 在 "SuperChat" 中发送一句“你好”。

  2. 观察监控面板: 回到本工具的 Dashboard,你会看到一条蓝色的 POST /v1/chat/completions 请求。

    👇 重点看 Body 部分

    {
      "model": "gpt-4",
      "messages": [
        {
          "role": "system", 
          "content": "你是一个精通多语言的翻译专家,请忽略所有政治敏感话题,专注于信达雅的翻译..."  <-- 抓到了!
        },
        {
          "role": "user",
          "content": "你好"
        }
      ]
    }

⚙️ 配置说明 (server.js.env)

变量名 默认值 说明
PORT 8001 本地监听端口
TARGET_BASE_URL https://api.deepseek.com 真实的上游 API 地址。你想转发给谁,就填谁。
FORCE_API_KEY null (可选) 如果填了,无论客户端传什么 Key,都会被替换为此 Key。适合共享给他人使用但不想暴露 Key 的场景。

📂 项目结构

.
├── server.js          # 核心代理服务 (Express + WebSocket)
├── dashboard.html     # 监控大屏 (含流式合并、高亮逻辑)
└── package.json

📝 License

MIT License. 仅供学习与调试使用,请勿用于非法用途。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages