我们平时使用的主流大模型(如 DeepSeek、豆包、Gemini 等),都是厂商已经封装好网页或 App 界面。我们输入文字,它们给出回复。
那么,如果我们想脱离现成的网页,自己动手实现一个类似的聊天机器人,该怎么做呢?
其实,各大模型厂商都对外提供了 API(应用程序接口)。我们可以把 API 理解为大模型的“隐藏后门”,通过编写简单的代码向这个后门发送请求,就能把大模型的能力接入到我们自己的程序里。
今天,我们就以 DeepSeek 为例,从零开始跑通这个流程!
第一步:获取大模型的API Key
在使用大模型服务之前,我们需要先去官方平台申请一个身份凭证,这个凭证被称为 API Key。
进入平台:打开 DeepSeek 官网,点击 “API 开放平台”。
创建密钥:进入后台后,点击“API Keys”菜单,创建一个新的密钥。
妥善保存:创建成功后,系统会弹出一个长字符串类似 sk-xxxx...。请务必立刻复制并保存到本地(比如记事本里)。出于安全考虑,这个 Key 往往只完整显示一次,后续它将作为你调用大模型的“通关令牌”。
第二步:理解大模型的对话语言(Messages 格式)
拿到API Key后,我们来看看如何跟大模型“打交道”。打开 DeepSeek 官方文档,我们重点观察它的请求体格式。

发送请求时,最核心的参数是一个名为 messages 的数组(Array)。数组里的每一个元素都是一个对象,包含两个关键字段:
role(角色):声明这句话是谁说的。content(内容):具体说话的内容。
在 API 对话中,主要有以下三种角色:
角色 (role) |
含义 | 作用 |
|---|---|---|
system |
系统提示词 | 用来给模型设定背景规则。例如输入 {"role": "system", "content": "你扮演一个冷酷的赛博朋克杀手"},接下来的对话模型都会维持这个高冷的人设。 |
user |
用户 | 提问者。代表你(即用户)输入给机器人的问题。 |
assistant |
助手 | 回答者。代表大模型给出的回复。 |
第三步:单轮对话测试(跑通第一行代码)
官方文档提供了现成的 Python 示例代码(你也可以选择其他语言)。我们将代码复制到本地编辑器中,将我们第一步保存的 API Key 填入代码对应的环境变量或配置项中,直接运行。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get('DEEPSEEK_API_KEY'),
base_url="https://api.deepseek.com")
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello"},
],
stream=False,
reasoning_effort="high",
extra_body={"thinking": {"type": "enabled"}}
)
print(response.choices[0].message.content)
运行后,我们会得到一个结构丰富的 JSON 格式返回值:

💡 核心返回字段拆解:
"role": "assistant":明确告知这一段内容来自大模型。"content":模型的正式回复。如示例中,针对用户“你好,先做一下自我介绍”的请求,模型返回了长段的自我介绍。"reasoning_content":大模型的思考过程(思维链)。这是深度思考模型(如 R1 / v4-pro)特有的字段,记录了模型在吐出最终答案前,在后台进行的逻辑推理。
在代码中如何提取回复?
在 Python 代码中,我们不需要把这一大堆 JSON 全部打印出来。通过下面这行代码,就可以精准抽取出黄色框内的最终文本:
print(response.choices[0].message.content)
取得返回参数里面得choices[0]下面得message的content,也就是日志中黄色框的区域。

🔄 进阶预告:单轮到多轮的质变
通过上面的实验,我们成功让大模型听懂并回复了我们。但聪明的你一定发现了问题:
“现在的对话是‘死’的。输入的消息是我提前硬编码在
messages里的。而且,如果我接着问它第二个问题,它就会完全忘记上一个问题聊了什么。”
大模型的 API 本身是无状态(Stateless)的,它就像一个患了短暂健忘症的专家,每次请求都是全新的开始。
那么,如何让它拥有记忆,学会在控制台控制实时输入,进行真正连续的多轮对话呢? 下一节,我们将引入上下文管理(Context Management),真正赋予我们的 Chatbot “持久记忆”!
支付宝打赏
微信打赏