Python调用DeepSeek API完整教程 2026

📅 2026-07-21 · ☕ 阅读时间约10分钟 · 📂 开发

DeepSeek不仅提供了免费的Web版和App端,还开放了强大的API接口,让开发者可以将DeepSeek的能力集成到自己的应用和自动化流程中。

相比OpenAI API,DeepSeek API的价格仅为1/10左右(输入$0.27/百万tokens、输出$1.10/百万tokens),对于需要大量调用API的场景来说,性价比极高。

本文从零开始,手把手教你用Python调用DeepSeek API。

一、准备工作

1. 注册DeepSeek账号并获取API Key

  1. 访问 DeepSeek 开放平台(platform.deepseek.com)
  2. 注册账号(支持手机号和邮箱)
  3. 登录后进入 API Keys 页面
  4. 创建一个新的API Key并保存(注意:关闭页面后不再显示完整Key)

2. 安装Python环境

确保你已经安装了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)

对于长文本生成场景,使用流式输出可以显著提升用户体验——用户不需要等待整个结果生成完毕。

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一样定义工具函数。

📌 延伸阅读:配合AI翻译工具对比了解DeepSeek在翻译场景的优势,或直接在赛博魔盒免费体验DeepSeek的对话能力。

🔧 推荐工具:
赛博魔盒AI对话 — 免费体验DeepSeek
汇率换算工具 — 汇率API集成参考
外贸邮件生成工具 — API调用生成邮件