DeepSeek API 接入教程:从注册到 Python 调用实战
最近 DeepSeek 可以说是火遍全网,性能比肩 GPT-4,价格却亲民不少。如果你也想在自己的项目里接入 DeepSeek,这篇文章会手把手带你走完全流程——从注册获取 Key,到用 Python 写出第一行调用代码,十几分钟就能跑通。
## 一、注册与获取 API Key
首先打开 DeepSeek 官网(platform.deepseek.com),点击右上角的“登录”或“注册”。支持手机号、邮箱和微信登录,按提示完成即可。
登录后会进入控制台,左侧菜单找到「API Keys」,点击「创建新的 API Key」。输入一个便于记忆的名称(比如“test-key”),系统会生成一串 sk- 开头的密钥。**这个密钥只显示一次**,请立即复制并保存到安全的地方。
> 注意:新注册用户通常会赠送一定的免费额度,足够我们测试使用。如果额度用完,可以在「充值」页面进行充值,支持微信、支付宝等支付方式。
## 二、准备好 Python 环境
在开始写代码之前,确保你安装了 Python 3.7+ 以及 requests 库。如果没有安装 requests,在终端执行:
```bash pip install requests ```
我们选择用原生 requests 调用 API,这样不依赖任何第三方 SDK,对初学者也更透明。
## 三、编写调用代码
DeepSeek 的 API 完全兼容 OpenAI 格式,只需调整 `base_url` 和模型名称。下面是一个最基础的对话示例:
```python import requests
url = "https://api.deepseek.com/v1/chat/completions" headers = { "Authorization": "Bearer sk-你的API密钥", "Content-Type": "application/json" }
payload = { "model": "deepseek-chat", "messages": [ {"role": "system", "content": "你是一个有用的助手"}, {"role": "user", "content": "用通俗的语言解释什么是机器学习"} ], "temperature": 0.7, "max_tokens": 500 }
response = requests.post(url, headers=headers, json=payload) data = response.json()
# 提取回复内容 reply = data["choices"][0]["message"]["content"] print(reply) ```
将 `sk-你的API密钥` 替换成你刚才获取的真实 Key,运行脚本,就会在终端看到 DeepSeek 返回的完整回答。
### 关键参数说明
- **model**:可选 `deepseek-chat`(对话模型)或 `deepseek-reasoner`(推理模型)。普通聊天用 `deepseek-chat` 即可。 - **messages**:对话消息列表,system 提示词是可选项,user 代表用户输入。 - **temperature**:控制随机性,0~2 之间,越低越确定,越高越天马行空。 - **max_tokens**:限制输出长度,避免消耗过多额度。
## 四、处理流式输出
如果你想让回答像聊天界面那样逐字显示,可以开启流式输出。只需在 payload 中加入 `"stream": True`,并改用迭代解析:
```python payload["stream"] = True
response = requests.post(url, headers=headers, json=payload, stream=True)
for line in response.iter_lines(): if line: # 移除非 data 行 line_str = line.decode('utf-8') if line_str.startswith("data: "): chunk = line_str[6:] if chunk != "[DONE]": import json delta = json.loads(chunk)["choices"][0]["delta"] if "content" in delta: print(delta["content"], end="", flush=True) ```
流式输出会在每个 token 生成时立即返回,适合想实时展示结果的场景。
## 五、简单的对话封装
为了方便复用,可以写一个简单的函数:
```python def chat_with_deepseek(user_input, history=None): if history is None: history = [{"role": "system", "content": "你是一个有帮助的助手"}] history.append({"role": "user", "content": user_input}) resp = requests.post(url, headers=headers, json={ "model": "deepseek-chat", "messages": history, "temperature": 0.7 }) assistant_message = resp.json()["choices"][0]["message"]["content"] history.append({"role": "assistant", "content": assistant_message}) return assistant_message, history
# 使用示例 history = [] while True: user_input = input("你: ") reply, history = chat_with_deepseek(user_input, history) print("助手:", reply) ```
这样就能在命令行中实现多轮对话了。
## 六、遇到问题怎么办?
- **401 鉴权错误**:检查 API Key 是否正确,Bearer 后面有无空格。 - **404 路径错误**:确认 URL 是 `/v1/chat/completions`。 - **超额或欠费**:登录控制台查看用量和余额。 - **网络问题**:国内直连稳定性偶尔会有波动,必要时可配置代理。
## 更灵活的选择:TokenPocket API 中转站
虽然 DeepSeek 官方的 API 已经非常易用,但如果你需要同时调用多个模型,或者习惯用 USDT 支付、想避免繁琐的海外信用卡绑定,可以试试 [TokenPocket API 中转站](https://tokenpocket.site)。它原生支持 **DeepSeek、Qwen、Claude、Gemini** 等主流大模型,全部按量计费,价格透明,直接用 USDT 支付。新用户注册还会赠送免费额度,上手没有任何负担。把上文的 `base_url` 换成 TokenPocket 提供的地址,填入中转站后台创建的 API Key,就能无缝切换,甚至一个 Key 通吃多个模型,特别适合需要频繁对比模型效果的开发者。