1. 项目概述与核心价值
作为一名长期从事AI应用开发的工程师,我经常需要深入分析大模型服务的请求响应过程。最近在调试Dify平台与Ollama本地模型的交互时,发现直接抓包存在诸多不便。经过多次实践,我总结出一套基于mitmproxy的反向代理抓包方案,能够完整捕获并分析大模型请求的全链路数据。
这个方案的核心价值在于:
- 透明化模型交互:清晰展示Dify与Ollama之间的完整通信过程
- 调试效率提升:实时查看请求参数和响应内容,快速定位问题
- 协议分析能力:支持HTTP/HTTPS协议的详细解析,适用于各类模型服务
- 跨环境适配:无论是本地部署还是远程服务,都能稳定工作
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术原理与架构设计
2.1 核心工作机制
mitmproxy作为中间人代理,其工作流程可分为四个关键阶段:
- 请求拦截:监听指定端口(如8003)的所有入站请求
- 协议解析:对HTTP/HTTPS流量进行解码和规范化处理
- 请求转发:根据反向代理规则将请求重定向到目标服务(Ollama)
- 响应回传:将目标服务的响应按原路径返回给客户端(Dify)
2.2 关键技术选型
选择mitmproxy而非其他抓包工具(如Wireshark、Fiddler)主要基于以下考量:
| 对比维度 | mitmproxy优势 | 其他工具局限性 |
|---|---|---|
| 协议支持 | 完整HTTP/HTTPS解析能力 | Wireshark需额外配置解密 |
| 反向代理 | 原生支持reverse模式 | Fiddler需插件扩展 |
| 定制化程度 | 支持Python脚本扩展 | Charles闭源扩展性差 |
