第三章:DeepSeek 集成¶
简介¶
DeepSeek 是国产大模型,特点:
- 性价比极高:价格是 GPT-4 的 1/50
- 代码能力强:DeepSeek-Coder 专注代码生成
- 兼容 OpenAI:API 格式完全兼容
- 支持长文本:最大 128K 上下文
- 推理模型:R1 支持复杂推理
模型概览(2026)¶
| 模型 | 特点 | 适用场景 |
|---|---|---|
| deepseek-chat | 通用对话 | 日常对话、内容生成 |
| deepseek-reasoner | 推理模型 | 复杂推理、数学、代码 |
获取 API Key¶
- 访问 https://platform.deepseek.com/
- 注册并登录
- 创建 API Key
基本使用¶
初始化客户端¶
对话补全¶
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是一个助手"},
{"role": "user", "content": "你好"}
]
)
print(response.choices[0].message.content)
流式输出¶
stream = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "写一首诗"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
DeepSeek Reasoner(R1 推理模型)¶
R1 是 DeepSeek 的推理模型,擅长复杂推理、数学和代码:
推理任务¶
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=[
{
"role": "user",
"content": "一个球从 100 米高处自由落体,每次反弹高度是原来的一半,问总共走了多少米?"
}
]
)
print(response.choices[0].message.content)
代码生成¶
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=[
{
"role": "user",
"content": "用 Python 实现一个 LRU 缓存,支持 get 和 put 操作"
}
]
)
print(response.choices[0].message.content)
数学问题¶
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=[
{
"role": "user",
"content": "证明:根号2是无理数"
}
]
)
print(response.choices[0].message.content)
高级功能¶
函数调用¶
tools = [
{
"type": "function",
"function": {
"name": "search_web",
"description": "搜索互联网获取信息",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "搜索关键词"}
},
"required": ["query"]
}
}
}
]
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "今天北京天气怎么样"}],
tools=tools
)
if response.choices[0].message.tool_calls:
tool_call = response.choices[0].message.tool_calls[0]
print(f"调用函数: {tool_call.function.name}")
print(f"参数: {tool_call.function.arguments}")
JSON 输出¶
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "列出三个水果,返回JSON格式"}],
response_format={"type": "json_object"}
)
import json
data = json.loads(response.choices[0].message.content)
print(data)
FIM 补全(Fill-In-the-Middle)¶
DeepSeek 支持代码补全模式:
response = client.completions.create(
model="deepseek-chat",
prompt="def fibonacci(n):\n # 计算斐波那契数列\n ",
max_tokens=100
)
print(response.choices[0].text)
价格对比¶
| 模型 | 输入价格 | 输出价格 | 相当于 GPT-4 |
|---|---|---|---|
| deepseek-chat | ¥1/百万 tokens | ¥2/百万 tokens | 1/50 |
| deepseek-reasoner | ¥4/百万 tokens | ¥16/百万 tokens | 1/10 |
缓存价格(DeepSeek 也支持缓存): - 缓存命中:输入价格降低 75%
完整示例¶
from openai import OpenAI
class DeepSeekClient:
def __init__(self, api_key: str):
self.client = OpenAI(
api_key=api_key,
base_url="https://api.deepseek.com"
)
def chat(self, prompt: str, system: str = "你是一个助手", stream: bool = False):
"""普通对话"""
if stream:
return self._stream_chat(prompt, system)
return self._sync_chat(prompt, system)
def _sync_chat(self, prompt: str, system: str):
response = self.client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": system},
{"role": "user", "content": prompt}
]
)
return response.choices[0].message.content
def _stream_chat(self, prompt: str, system: str):
response = self.client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": system},
{"role": "user", "content": prompt}
],
stream=True
)
for chunk in response:
if chunk.choices[0].delta.content:
yield chunk.choices[0].delta.content
def reason(self, prompt: str):
"""复杂推理任务"""
response = self.client.chat.completions.create(
model="deepseek-reasoner",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
# 使用
client = DeepSeekClient("sk-xxx")
# 普通对话
answer = client.chat("介绍一下 Python")
print(answer)
# 流式输出
for text in client.chat("写一首诗", stream=True):
print(text, end="", flush=True)
# 复杂推理
result = client.reason("证明:所有素数大于等于2")
print(result)
DeepSeek vs GPT-5.4¶
| 对比项 | DeepSeek Chat | GPT-5.4 mini |
|---|---|---|
| 输入价格 | ¥1/1M (~$0.14) | $0.75/1M |
| 输出价格 | ¥2/1M (~$0.28) | $4.50/1M |
| 上下文长度 | 128K | 270K |
| 代码能力 | 强 | 强 |
| 推理能力 | 一般 | 强 |
| 多模态 | 无 | 有 |
选择建议: - 成本敏感 → DeepSeek Chat - 需要多模态 → GPT-5.4 - 复杂推理 → DeepSeek Reasoner 或 GPT-5.4
小结¶
本章学习了:
- ✅ DeepSeek 简介
- ✅ deepseek-chat 基本使用
- ✅ deepseek-reasoner 推理模型
- ✅ 函数调用和 JSON 输出
- ✅ 价格优势分析
下一章¶
第四章:通义千问集成 - 学习通义千问 Qwen3 API 使用。