怎么偷看大模型的“内心戏”?聊聊系统提示词与对话记录的提取技巧
大家在玩各种大模型应用或者 GPTs 的时候,是不是经常会有这种好奇:
“这个功能到底是怎么实现的?” “它背后的系统提示词(System Prompt)写得精妙吗?” “我能不能把这套提示词抄过来,自己做一个类似的?”
最近看到不少朋友在讨论,能不能通过像 NewAPI、Sub2API 这类中间代理工具,把大模型的对话记录,特别是默认隐藏的系统提示词给“扒”出来。今天咱们就抛开复杂的理论,用最通俗的话聊聊这事儿到底靠不靠谱,以及具体怎么操作。
通过代理服务器中转请求的示意图
为什么我们看不到系统提示词?
首先得明白一个基础逻辑。平时我们直接用大模型的网页端(比如官方 Chat 界面)或者封装好的 APP 时,我们发出的请求和模型返回的回复,是点对点的。这个过程就像是寄信,你把信塞进邮筒(前端),邮递员(后端)直接送到收件人(模型)手里。
系统提示词通常是在后端代码里,或者在模型被调用的瞬间悄悄附加进去的。作为普通用户,你在聊天窗口里看到的只是“最终结果”,根本接触不到那个带着“特殊指令”的数据包。所以,想直接在网页上“右键查看源代码”来找提示词,那是行不通的。
“中间商”赚差价,也赚信息
既然官方通道不让我们看,那我们就得想办法在这个传输过程中“插一脚”。这就是 API 代理工具 登场的时候了。
像 NewAPI、Sub2API 这类工具,它们本质上是一个中转站。原本是:
你的电脑 -> 官方服务器
代理工具后台记录的API请求详情
现在变成了:
你的电脑 -> 你的代理服务器 -> 官方服务器
当你拥有了这个“代理服务器”的控制权,局面就完全不同了。因为所有数据都要经过你的地盘,你完全可以做一个“监听器”,把流经的数据全部记录下来存进日志里。
这就是查看系统提示词的核心原理:不要做单纯的用户,要做流量的经手人。
实操路径:怎么做才能“偷”到 prompt?
既然原理清楚了,那具体怎么落地呢?这里分几种情况说说。
1. 如果你用的是自己搭建的 NewAPI
很多站长为了省钱或聚合多个模型,会自己搭建 NewAPI。这种情况下,其实你已经成功了一半。
- 开启日志功能:NewAPI 这类开源项目通常都有详细的日志记录选项。你需要去配置文件里,把 Logging 或者 Request Log 相关的选项打开。
- 关注
messages字段:大模型的标准 API 请求格式里,核心数据都在messages数组里。通常第一条数据(Role 为system)就是你要找的系统提示词。 - 查看后台面板:大部分此类代理工具都有后台管理界面,里面会有“通道日志”或者“请求详情”。点进去翻翻,把你刚才那个测试请求找出来,展开 JSON 数据,系统提示词一览无余。
2. 关于 Sub2API 的使用
Sub2API 这类工具更多是用于将订阅链接转换为 API 格式,或者做流量的转发。如果你想用它来看提示词,关键在于**“转发”**这个动作是否解包了数据。
- 有些简单的转发工具只是透传(Tunneling),数据包原封不动地扔过去,这种可能没法直接看。
- 那些具备“修改请求头”、“重写 Prompt”功能的高级工具,必然会先解析数据包。既然解析了,就有办法记录下来。记得看工具文档里有没有关于“Web Hook”或者“自定义脚本”的功能,写个几行脚本把请求 Body 存下来是最好的办法。
3. 硬核玩法:抓包(Fiddler/Charles/mitmproxy)
如果你不想搭建服务,或者你是用别人的客户端软件,那就得祭出抓包工具了。
- 配置代理:在电脑或手机上配置抓包工具的代理,让应用的流量经过它。
- HTTPS 解密:现在大都是加密流量,记得在抓包工具里安装证书,开启 HTTPS 解密(SSL Proxying)。
- 筛选接口:运行你要测试的应用,然后在抓包工具里搜
v1/chat/completions这种关键词。找到那个 POST 请求,查看请求体。
注意:很多 APP 会做 SSL Pinning(证书锁定),防止抓包。如果是这种情况,你可能还需要用像 frida、r0capture 这种专门对付反抓包的 Hook 工具,门槛稍微高一点。
发现了提示词之后
当你费劲九牛二虎之力,终于拿到了那段神秘的 System Prompt,你会发现什么?
很多时候,你看到的可能只是一段非常简单的指令,比如:“你是一个乐于助人的助手,请用 Markdown 格式回答。”
但有时候,你会看到非常精妙的“思维链”设计,或者复杂的角色设定。这时候,你就可以把它复制下来,放到你自己的 API 客户端里,甚至进行魔改,生成属于你自己的 GPTs 或者 Agent。
总结
想看大模型的对话记录和系统提示词,NewAPI 等自建中间件是最好的切入点,因为你拥有最高权限。如果是第三方闭源应用,抓包是唯一的路,但难度会随着应用防护等级的提升而指数级上升。
技术本身没有黑白,但希望大家在“拆解”优秀作品的同时,也能尊重开发者的劳动成果,多学习思路,少直接照搬,一起进化!
评论已关闭