在现代的API接口调试中,效率和精确性对于开发者和测试人员来说至关重要。Apifox,作为一款功能强大的API管理和调试工具,近年来不断提升其用户体验和智能化功能。最近,Apifox 推出了增强版的AI接口调试功能,其中包括自动合并SSE(Server-Sent Events)响应和展示DeepSeek思考过程的功能。这些新功能为开发者和测试人员提供了更高效、直观的调试体验,让接口调试更轻松。
常见 AI 大模型的 API 都支持流式输出,以便让用户可以实时看到 AI 的回复,而无需长时间等待。AI 流式输出一般遵循 SSE*(Server-Sent Events)*格式。

Apifox 是国内最早支持调试 SSE 接口的工具。随着越来越多的开发者在项目中使用 AI 接口,Apifox 进一步增强了 SSE 调试功能,对 AI 接口做了专门的优化。
现在,只要你在 Apifox 中发起 HTTP 请求,符合 OpenAI、Gemini、Claude 等 AI 常见格式的流式响应就会自动合并为可读文本 ,实时以自然语言呈现响应 。不仅如此,对于一些特定的 AI 推理模型,如 DeepSeek R1,Apifox 还能展示在生成答案前的思考过程。

下面我们就进一步介绍这一全新功能的使用方法,在开始之前,请将 Apifox 更新至最新版(≥2.6.49) ,一起开启全新体验 !

三步开启 AI 接口流式调试


新建接口
将 Apifox 更新到最新版本后,将其打开并新建一个 HTTP 项目,在项目中新建接口。
你可以填写任一 AI 模型的接口地址,并配置相应的 API Key。比如 DeepSeek 的 API,你可以将下面的 cURL 导入到 Apifox,注意stream
字段的值需要为true
:
curl https://api.deepseek.com/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {{API_KEY}}" \
-d '{
"model": "deepseek-chat",
"messages": [
{"role": "system", "content": "你是一位诗人"},
{"role": "user", "content": "写一首关于春天的诗"},
{"role": "assistant", "content": "春风拂面柳丝长..."},
{"role": "user", "content": "请继续补充第二、三和四段"}
],
"stream": true }'

💡 也可以参考这篇推文:如何使用 Apifox 一键调用 DeepSeek API

发送请求
发送请求后,Apifox 会自动识别接口返回的Content-Type
是否包含text/event-stream
。如果包含,系统会自动将响应解析为 SSE 事件并进行流式输出。


查看实时响应
在「时间线」视图中,你将看到实时滚动的流式响应内容。事件流会自动合并成可读文本,直观地呈现在响应面板中。


自动合并流式响应

Apifox 内置了对主流 AI 模型的支持,可以自动识别并合并以下格式的流式响应:
-
兼容 OpenAI API 格式的响应*(DeepSeek 等绝大多数 AI 模型的 API 都兼容该格式)*
-
兼容 Gemini API 格式的响应
-
兼容 Claude API 格式的响应
只要你调用的 AI 模型返回格式与以上任意一种格式相匹配,Apifox 都会自动将消息片段合并为完整的回复内容。
对于某些 AI 推理模型,如 DeepSeek R1,Apifox 还支持在「时间线」中展示模型的思考过程,帮助你更直观地了解 AI 的推理过程。


自定义合并规则

如果自动合并功能未能正常工作,说明 SSE 返回的响应格式不在内置支持列表中,对此 Apifox 提供了两种自定义合并规则的方法,可以根据实际情况采取以下措施:

配置 JSONPath 提取规则
当 SSE 返回的事件内容是JSON 格式 ,但不符合 OpenAI、Gemini、Claude 等内置的识别规则时,你可以手动配置 JSONPath 来提取所需内容。例如下面的原始 SSE 响应:
data: {"choices":[{"index":0,"message":{"role":"assistant","content":"你"},"logprobs":null,"finish_reason":"stop"}]}
data: {"choices":[{"index":0,"message":{"role":"assistant","content":"好"},"logprobs":null,"finish_reason":"stop"}]}
对于这个 JSON 结构,要提取content
字段的内容,正确的 JSONPath 配置应是:
$.choices[0].message.content
这个 JSONPath 表达式的含义是:
-
$
表示 JSON 的根节点 -
choices[0]
表示选择 choices 数组的第一个元素 -
message.content
表示在该元素下 message 对象的 content 属性
这个配置将提取出内容:
你好

自定义脚本
对于非 JSON 格式 的 SSE 消息,可以在 Apifox 的「后置操作」中编写自定义脚本。你可以定义如何处理每个事件片段,无论是文本、XML 还是其它格式的数据,这种方法都能帮助你灵活地处理响应内容。
例如某个 AI 接口返回的 SSE 消息是纯文本格式,而不是 JSON 数据。每个事件片段可能只是一些简单的文本行,例如:
data: 你
data: 好
在 Apifox 中,你可以编写如下自定义脚本来处理这些文本数据:
// 获取返回的 SSE 事件流内容
const sseContent = pm.response.text();
// 假设每行文本代表一个事件片段,我们可以简单地按行分割并处理
const eventLines = sseContent.split('\n');
// 存储合并后的事件内容
let mergedContent = '';
// 处理每个事件片段,去除空行并合并
eventLines.forEach(line => {
if (line.trim()) {
// 提取 'data: ' 后面的内容并合并
let eventData = line.replace(/^data:\s*/, '');
mergedContent += eventData;
}
});
// 将结果显示在 body 的 "Visualize" 标签页
pm.visualizer.set(mergedContent);
// 最后,将合并后的数据输出
console.log("合并后的事件流:", mergedContent);
这个脚本将会把每个事件片段按行分割,将处理后的内容显示在 body 的「Visualize」标签页,并打印到控制台。你可以根据实际需要进一步修改处理逻辑,进行更复杂的文本解析。
🚧 注意
无论选择哪种方式,都建议先仔细分析 API 的响应格式,以确保正确配置合并规则。

在现代的API接口调试中,效率和精确性对于开发者和测试人员来说至关重要。Apifox,作为一款功能强大的API管理和调试工具,近年来不断提升其用户体验和智能化功能。最近,Apifox 推出了增强版的AI接口调试功能,其中包括自动合并SSE(Server-Sent Events)响应和展示DeepSeek思考过程的功能。这些新功能为开发者和测试人员提供了更高效、直观的调试体验,让接口调试更轻松。
Apifox 的全新 SSE 调试功能,尤其是在流式响应的自动合并和 AI 推理过程的实时可视化方面,为 AI 模型调试提供了极大的便利。你不仅可以更加高效地调试 AI 接口,还能更深入地了解模型的推理过程。更新你的 Apifox,现在就去试试吧!
