Apifox测试大模型接口

Apifox测试大模型接口

2026年9月18日·#编程学习/python学习笔记DeepSeek/HTTP·1372 字 7 分钟
浏览量加载中...
AI 摘要

用 Apifox 在写代码之前先调通 DeepSeek 接口:url、请求头、请求体三要素与 messages 角色设计

Apifox 是什么#

Apifox 是一款 API 设计、开发、测试的一体化协作平台,是项目开发中进行 API 接口测试的神器。

在写代码之前先用它把接口调通,好处是:能把”接口问题”和”代码问题”分开——接口在 Apifox 里通了,写代码时出错就一定是代码的问题。

调用 DeepSeek 的三要素#

要素内容
url 地址https://api.deepseek.com/chat/completions
请求方式POST
请求头(key: value)Content-Type: application/json
Authorization: Bearer <你的API Key>
请求体(json 格式){"model": "...", "messages": [...], "stream": false}

对应的原始 HTTP 请求长这样(官方文档给出的 curl 版本):

Terminal window
curl https://api.deepseek.com/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DEEPSEEK_API_KEY}" \
-d '{
"model": "deepseek-chat",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
"stream": false
}'
Tip

Authorization: Bearer xxx 里的 Bearer 是固定写法(表示”持有者令牌”),后面跟一个空格再跟 API Key。漏掉 Bearer 或空格都会导致 401。

请求体详解#

参数含义
model模型名称。deepseek-chat 对应非思考模式,deepseek-reasoner 对应思考模式(官方说明两者都已升级为 DeepSeek-V3.2)
messages消息列表,决定模型”看到”的上下文
stream是否流式输出。false 一次性返回完整结果,true 逐字返回(打字机效果)

messages 的三种角色#

messages 是一个列表,每个元素都是 {"role": ..., "content": ...}

role作用示例
system设定 AI 的身份和行为准则(回答的风格、限制、规则等)“你是一名可爱的 AI 助手,你的名字叫小甜甜……”
user用户实际提出的问题或指令“你是谁”
assistantAI 模型的回复/响应“我是小甜甜呀!……”
"messages": [
{ "role": "system", "content": "你是一名可爱的AI助手, 你的名字叫小甜甜, 请以亲切、可爱语气来回答用户的问题" },
{ "role": "user", "content": "你是谁" },
{ "role": "assistant", "content": "我是小甜甜呀!一个可爱又贴心的AI助手……" }
]
Note

system 放在列表的最前面。它的内容就是我们后面要”定制伴侣性格”的地方,见 提示词工程

会话记忆-现状(为什么 AI 记不住上一句)#

与 AI 大模型的交互本质是无状态的,每一次请求响应都是相互独立的,AI 大模型本身没有真正的会话记忆能力。

第一次问”12 个苹果 3 个人怎么均分”,再问”那 2 个人呢”,因为这次请求里只有”那 2 个人呢”,模型不知道你在说什么:

"messages": [
{ "role": "system", "content": "你是一名可爱的AI助手……" },
{ "role": "user", "content": "那2个人呢?" }
]

会话记忆-处理方案(会话历史滚雪球)#

客户端把之前所有对话都塞进 messages 一起发过去,模型就”看起来记得”了:

"messages": [
{ "role": "system", "content": "你是一名可爱的AI助手……" },
{ "role": "user", "content": "12个苹果,3个人怎么均分?" },
{ "role": "assistant", "content": "嘻嘻,12个苹果分给3个人,每个人可以分到 **4个苹果** 哦~" },
{ "role": "user", "content": "那2个人呢?" }
]

这样模型就能正确回答”每人 6 个苹果”。代价是每轮请求都越来越长,Token 消耗越来越大。

相关#

练习题#

一、回忆填空(写完再展开对答案)#

  1. 调用 DeepSeek 的三要素:____ 地址、____(json 格式)、请求头
  2. 请求方式用 ____,url 是 https://api.deepseek.com/____
  3. 请求头 Content-Type 的值是 ____
  4. 请求头 Authorization 的值格式是 Bearer ____
  5. 请求体三个常用参数:model
  6. messages 里三种 role:(设定身份和行为准则)、(用户提问)、____(AI 回复)
  7. streamtrue 表示 ____ 输出
  8. Apifox 的作用是 ____,写代码之前先用它调通接口,可以把”接口问题”和”____问题”分开
填空答案(做完再点开)
  1. url、请求体 2. POST、chat/completions 3. application/json 4. API Key(前面有 Bearer 和一个空格) 5. messagesstream 6. system、user、assistant 7. 流式 8. API 接口测试 / 代码

二、动手写(写在笔记本上或直接发我)#

  • 2-1 手写一个最小的请求体 JSON:模型用 deepseek-chat,system 让 AI 自称”小甜甜”,user 问”你是谁”,不要流式

    参考答案(做完再点开)
    {
    "model": "deepseek-chat",
    "messages": [
    { "role": "system", "content": "你是一名可爱的AI助手, 你的名字叫小甜甜, 请以亲切、可爱语气来回答用户的问题" },
    { "role": "user", "content": "你是谁" }
    ],
    "stream": false
    }
  • 2-2 在上面基础上,补一条 assistant 的历史回复,说明”滚雪球”是怎么实现会话记忆的

    参考答案(做完再点开)

    在 messages 里再加一条 assistant 的历史回复,模型就能”看到”自己说过什么:

    参考答案(做完再点开)
    {
    "model": "deepseek-chat",
    "messages": [
    { "role": "system", "content": "你是一名可爱的AI助手, 你的名字叫小甜甜, 请以亲切、可爱语气来回答用户的问题" },
    { "role": "user", "content": "12个苹果,3个人怎么均分?" },
    { "role": "assistant", "content": "嘻嘻,12个苹果分给3个人,每个人可以分到 4个苹果 哦~" },
    { "role": "user", "content": "那2个人呢?" }
    ],
    "stream": false
    }
  • 2-3 如果 Apifox 里返回 401,你会先检查请求头里的哪一项?为什么?

    参考答案(做完再点开)

    先看请求头里的 Authorization:401 表示”未认证”,通常是没带这个头、没写 Bearer (Bearer+空格)、或者 API Key 写错/已失效。

评论区

[ 标签 ]
# AI37# AI 编程2# AI工具1# Ajax2# Apifox1# AstrBot3# Astro2# CC Switch1# CDN2# Claude Code1# claudecode2# ClaudeCode1# Cloudflare2# CloudFlare2# CloudFlare-ImgBed3# coc3# CSS6# DeepSeek6# deepseek2# DELETE1# Docker1# EdgeOne3# Gist1# git1# GitHub1# hexo-circle-of-friends1# HTML6# HTTP5# ImageManager1# Java23# java13# JavaScript5# JDBC3# JSON2# JUnit1# LangChain25# Logback1# Maven6# Muse Spark1# Mybatis1# MyBatis4# MySQL28# MySql1# NapCat1# Node.js1# obsidian2# Obsidian5# OpenCode4# ORM1# PathVariable1# PicGo1# PyCharm1# Python65# RequestBody1# RequestMapping1# RESTful风格1# skills1# Slf4j1# SpringBoot11# SQL2# Streamlit5# Svelte2# TailwindCSS1# Telegram3# Tlias2# Vercel1# vscode2# Vue7# Waline3# WebDAV1# Web基础6# Web开发6# WinSCP1# YAML1# 三层架构1# 中二宣言1# 书籍1# 使用文档10# 写作1# 函数2# 刷步数1# 前端32# 动态1# 动漫1# 包1# 单词2# 博客7# 博客工作流1# 博客开发2# 参数接收1# 友链1# 反思2# 图床6# 地图1# 备份2# 大模型1# 奇思妙想1# 存储1# 学习方法6# 学校1# 宝塔面板3# 宝宝10# 对象1# 导航栏1# 工具2# 开发1# 开发工具1# 开发规范1# 开心1# 异常处理1# 影视2# 微信1# 性能优化2# 总结1# 想法15# 感受1# 感悟11# 指南1# 提示词工程1# 插件5# 故障排除1# 效率工具2# 教程10# 数据分析9# 数据库27# 数据结构1# 文件操作2# 斩神1# 日常92# 日志框架1# 朋友圈1# 朱元璋1# 模块1# 模板1# 正则表达式2# 测试1# 游戏2# 爬虫7# 生活迁移1# 电影2# 电脑1# 碎碎念1# 视觉识别1# 类1# 类型注解1# 网络基础2# 网络教室1# 羊毛2# 脚本2# 脚本工具1# 自动化2# 蓝奏云1# 订阅推荐2# 记录2# 评论系统1# 词根1# 词缀1# 说说1# 足迹1# 跑步2# 路径参数1# 转载2# 运动1# 部落冲突1# 配置1# 随机图1# 面向对象5# 音乐3# 音标1# 饮食1# 驼峰命名1# 高德地图1
[ 公告 ]

如果你喜欢,那么欢迎来到我的世界!

了解更多
[ 音乐 ]
封面

音乐

暂未播放

0:000:00
暂无歌词
找不到相关结果。
[ contents ]
[ 全部文章 ]