【玩转 Postman 接口测试与开发2_011】DIY 实战:用 Postman 实测 DeepSeek V3 聊天 API 接口并完成 PowerShell 脚本的编写_postman调用deepseek
DIY1:用 Postman 调用 DeepSeek 接口生成 PowerShell 脚本
1 前言
今天是大年二十九除夕夜,DeepSeek
的新闻热度感觉比春晚还要火爆。正好最近在学 Postman
,就拿 DeepSeek
的 API
接口练练手,帮我实现一个用 PowerShell
生成本地快捷方式的小任务。
2 需求描述
这个需求来自前段时间刚养成的一个阅读习惯。对于网上偶然看到的一些有意思的博文或视频,但又没时间仔细阅读,我通常会在桌面上创建一个快捷方式,而不是直接放到浏览器收藏夹——因为对我来说,像这样放进去的链接大概率是不会再看第二眼的,“等以后有时间再看” 往往就是 “永远没时间再看”。但另存为桌面快捷方式不一样,下次打开笔记本我会强迫自己至少读完一个,并且读完就删,这样在收藏时就会多考虑考虑,可有可无的文章就不创建了。别说,效果还挺好。
每次创建快捷方式都要重复很多鼠标操作:创建快捷方式、然后分别复制粘贴网址和文件名。于是就想用一个 PowerShell
脚本完成半自动化操作:运行这个脚本,然后指定一个固定格式的字符串参数,就能在桌面上自动创建超链接。
3 具体实现
说干就干。先到 DeepSeek
开放平台 https://platform.deepseek.com/
注册一个帐号(注册成功就有 10 元抵用额度,第一印象不错),然后生成一个 API Key
备用。
然后在 Postman
新建一个测试集合 DeepSeek API Test
,以及一个与之关联的测试环境 DeepSeek API Env
(名称自拟)。在新环境中定义两个变量:
base_url
:https://api.deepseek.com
api_key
:
【图 1:DeepSeek API Env 测试环境的变量定义】
接着新建一个 POST 请求 Hello DeepSeek
,URL
设为 {{base_url}}/chat/completions
,并指定 Content-Type
请求头为 application/json
,然后在请求的 Body
正文中输入以下内容:
{ \"model\": \"deepseek-chat\", \"messages\": [ { \"role\": \"system\", \"content\": \"You are a helpful assistant.\" }, { \"role\": \"user\", \"content\": \"已知一个字符串:\'技术写作的首要诀窍;https://www.ruanyifeng.com/blog/2024/01/weekly-issue-288.html\',如何用 PowerShell在当前位置生成一个快捷方式,其中名称为分号前的部分,链接为分号后的部分。要求创建一个满足该功能的脚本,运行脚本并传入一个字符串后,自动在当前路径生成一个快捷方式。\" } ], \"stream\": false}
注意,这里的 stream
参数用于控制响应的返回方式,开启后将以流的形式返回结果。这里没必要,保持默认的 false
即可:
【图 2:创建 DeepSeek 对话测试请求】
最后,在 Authorization
标签完成 Bearer
鉴权后,就能发送请求了:
【图 3:在 Authorization 标签完成 Bearer 鉴权】
点击发送按钮,稍等片刻,就拿到了 DeepSeek
的响应结果:
【图 4:DeepSeek 给出的 JSON 响应内容】
这时可以用 Postman
自带的可视化模块 Visualization
生成一个简单的表格:
【图 5:利用 Postman 内置的 AI 助手对响应结果进行的可视化处理(第一行是我自己加的,微调一下生成的模板即可)】
具体的测试脚本如下:
pm.test(\"Status code is 200\", function () { pm.response.to.have.status(200);});var template = ` .tftable {font-size:14px;color:#333333;width:100%;border-width: 1px;border-color: #87ceeb;border-collapse: collapse;} .tftable th {font-size:18px;background-color:#87ceeb;border-width: 1px;padding: 8px;border-style: solid;border-color: #87ceeb;text-align:left;} .tftable tr {background-color:#ffffff;} .tftable td {font-size:14px;border-width: 1px;padding: 8px;border-style: solid;border-color: #87ceeb;} .tftable tr:hover {background-color:#e0ffff;} ID Type Time Model Role Content {{res.id}} {{res.object}} {{res.createTime}} {{res.model}} {{user.role}} {{user.content}} {{res.id}} {{res.object}} {{res.createTime}} {{res.model}} {{msg.role}} {{msg.content}}
`;function constructVisualizerPayload() { const json = pm.response.json(); const msg = json.choices[0].message; const bd = JSON.parse(pm.request.body.raw); const usr = bd.messages[1]; return {res: json, msg, user: usr};}pm.visualizer.set(template, constructVisualizerPayload());
4 结果验证
为了验证 DeepSeek
对话模型给出的答案,将回复正文放到 Typora
解析一下,就得到了这段代码:
param ( [string]$inputString)# 分割输入字符串$parts = $inputString -split \';\'if ($parts.Length -ne 2) { Write-Host \"输入的字符串格式不正确,应该包含一个分号分隔的名称和链接。\" exit}$name = $parts[0].Trim()$url = $parts[1].Trim()# 创建快捷方式的路径$shortcutPath = \"$PWD\\$name.url\"# 创建快捷方式内容$shortcutContent = @\"[InternetShortcut]URL=$url\"@# 将内容写入快捷方式文件Set-Content -Path $shortcutPath -Value $shortcutContentWrite-Host \"快捷方式已创建: $shortcutPath\"
再按照提示另存为 CreateShortcut.ps1
脚本文件放到桌面上,用以下命名进行测试:
> ./CreateShortCut.ps1 \'写作的首要诀窍;https://www.ruanyifeng.com/blog/2024/01/weekly-issue-288.html\'快捷方式已创建: C:\\Users\\ad\\Desktop\\写作的首要诀窍.url>
这样,桌面就看到了这样一个快捷方式:
【图 6:实测 DeepSeek 给出的 PowerShell 脚本生成的快捷方式】
双击打开,顺利打开该示例页:
【图 7:由 DeepSeek V3 聊天接口提供的 PowerShell 脚本成功创建本地快捷方式并正常打开该页面】
5 注意事项
截至发稿时,DeepSeek
的平台接口页又崩了,一直报 503
错误:
【图 8:DeepSeek 接口首页又崩了】
等后面恢复了再补一张接口消费 token
的统计图表,自费真的很亲民。利用赠送的 10 元额度,我又把刚学完的《API Testing and Development with Postman》第二版第 11 章的内容让 DeepSeek
全文翻译(放到沉浸式翻译插件中测试)。感觉很多地方比 DeepL
翻的质量还要好,阅读起来非常流畅。这时当时节选的对比图:
【图 9:DeepL(上)和 DeepSeek(下)在长文翻译场景下的对比效果图】
另一个对 Postman
来讲比较打脸的事实是,1 月 22 号官方才大力宣传的 AI 智能体创建模块还不支持 DeepSeek
模型:
【图 10:通过 Ctrl + N 看到的还在试验阶段的 Postman AI 创建模块】
【图 11:Postman AI 模块目前支持的大模型(截至 2025 年 1 月 28 日)】
后续随着 AI 学习的深入,我还将继续分享 DeepSeek
等模型的本地应用,敬请期待!