文章目录
- [1. Python 对接方法](#1. Python 对接方法)
- [2. 协议参数分析](#2. 协议参数分析)
- [3. LabVIEW 对接方法](#3. LabVIEW 对接方法)
1. Python 对接方法
在 Python 中,可以通过 OpenAI 的格式来访问 DeepSeek 模型。
使用前,需要先登录 DeepSeek 开放平台,申请一个 api_key ,并充值一定金额。
网址:https://platform.deepseek.com
以对话 API 为例,代码如下:
python
from openai import OpenAI
client = OpenAI(
api_key="DEEPSEEK_API_KEY", # 替换成自己的 api_key.
base_url="https://api.deepseek.com")
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{"role": "user", "content": "Hello"},
],
stream=False,
reasoning_effort="high",
extra_body={"thinking": {"type": "enabled"}}
)
print(response.choices[0].message.content)
2. 协议参数分析
对于上文的 Python 范例,我们通过在 openai 底层代码中的关键位置加一些 print(),探明其等效的 HTTPS 请求如下:
python
URL: https://api.deepseek.com/chat/completions
Method: POST
Header: "content-type" : "application/json"
"authorization" : "Bearer api_key"
Body: b'''
{"model": "deepseek-v4-pro",
"messages": [
{"role": "user", "content": "Hello!"}
],
"thinking": {"type": "enabled"},
"reasoning_effort": "high",
"stream": false}
'''
注意:
(1)Header 还有很多,上面只列出了必须的 2 项,其余的不必写入请求;
(2)authorization 的值为 "Bearer + 空格 + 自己的api_key",固定格式,大小写也必须一致;
(3)Body 为 JSON 格式的二进制字符串,其中涉及的布尔值 (true 和 false),必须小写;
发送请求后,DeepSeek 服务器返回 JSON 作为响应结果,格式如下:
python
{
"id":"5f70d312-2bbf-4826-8305-a5175ffff1e4",
"object":"chat.completion",
"created":1779367066,
"model":"deepseek-v4-pro",
"choices":[{"index":0,
"message":{"role":"assistant",
"content":"Hi there! How can I help you today?",
"reasoning_content":"We need to respond to the user's greeting. The user said \"Hello!\" in the conversation. It's a simple greeting. My response should be friendly and engaging, offering assistance. I'll reply warmly and ask how I can help."
},
"logprobs":null,
"finish_reason":"stop"}],
"usage":{"prompt_tokens":6,
"completion_tokens":59,
"total_tokens":65,
"prompt_tokens_details":{"cached_tokens":0},
"completion_tokens_details":{"reasoning_tokens":48},
"prompt_cache_hit_tokens":0,
"prompt_cache_miss_tokens":6},
"system_fingerprint":"fp_9954b31ca7_prod0820_fp8_kvcache_20260402"
}
其中,choices 是具体响应内容,choices[0]["message"]["content"] 是AI的回答,紧随其后的 "reasoning_content" 是 AI 的思考过程(它心里的小九九)。usage 统计了本次请求消耗的 tokens 数量。
3. LabVIEW 对接方法
在 LabVIEW 中,我们采用底层 HTTPS 协议来对接 DeepSeek API。
相关函数位于:Functions >> Data Communication >> Protocols >> HTTP Client ,如下图。

根据上文所述的协议参数,调用相关VI,实现等效的 HTTPS 请求。如下图。

至此,基本对接方法已经实现。接下来,我们进行一些优化。
- 优化1:JOSN 格式转化
在前面的 VI 中,我们直接用一大段JSON字符串来描述请求参数。这对于参数修改与接口封装很不方便。
现在,改用 LabVIEW 的簇结构来组织请求参数,然后再调用 Flatten To JSON 函数,转换成JSON字符串,传递给 POST 进行发送。
与此同时,对于服务器返回的响应,调用 Unflatten From JSON 函数,从中提取出我们所需的 message 数据。
提取路径为:choices -> 0 -> message
优化后的程序框图如下:

- 优化2:中文及特殊字符的处理
DeepSeek 支持动态语言切换。只要你在发送的请求中使用中文来描述问题,那么返回的响应也将是中文的结果。
但是,DeepSeek 的请求与响应都是 UTF-8 编码,而大多数 LabVIEW 采用与操作系统一致的中文编码(比如,中国大陆为 GBK 编码)。为了能与 DeepSeek 适配,我们需要将请求字符串统一转换成 UTF-8 编码。同时,再将返回的响应转换为系统编码,从而保证中文正常显示。
LabVIEW 自带一对互逆的转换函数:Text to UTF-8 和 UTF-8 to Text ,可以用来实现上述转换功能。
(虽然是自带的,但它们不在任何选板中,很难找到。有需要的读者,请下载本文附带的范例,从中拷贝使用。)

好消息: JSON 转化函数自带编码转换功能。
如果您采用上文所述的 JSON 转化来处理请求参数与返回响应的话,那么恭喜您,通常不必再进行 UTF-8 编码转换了。
因为 Flatten To JSON 函数本身就会将 LabVIEW 簇中的中文转成UTF-8 编码。同时 Unflatten From JSON 函数本身就能将 UTF-8 编码的 JSON 字符串转化成系统编码的 LabVIEW 变量。
坏消息: DeepSeek 喜欢卖萌,常常返回表情符号。
DeepSeek 返回的响应中,如果出现无法解码的符号,会导致 Unflatten From JSON 函数报错。
这与中文编码无关,纯英文对话时,也可能返回表情符号。就像这样:

解决办法:
对于 DeepSeek 返回的字符串,先用 UTF-8 to Text 解码,再用 Text to UTF-8 编码,最后传递给 Unflatten From JSON 进行转换。
这个看似无用的 "反复" 操作,实际上会提前过滤非法字符,并替换成双问号 (??) ,从而避免直接传递给 Unflatten From JSON 发生报错。优化后的程序框图如下:

- 其他优化
DeepSeek 服务器有时会很忙碌,或者由于问题过于复杂,导致响应超时。您可以通过 POST 函数的下方接线端,设置自定义的超时时间。(默认为 10000 毫秒,即 10 秒)