DeepSeek不仅提供了免费的Web版和App端,还开放了强大的API接口,让开发者可以将DeepSeek的能力集成到自己的应用和自动化流程中。
相比OpenAI API,DeepSeek API的价格仅为1/10左右(输入$0.27/百万tokens、输出$1.10/百万tokens),对于需要大量调用API的场景来说,性价比极高。
本文从零开始,手把手教你用Python调用DeepSeek API。
确保你已经安装了Python 3.8+,然后安装OpenAI Python库(DeepSeek API兼容OpenAI的接口格式):
pip install openai
DeepSeek API完全兼容OpenAI的API格式,只需修改base_url和api_key即可。
from openai import OpenAI
client = OpenAI(
api_key="your-deepseek-api-key",
base_url="https://api.deepseek.com"
)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是一个专业的跨境电商助理"},
{"role": "user", "content": "请帮我写一封英文开发信"}
],
temperature=0.7,
max_tokens=2000
)
print(response.choices[0].message.content)
对于长文本生成场景,使用流式输出可以显著提升用户体验——用户不需要等待整个结果生成完毕。
stream = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "user", "content": "写一篇500字的跨境电商文章"}
],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")
以下是一个批量翻译产品标题的实战示例:
import json
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://api.deepseek.com"
)
products = [
"2026新款女士防水户外夹克",
"无线蓝牙耳机降噪版",
"便携式充电宝20000mAh"
]
system_prompt = """你是一个跨境电商翻译专家。
将中文产品标题翻译成美式英语标题。
要求:
- 符合Amazon标题规范
- 关键词前置
- 用词地道
- 返回JSON数组格式
"""
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": json.dumps(products, ensure_ascii=False)}
],
response_format={"type": "json_object"}
)
result = json.loads(response.choices[0].message.content)
print(json.dumps(result, indent=2, ensure_ascii=False))
import time
from openai import OpenAI, APIError, RateLimitError, APITimeoutError
client = OpenAI(api_key="your-key", base_url="https://api.deepseek.com")
def call_deepseek_with_retry(messages, max_retries=3):
for attempt in range(max_retries):
try:
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
timeout=30
)
return response.choices[0].message.content
except RateLimitError:
wait = 2 ** attempt
print(f"Rate limited, waiting {wait}s...")
time.sleep(wait)
except APITimeoutError:
print(f"Timeout on attempt {attempt + 1}")
except APIError as e:
print(f"API Error: {e}")
raise
raise Exception("Max retries exceeded")
了解API成本对于预算控制非常重要。DeepSeek的定价是行业最低之一:
Q: DeepSeek API和OpenAI API能完全兼容吗?
A: 核心功能完全兼容(聊天补全、嵌入),但部分高级功能(如Assistants API、DALL-E)不支持。
Q: API调用的频率限制是多少?
A: 免费版每分钟60次请求,付费版根据套餐不同有更高额度。
Q: DeepSeek API支持function calling吗?
A: 支持。你可以像调用OpenAI Function Calling一样定义工具函数。