Global API
← Back to Blog

如何使用 Python 调用 DeepSeek API:完整指南(2026)

2026-05-05 — by Global API Team

如何使用 Python 调用 DeepSeek API:完整指南(2026)
deepseek-apipython-tutorialdeepseek-pythonllm-apiopenai-sdk-pythondeepseek-chatai-api-tutorialdeepseek-v4-flashtutorial

如何使用 Python 调用 DeepSeek API:完整指南(2026)

DeepSeek 的模型以极低的成本提供 GPT-4 级别的性能——DeepSeek V4 Flash 的定价为 $0.14/1M 输入 tokens 和 $0.28/1M 输出 tokens。本指南将带你逐步了解用 Python 调用 DeepSeek API 的全部知识:安装、身份认证、聊天补全、流式响应、函数调用、错误处理和成本优化模式。

太长不看:DeepSeek 的 API 完全兼容 OpenAI。安装 openai,将 base_url 指向 https://global-apis.com/v1,你现有的 OpenAI 代码就能直接运行——成本降低 74%。


前置条件

  • Python 3.9+
  • 一个 DeepSeek API key —— 免费获取(100 额度,无需信用卡):https://global-apis.com/register
  • 基本的 Python 和 REST API 使用经验

1. 安装

DeepSeek 的 API 遵循 OpenAI 规范,因此你直接使用官方的 openai Python 包——不需要特定厂商的 SDK。

pip install openai

就这些。基本使用无需额外安装其他包。


2. 身份认证与客户端设置

方案 A:环境变量(推荐)

将 API key 设为环境变量,避免在源文件中硬编码:

# Linux / macOS
export DEEPSEEK_API_KEY="a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"

# Windows (PowerShell)
$env:DEEPSEEK_API_KEY = "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"

然后初始化客户端:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://global-apis.com/v1",
)

方案 B:内联(仅用于快速测试)

from openai import OpenAI

client = OpenAI(
    api_key="a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",  # 替换为你的 key
    base_url="https://global-apis.com/v1",
)

⚠️ 永远不要将真实的 API key 提交到版本控制中。在生产环境中使用环境变量或密钥管理器。


3. 你的第一次聊天补全

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://global-apis.com/v1",
)

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "你是一个有用的 Python 编程助手。"},
        {"role": "user", "content": "写一个 Python 函数来展平嵌套列表。"},
    ],
    temperature=0.7,
    max_tokens=512,
)

print(response.choices[0].message.content)
print(f"\nToken 用量 — 输入:{response.usage.prompt_tokens},输出:{response.usage.completion_tokens}")

示例输出:

def flatten(nested_list):
    result = []
    for item in nested_list:
        if isinstance(item, list):
            result.extend(flatten(item))
        else:
            result.append(item)
    return result

Token 用量 — 输入:38,输出:71

4. 选择合适的模型

Global API 提供两个 DeepSeek 模型:

| 模型 | 最适合 | 输入价格 | 输出价格 | |-------|----------|-------------|--------------| | deepseek-chat | 日常任务:摘要、代码辅助、问答、翻译 | $0.14/1M tokens | $0.28/1M tokens | | deepseek-reasoner | 复杂推理:数学证明、多步逻辑、代码调试 | $0.55/1M tokens | $2.19/1M tokens |

经验法则:从 deepseek-chat 开始。仅当任务真正需要多步逻辑推理时才切换到 deepseek-reasoner——它的输出 token 价格大约贵 8 倍。

# 对于复杂推理任务
response = client.chat.completions.create(
    model="deepseek-reasoner",
    messages=[
        {"role": "user", "content": "证明根号 2 是无理数。"}
    ],
    max_tokens=1024,
)

5. 流式响应

对于聊天机器人 UI 或任何对延迟敏感的场景,使用流式输出来在 token 生成时即时显示:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://global-apis.com/v1",
)

stream = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "user", "content": "用简单的语言解释 Python 的 async/await。"}
    ],
    stream=True,
)

print("响应:", end="", flush=True)
for chunk in stream:
    delta = chunk.choices[0].delta
    if delta.content is not None:
        print(delta.content, end="", flush=True)

print()  # 末尾换行

流式输出可将首个 token 的到达时间从约 2 秒缩短到约 200 毫秒,大幅提升交互式应用的感知性能。


6. 多轮对话

为了在多轮对话中保持上下文,在每次请求中传递完整的对话历史:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://global-apis.com/v1",
)

def chat(messages: list[dict]) -> str:
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=messages,
        temperature=0.7,
    )
    return response.choices[0].message.content

# 构建对话历史
history = [
    {"role": "system", "content": "你是一个简洁的技术助手。"}
]

user_inputs = [
    "什么是 Python 装饰器?",
    "能给我一个实用示例吗?",
    "现在把它改成重试装饰器。",
]

for user_message in user_inputs:
    history.append({"role": "user", "content": user_message})
    reply = chat(history)
    history.append({"role": "assistant", "content": reply})
    print(f"用户:{user_message}")
    print(f"助手:{reply}\n{'─' * 60}")

技巧提示:在长对话中控制成本,当对话超出你的 token 预算时,从 history 中裁剪旧消息。保留系统提示和最后 N 轮对话即可。


7. 函数调用(工具使用)

DeepSeek 支持兼容 OpenAI 的函数调用。这让模型可以决定何时调用你的代码:

import json
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://global-apis.com/v1",
)

# 定义可用工具
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "获取某个城市的当前天气",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string",
                        "description": "城市名称,例如 '北京'"
                    },
                    "unit": {
                        "type": "string",
                        "enum": ["celsius", "fahrenheit"],
                        "description": "温度单位"
                    }
                },
                "required": ["city"],
            },
        },
    }
]

def get_weather(city: str, unit: str = "celsius") -> dict:
    """演示桩函数——替换为真实的天气 API 调用。"""
    return {"city": city, "temperature": 22, "unit": unit, "condition": "晴天"}

messages = [{"role": "user", "content": "东京的天气怎么样?"}]

# 第一次 API 调用——模型决定是否调用函数
response = client.chat.completions.create(
    model="deepseek-chat",
    messages=messages,
    tools=tools,
    tool_choice="auto",
)

message = response.choices[0].message

# 检查模型是否想调用函数
if message.tool_calls:
    tool_call = message.tool_calls[0]
    fn_name = tool_call.function.name
    fn_args = json.loads(tool_call.function.arguments)

    # 执行函数
    fn_result = get_weather(**fn_args)

    # 追加函数结果并获取最终响应
    messages.append(message)
    messages.append({
        "role": "tool",
        "tool_call_id": tool_call.id,
        "content": json.dumps(fn_result),
    })

    final_response = client.chat.completions.create(
        model="deepseek-chat",
        messages=messages,
    )
    print(final_response.choices[0].message.content)
else:
    print(message.content)

8. 错误处理与重试

生产代码需要健壮的错误处理。这是一个带指数退避的模式:

import os
import time
import random
from openai import OpenAI, RateLimitError, APITimeoutError, APIConnectionError

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://global-apis.com/v1",
    timeout=30.0,
)

def chat_with_retry(messages: list[dict], max_retries: int = 3, **kwargs) -> str:
    """在发生瞬时错误时,以指数退避重试调用 API。"""
    for attempt in range(max_retries):
        try:
            response = client.chat.completions.create(
                model="deepseek-chat",
                messages=messages,
                **kwargs,
            )
            return response.choices[0].message.content

        except RateLimitError:
            if attempt == max_retries - 1:
                raise
            wait = (2 ** attempt) + random.uniform(0, 1)
            print(f"速率受限。{wait:.1f} 秒后重试...")
            time.sleep(wait)

        except (APITimeoutError, APIConnectionError) as e:
            if attempt == max_retries - 1:
                raise
            wait = (2 ** attempt) + random.uniform(0, 1)
            print(f"网络错误:{e}。{wait:.1f} 秒后重试...")
            time.sleep(wait)

    raise RuntimeError("超过最大重试次数")  # 正常流程不应到达此处

# 使用
result = chat_with_retry(
    messages=[{"role": "user", "content": "用一段话总结 Python GIL。"}],
    temperature=0.5,
    max_tokens=200,
)
print(result)

9. 追踪 Token 用量与成本

以 DeepSeek V4 Flash 的定价($0.14/1M 输入,$0.28/1M 输出),即使是重度工作负载成本也非常低。以下是如何仪表化成本追踪:

import os
from dataclasses import dataclass, field
from openai import OpenAI

INPUT_COST_PER_TOKEN  = 0.14 / 1_000_000   # $0.14 每 1M 输入 tokens
OUTPUT_COST_PER_TOKEN = 0.28 / 1_000_000   # $0.28 每 1M 输出 tokens

@dataclass
class UsageTracker:
    total_input_tokens: int = 0
    total_output_tokens: int = 0
    request_count: int = 0
    total_cost_usd: float = field(init=False, default=0.0)

    def record(self, usage):
        self.total_input_tokens  += usage.prompt_tokens
        self.total_output_tokens += usage.completion_tokens
        self.request_count       += 1
        self.total_cost_usd = (
            self.total_input_tokens  * INPUT_COST_PER_TOKEN +
            self.total_output_tokens * OUTPUT_COST_PER_TOKEN
        )

    def report(self):
        print(f"请求数:       {self.request_count}")
        print(f"输入 tokens:   {self.total_input_tokens:,}")
        print(f"输出 tokens:   {self.total_output_tokens:,}")
        print(f"预估成本:     ${self.total_cost_usd:.6f}")

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://global-apis.com/v1",
)
tracker = UsageTracker()

prompts = [
    "解释列表推导式。",
    "什么是 Python 上下文管理器?",
    "什么时候应该用生成器而不是列表?",
]

for prompt in prompts:
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{"role": "user", "content": prompt}],
        max_tokens=200,
    )
    tracker.record(response.usage)

tracker.report()
# 输出(近似):
# 请求数:       3
# 输入 tokens:   51
# 输出 tokens:   462
# 预估成本:     $0.000136

10. 使用 asyncio 异步调用

对于高吞吐量应用,使用异步客户端并发运行多个请求:

import asyncio
import os
from openai import AsyncOpenAI

async_client = AsyncOpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://global-apis.com/v1",
)

async def summarize(text: str) -> str:
    response = await async_client.chat.completions.create(
        model="deepseek-chat",
        messages=[
            {"role": "system", "content": "用一句话总结以下内容。"},
            {"role": "user",   "content": text},
        ],
        max_tokens=100,
    )
    return response.choices[0].message.content

async def main():
    documents = [
        "Python 由 Guido van Rossum 创建,于 1991 年发布...",
        "机器学习是人工智能的一个子集,它...",
        "REST API 使用 HTTP 方法对资源执行 CRUD 操作...",
    ]

    # 并发运行所有请求
    results = await asyncio.gather(*[summarize(doc) for doc in documents])

    for doc, summary in zip(documents, results):
        print(f"原文:   {doc[:60]}...")
        print(f"摘要:   {summary}\n")

asyncio.run(main())

并发运行 3 个请求将总延迟从约 6 秒(顺序执行)缩短到约 2 秒(并行执行)。


11. 成本优化技巧

1. 每个请求都设置 max_tokens

不设置 max_tokens 时,模型可能生成非常长的响应。设置合理上限:

# 不好 — 无限制输出,成本不可预测
response = client.chat.completions.create(model="deepseek-chat", messages=[...])

# 好 — 限制在 500 tokens
response = client.chat.completions.create(model="deepseek-chat", messages=[...], max_tokens=500)

2. 裁剪对话历史

多轮对话中的每一轮都按完整上下文长度计费。大约 10 轮之后,总结旧消息:

def trim_history(history: list[dict], max_turns: int = 6) -> list[dict]:
    system = [m for m in history if m["role"] == "system"]
    non_system = [m for m in history if m["role"] != "system"]
    return system + non_system[-max_turns * 2:]

3. 大多数任务使用 deepseek-chat

deepseek-reasoner 贵大约 8 倍。仅将真正复杂的推理任务路由到它:

def pick_model(prompt: str) -> str:
    reasoning_keywords = {"证明", "推导", "优化", "调试", "逐步分析"}
    if any(kw in prompt.lower() for kw in reasoning_keywords):
        return "deepseek-reasoner"
    return "deepseek-chat"

4. 缓存频繁的提示

如果用户反复提出相同的问题,使用 Redis 或本地字典缓存响应:

import hashlib, json

_cache: dict[str, str] = {}

def cached_chat(messages: list[dict]) -> str:
    key = hashlib.md5(json.dumps(messages, sort_keys=True).encode()).hexdigest()
    if key in _cache:
        return _cache[key]
    result = chat_with_retry(messages)  # 来自第 8 节
    _cache[key] = result
    return result

实际成本估算

| 使用场景 | 月用量 | 预估成本 | |----------|---------------|----------------| | 内部 Slack 机器人(简短问答) | 5 万次请求 / 1 亿 tokens | ~$21/月 | | 客服聊天机器人 | 20 万次请求 / 5 亿 tokens | ~$98/月 | | 代码审查流水线(CI/CD) | 1 万次 PR / 2 亿 tokens | ~$42/月 | | 文档摘要(RAG) | 100 万份文档 / 20 亿 tokens | ~$420/月 |

相比之下,GPT-4o($2.50/1M 输入,$10/1M 输出)在相同用量下:仅 Slack 机器人一项就要花费 $330/月——贵了 15 倍。

想要永不过期且无月费的额度?查看 Global API 额度包


快速参考

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://global-apis.com/v1",
)

# 聊天补全
r = client.chat.completions.create(
    model="deepseek-chat",          # 或 "deepseek-reasoner"
    messages=[{"role": "user", "content": "你好!"}],
    temperature=0.7,                # 0 = 确定,1 = 创造性
    max_tokens=512,
    stream=False,
)
print(r.choices[0].message.content)
print(r.usage.prompt_tokens, r.usage.completion_tokens)

| 参数 | 值 | 默认值 | |-----------|--------|---------| | model | deepseek-chat, deepseek-reasoner | — | | temperature | 0.0 – 2.0 | 1.0 | | max_tokens | 1 – 8192 | 模型最大值 | | stream | True / False | False | | top_p | 0.0 – 1.0 | 1.0 |


常见问题

我需要为 DeepSeek 安装特殊的 SDK 吗?
不需要。DeepSeek 的 API 是 OpenAI 兼容的。只需要 pip install openai

上下文窗口有多大?
deepseek-chat 每个请求最多支持 64K tokens(输入 + 输出合并计算)。

API 有速率限制吗?
Global API 对每个账号设有速率限制。对于高用量场景,请联系我们——我们提供自定义速率限制提升。

我能将 LangChain 或 LlamaIndex 与 DeepSeek 一起使用吗?
可以。在 LangChain 中设置 openai_api_base,或在 LlamaIndex 中设置 openai_base_urlhttps://global-apis.com/v1。你现有的链路无需修改即可运行。

额度如何运作?
1 额度 = $0.01。DeepSeek V4 Flash 每 1M 输入 tokens 消耗 14 额度,每 1M 输出 tokens 消耗 28 额度。额度永不过期。


立即开始

你现在已经掌握用 Python 调用 DeepSeek API 的所有必备知识——身份认证、聊天补全、流式输出、函数调用、异步使用和成本追踪。

免费开始: https://global-apis.com/register — 100 免费额度,无需信用卡。
了解定价: https://global-apis.com/pricing — 额度包从 $19.99 起。

有问题或遇到困难?通过面板给我们发送消息——我们很乐意帮助。

相关文章


开始使用 Global API 构建

注册即获 100 免费额度——无需信用卡。用一个兼容 OpenAI 的 API key 访问 180+ AI 模型(DeepSeek、Qwen、Kimi、GLM、Doubao 等)。

👉 免费开始 →

支持 PayPal(Visa、Mastercard、Amex)。5 分钟即可完成设置。

Article Series

Part of DeepSeek API Complete Guide

Everything you need to build with the DeepSeek API — models, pricing, code examples, and best practices.

  1. 📖DeepSeek API Complete Guide← Start here
  2. 01DeepSeek API Complete Beginner's Guide 2026: From Zero to Production
  3. 02DeepSeek V4 Flash Complete Review: Benchmarks, Code Examples & Implementation Tips
  4. 03deepseek-v4-flash-review
  5. 04DeepSeek API Pricing Guide 2026: Complete Cost Breakdown & Savings Calculator
  6. 05How to Use DeepSeek API with Python: Complete Guide (2026)You are here
  7. 06deepseek-api-javascript-tutorial
  8. 07deepseek-coder-api-guide-2026
  9. 08deepseek-vs-openai-comparison
  10. 09deepseek-vs-qwen-vs-kimi-vs-glm-2026
  11. 10How to Migrate from OpenAI to DeepSeek in 10 Minutes (Complete Guide)
  12. 11OpenAI API Alternative 2026: Top 10 Cheapest Options (Tested & Ranked)
  13. 12build-ai-chat-app-deepseek-api
  14. 13ai-api-latency-comparison-2026

Related Articles

Cheapest DeepSeek API in 2026: Complete Buying GuideAI API Cost Comparison 2026: GPT-4o vs Claude vs DeepSeek vs GeminiDeepSeek API Pricing Guide 2026: Complete Cost Breakdown & Savings Calculator

Start Building with Global API

100 free credits on signup. 180+ AI models, one API key. PayPal accepted.

View Pricing →

© 2026 Global API. All rights reserved.