技术教程15 分钟

2025最新DeepSeek R1 API完全使用指南:三种调用方法详解【保姆级教程】

本文详细介绍了DeepSeek R1 API的三种调用方法,包括官方API、硅基流动API和OpenRouter,提供了完整的代码示例和最佳实践,帮助开发者和普通用户轻松接入DeepSeek R1大模型。

Cursor团队
Cursor团队·AI应用专家

2025最新DeepSeek R1 API完全使用指南:三种调用方法详解【保姆级教程】

DeepSeek R1 API使用指南封面图

引言:为什么选择DeepSeek R1?

DeepSeek R1作为2025年最受欢迎的开源大模型之一,凭借其卓越的推理能力和强大的代码生成能力,已经成为众多开发者和企业的首选。与其他大模型相比,DeepSeek R1具有以下显著优势:

  • 强大的推理能力:在复杂推理任务上表现出色,超越同类开源模型
  • 优秀的代码能力:代码生成、调试和解释能力接近闭源商业模型
  • 开放的生态系统:提供多种调用方式,适合不同用户需求
  • 中英双语优化:对中文有着良好的理解和生成能力
  • 持续更新迭代:模型不断优化,性能持续提升

本文将详细介绍DeepSeek R1 API的三种调用方法,无论您是专业开发者还是AI爱好者,都能找到最适合自己的接入方式。

DeepSeek R1 API三种调用方法对比

在开始详细教程前,让我们先对三种调用方法进行对比,帮助您快速选择最适合自己的方案:

DeepSeek R1 API三种调用方法对比

从上图可以看出:

  • 官方API:功能最全,但需要国外信用卡和繁琐认证,适合企业用户
  • 硅基流动API:操作简单,支持人民币付款,国内直接访问,适合个人用户
  • OpenRouter:一个API可调用多种模型,适合需要对比多个模型的用户

接下来,我们将详细介绍这三种方法的具体实现步骤。

方法一:官方API调用DeepSeek R1

官方API是直接从DeepSeek官方获取API密钥并调用的方式,具有功能最全、模型最新的优势。

官方API调用DeepSeek R1步骤

步骤1:注册DeepSeek账号并创建API Key

  1. 访问DeepSeek API文档
  2. 点击右上角"Sign Up"注册账号
  3. 登录后进入控制台,点击"API Keys"创建新的API密钥
  4. 注意:此步骤需要绑定国外信用卡进行验证

提示:首次注册用户通常会获得一定的免费额度,可用于测试和小规模应用。

步骤2:安装OpenAI兼容的Python SDK

DeepSeek R1 API兼容OpenAI的接口规范,因此我们可以直接使用OpenAI的Python SDK:

hljs bash
pip install openai

步骤3:编写Python代码调用DeepSeek R1

以下是一个基本的调用示例:

hljs python
from openai import OpenAI

# 初始化客户端
client = OpenAI(
    api_key="your_api_key_here",  # 替换为你的API密钥
    base_url="https://api.deepseek.com/v1"  # DeepSeek的API基础URL
)

# 创建聊天完成请求
response = client.chat.completions.create(
    model="deepseek-reasoner",  # 指定使用DeepSeek R1模型
    messages=[
        {"role": "system", "content": "你是一个有用的AI助手。"},
        {"role": "user", "content": "解释量子计算的基本原理"}
    ],
    temperature=0.7,  # 控制输出的随机性
    max_tokens=1000   # 控制回复的最大长度
)

# 打印回复内容
print(response.choices[0].message.content)

官方API高级用法

除了基本的聊天完成功能,DeepSeek R1官方API还支持以下高级功能:

1. 流式输出(Streaming)

流式输出可以实现类似ChatGPT那样的打字机效果,提升用户体验:

hljs python
stream = client.chat.completions.create(
    model="deepseek-reasoner",
    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)

2. 函数调用(Function Calling)

DeepSeek R1支持函数调用功能,可以让模型调用预定义的函数:

hljs python
def get_weather(location, unit="celsius"):
    """获取指定位置的天气信息"""
    # 这里应该是实际的天气API调用
    return {"location": location, "temperature": 22, "unit": unit}

response = client.chat.completions.create(
    model="deepseek-reasoner",
    messages=[{"role": "user", "content": "北京今天的天气怎么样?"}],
    tools=[{
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "获取指定位置的天气信息",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "城市名称,如'北京'、'上海'"
                    },
                    "unit": {
                        "type": "string",
                        "enum": ["celsius", "fahrenheit"],
                        "description": "温度单位"
                    }
                },
                "required": ["location"]
            }
        }
    }]
)

# 处理模型的函数调用请求
tool_call = response.choices[0].message.tool_calls[0]
if tool_call.function.name == "get_weather":
    import json
    args = json.loads(tool_call.function.arguments)
    weather_info = get_weather(args["location"], args.get("unit", "celsius"))
    
    # 将函数执行结果发回模型
    final_response = client.chat.completions.create(
        model="deepseek-reasoner",
        messages=[
            {"role": "user", "content": "北京今天的天气怎么样?"},
            response.choices[0].message,
            {
                "role": "tool",
                "tool_call_id": tool_call.id,
                "content": json.dumps(weather_info)
            }
        ]
    )
    print(final_response.choices[0].message.content)

方法二:硅基流动API调用DeepSeek R1

硅基流动API是国内用户访问DeepSeek R1最便捷的方式,无需科学上网,支持人民币付款。

硅基流动API调用DeepSeek R1步骤

步骤1:注册硅基流动账号并获取API Key

  1. 访问硅基流动官网
  2. 注册账号并登录
  3. 在个人中心找到"API密钥"选项,创建新的API密钥
  4. 充值余额(支持支付宝、微信支付等多种方式)

优势:无需科学上网,支持人民币付款,操作简单直观。

步骤2:安装OpenAI兼容的Python SDK

与官方API相同,硅基流动API也兼容OpenAI的接口规范:

hljs bash
pip install openai

步骤3:编写Python代码调用DeepSeek R1

hljs python
from openai import OpenAI

# 初始化客户端
client = OpenAI(
    api_key="your_siliconflow_api_key",  # 替换为你的硅基流动API密钥
    base_url="https://api.siliconflow.cn/v1"  # 硅基流动的API基础URL
)

# 创建聊天完成请求
response = client.chat.completions.create(
    model="deepseek-reason/deepseek-reasoner",  # 注意模型名称与官方略有不同
    messages=[
        {"role": "user", "content": "解释量子计算的基本原理"}
    ]
)

# 打印回复内容
print(response.choices[0].message.content)

硅基流动API的特点

硅基流动API除了提供基本的DeepSeek R1调用功能外,还有以下特点:

  1. 国内直接访问:无需科学上网,访问速度更快
  2. 人民币计费:支持支付宝、微信等支付方式,更适合国内用户
  3. 简化的接口:对API进行了优化,使用更加简单
  4. 中文技术支持:提供中文文档和技术支持

方法三:OpenRouter调用DeepSeek R1

OpenRouter是一个聚合多种大模型API的平台,通过一个API可以调用包括DeepSeek R1在内的多种模型。

OpenRouter调用DeepSeek R1步骤

步骤1:注册OpenRouter账号并获取API Key

  1. 访问OpenRouter官网
  2. 注册账号并登录
  3. 在控制台创建新的API密钥
  4. 充值余额(支持信用卡、加密货币等多种支付方式)

步骤2:安装OpenAI兼容的Python SDK

OpenRouter同样兼容OpenAI的接口规范:

hljs bash
pip install openai

步骤3:编写Python代码调用DeepSeek R1

hljs python
from openai import OpenAI

# 初始化客户端
client = OpenAI(
    api_key="your_openrouter_api_key",  # 替换为你的OpenRouter API密钥
    base_url="https://openrouter.ai/api/v1"  # OpenRouter的API基础URL
)

# 创建聊天完成请求
response = client.chat.completions.create(
    model="deepseek/deepseek-reasoner",  # OpenRouter上的DeepSeek R1模型ID
    messages=[
        {"role": "user", "content": "解释量子计算的基本原理"}
    ]
)

# 打印回复内容
print(response.choices[0].message.content)

OpenRouter的独特优势

OpenRouter作为一个模型聚合平台,具有以下独特优势:

  1. 多模型统一接口:一个API可以调用多种大模型,方便对比和选择
  2. 智能路由:可以根据请求自动选择最适合的模型
  3. 成本优化:提供多种定价方案,可以根据需求选择最经济的模型
  4. 多种支付方式:支持信用卡、加密货币等多种支付方式

DeepSeek R1 API常见问题解答

1. DeepSeek R1与其他大模型相比有什么优势?

DeepSeek R1在推理能力和代码生成方面表现出色,特别是在复杂推理任务上,性能接近甚至超过一些闭源商业模型。此外,它对中文的支持也非常好,适合中文用户使用。

2. 三种API调用方式的价格对比如何?

  • 官方API:按token计费,通常为输入4美元/百万token,输出8美元/百万token
  • 硅基流动API:按字符计费,约0.01元/千字符,比官方略贵但支持人民币
  • OpenRouter:按token计费,价格略高于官方API,但提供多模型选择

3. 如何处理API调用中的错误?

常见错误处理示例:

hljs python
from openai import OpenAI, OpenAIError

client = OpenAI(api_key="your_api_key", base_url="your_base_url")

try:
    response = client.chat.completions.create(
        model="deepseek-reasoner",
        messages=[{"role": "user", "content": "你好"}]
    )
    print(response.choices[0].message.content)
except OpenAIError as e:
    print(f"API调用错误: {e}")

4. 如何优化API调用的成本?

  1. 合理设置max_tokens:只生成必要的内容长度
  2. 减少不必要的系统提示:精简system message可以节省输入token
  3. 批量处理请求:将多个小请求合并为一个大请求
  4. 使用缓存:对于重复查询实现本地缓存

5. 如何提高API调用的稳定性?

  1. 实现重试机制
hljs python
import time
from openai import OpenAI, OpenAIError

def call_api_with_retry(max_retries=3, backoff_factor=2):
    client = OpenAI(api_key="your_api_key", base_url="your_base_url")
    
    for attempt in range(max_retries):
        try:
            response = client.chat.completions.create(
                model="deepseek-reasoner",
                messages=[{"role": "user", "content": "你好"}]
            )
            return response
        except OpenAIError as e:
            if attempt < max_retries - 1:
                sleep_time = backoff_factor ** attempt
                print(f"尝试 {attempt+1} 失败: {e}. 等待 {sleep_time} 秒后重试...")
                time.sleep(sleep_time)
            else:
                print(f"达到最大重试次数. 最后错误: {e}")
                raise
  1. 使用代理服务:在网络不稳定的情况下,可以考虑使用代理服务提高连接稳定性
  2. 监控API状态:实现监控系统,及时发现并处理API异常

实际应用案例

案例1:智能客服系统

hljs python
from openai import OpenAI
import json

client = OpenAI(api_key="your_api_key", base_url="your_base_url")

# 客服知识库
knowledge_base = {
    "退款政策": "商品购买后7天内可无理由退款,需保持商品完好。",
    "配送时间": "正常情况下,订单确认后48小时内发货,物流时间约3-5天。",
    # 更多知识...
}

def customer_service_bot(user_query):
    response = client.chat.completions.create(
        model="deepseek-reasoner",
        messages=[
            {"role": "system", "content": "你是一个专业的客服助手,请根据提供的知识库回答用户问题。如果知识库中没有相关信息,请礼貌地表示你需要查询更多信息。"},
            {"role": "user", "content": f"用户问题: {user_query}\n\n知识库: {json.dumps(knowledge_base, ensure_ascii=False)}"}
        ],
        temperature=0.3  # 降低随机性,保持回答的一致性
    )
    return response.choices[0].message.content

# 测试客服机器人
print(customer_service_bot("我想了解一下你们的退款政策"))

案例2:代码助手

hljs python
from openai import OpenAI

client = OpenAI(api_key="your_api_key", base_url="your_base_url")

def code_assistant(language, task_description):
    response = client.chat.completions.create(
        model="deepseek-reasoner",
        messages=[
            {"role": "system", "content": f"你是一个专业的{language}编程助手。请提供简洁、高效、易于理解的代码。"},
            {"role": "user", "content": task_description}
        ],
        temperature=0.2,  # 降低随机性,生成更确定的代码
        max_tokens=2000   # 允许生成较长的代码
    )
    return response.choices[0].message.content

# 测试代码助手
python_task = "编写一个函数,接受一个字符串列表,返回其中最长的字符串。如果有多个最长字符串,返回第一个。"
print(code_assistant("Python", python_task))

总结与建议

通过本文的详细介绍,我们了解了DeepSeek R1 API的三种调用方法及其各自的优缺点:

  1. 官方API:功能最全,适合企业用户和专业开发者
  2. 硅基流动API:操作简单,适合国内个人用户和小型项目
  3. OpenRouter:多模型支持,适合需要对比多个模型的用户

根据您的具体需求和使用场景,可以选择最适合的调用方式:

  • 如果您是企业用户,需要最新功能和最全面的支持,建议选择官方API
  • 如果您是国内个人用户,希望操作简单且支持人民币付款,建议选择硅基流动API
  • 如果您需要同时使用多种大模型并进行对比,建议选择OpenRouter

无论选择哪种方式,DeepSeek R1都能为您的应用带来强大的AI能力,帮助您实现更智能、更高效的功能。

希望本文对您了解和使用DeepSeek R1 API有所帮助。如有任何问题,欢迎在评论区留言讨论!

参考资源

推荐阅读