DeepSeek大语言模型

更新时间:
复制为 MD 格式

本文档介绍如何在阿里云百炼平台通过OpenAI兼容接口或DashScope SDK调用DeepSeek系列模型。

快速开始

deepseek-v4-pro 是 DeepSeek 系列最新模型,支持通过enable_thinking参数设置思考与非思考模式。运行以下代码快速调用思考模式的 deepseek-v4-pro 模型。

需要已获取API Key并完成配置API Key到环境变量。如果通过SDK调用,需要安装 OpenAI 或 DashScope SDK

OpenAI兼容

说明

enable_thinking非 OpenAI 标准参数,OpenAI Python SDK 通过 extra_body传入,Node.js SDK 作为顶层参数传入。reasoning_effort是 OpenAI 标准参数,可直接作为顶层参数传入。

Python

示例代码

from openai import OpenAI
import os

# 初始化OpenAI客户端
client = OpenAI(
    # 如果没有配置环境变量,请用阿里云百炼API Key替换:api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

messages = [{"role": "user", "content": "你是谁"}]
completion = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=messages,
    # 通过 extra_body 设置 enable_thinking 开启思考模式
    extra_body={"enable_thinking": True},
    stream=True,
    stream_options={
        "include_usage": True
    },
)

reasoning_content = ""  # 完整思考过程
answer_content = ""  # 完整回复
is_answering = False  # 是否进入回复阶段
print("\n" + "=" * 20 + "思考过程" + "=" * 20 + "\n")

for chunk in completion:
    if not chunk.choices:
        print("\n" + "=" * 20 + "Token 消耗" + "=" * 20 + "\n")
        print(chunk.usage)
        continue

    delta = chunk.choices[0].delta

    # 只收集思考内容
    if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
        if not is_answering:
            print(delta.reasoning_content, end="", flush=True)
        reasoning_content += delta.reasoning_content

    # 收到content,开始进行回复
    if hasattr(delta, "content") and delta.content:
        if not is_answering:
            print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")
            is_answering = True
        print(delta.content, end="", flush=True)
        answer_content += delta.content

返回结果

====================思考过程====================

嗯,用户问了一个非常简单的自我介绍问题:"你是谁"。

我需要明确自己的身份,用简洁友好的方式介绍我是DeepSeek,说明我的创造者、基本特性和可提供的帮助。

想到了可以这样组织回答:先直接表明身份,说明由深度求索公司创造,然后列出一些关键特点(免费、长上下文、文件上传等),最后以友好的邀请结束,询问是否需要帮助。
====================完整回复====================

你好!我是 DeepSeek,由深度求索公司创造的 AI 助手。

我可以帮你解答各种问题、进行文字创作、分析文档、编程辅助等等。我最大的特点是**免费使用**、**超长上下文**(能一次处理整本三体三部曲那么多内容)、支持**文件上传**和**联网搜索**(需手动开启)。

有什么我可以帮你的吗?不管是学习、工作还是日常闲聊,我都很乐意陪你聊聊!
====================Token 消耗====================

CompletionUsage(completion_tokens=238, prompt_tokens=5, total_tokens=243, completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=None, audio_tokens=None, reasoning_tokens=93, rejected_prediction_tokens=None), prompt_tokens_details=None)

Node.js

示例代码

import OpenAI from "openai";
import process from 'process';

// 初始化OpenAI客户端
const openai = new OpenAI({
    // 如果没有配置环境变量,请用阿里云百炼API Key替换:apiKey: "sk-xxx"
    apiKey: process.env.DASHSCOPE_API_KEY, 
    baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1'
});

let reasoningContent = ''; // 完整思考过程
let answerContent = ''; // 完整回复
let isAnswering = false; // 是否进入回复阶段

async function main() {
    try {
        const messages = [{ role: 'user', content: '你是谁' }];
        
        const stream = await openai.chat.completions.create({
            model: 'deepseek-v4-pro',
            messages,
            // 注意:在 Node.js SDK,enable_thinking 这样的非标准参数作为顶层属性传递,无需放在 extra_body 中
            enable_thinking: true,
            stream: true,
            stream_options: {
                include_usage: true
            },
        });

        console.log('\n' + '='.repeat(20) + '思考过程' + '='.repeat(20) + '\n');

        for await (const chunk of stream) {
            if (!chunk.choices?.length) {
                console.log('\n' + '='.repeat(20) + 'Token 消耗' + '='.repeat(20) + '\n');
                console.log(chunk.usage);
                continue;
            }

            const delta = chunk.choices[0].delta;
            
            // 只收集思考内容
            if (delta.reasoning_content !== undefined && delta.reasoning_content !== null) {
                if (!isAnswering) {
                    process.stdout.write(delta.reasoning_content);
                }
                reasoningContent += delta.reasoning_content;
            }

            // 收到content,开始进行回复
            if (delta.content !== undefined && delta.content) {
                if (!isAnswering) {
                    console.log('\n' + '='.repeat(20) + '完整回复' + '='.repeat(20) + '\n');
                    isAnswering = true;
                }
                process.stdout.write(delta.content);
                answerContent += delta.content;
            }
        }
    } catch (error) {
        console.error('Error:', error);
    }
}

main();

返回结果

====================思考过程====================

嗯,用户问了一个非常简单的自我介绍问题:"你是谁"。

我需要明确自己的身份,用简洁友好的方式介绍我是DeepSeek,说明我的创造者、基本特性和可提供的帮助。

想到了可以这样组织回答:先直接表明身份,说明由深度求索公司创造,然后列出一些关键特点(免费、长上下文、文件上传等),最后以友好的邀请结束,询问是否需要帮助。
====================完整回复====================

你好!我是 DeepSeek,由深度求索公司创造的 AI 助手。

我可以帮你解答各种问题、进行文字创作、分析文档、编程辅助等等。我最大的特点是**免费使用**、**超长上下文**(能一次处理整本三体三部曲那么多内容)、支持**文件上传**和**联网搜索**(需手动开启)。

有什么我可以帮你的吗?不管是学习、工作还是日常闲聊,我都很乐意陪你聊聊!
====================Token 消耗====================

{
  prompt_tokens: 5,
  completion_tokens: 243,
  total_tokens: 248,
  completion_tokens_details: { reasoning_tokens: 83 }
}

HTTP

示例代码

curl

curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "deepseek-v4-pro",
    "messages": [
        {
            "role": "user", 
            "content": "你是谁"
        }
    ],
    "stream": true,
    "stream_options": {
        "include_usage": true
    },
    "enable_thinking": true
}'

DashScope

Python

示例代码

import os
from dashscope import Generation

# 初始化请求参数
messages = [{"role": "user", "content": "你是谁?"}]

completion = Generation.call(
    # 如果没有配置环境变量,请用阿里云百炼API Key替换:api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="deepseek-v4-pro",
    messages=messages,
    result_format="message",  # 设置结果格式为 message
    enable_thinking=True,
    stream=True,              # 开启流式输出
    incremental_output=True,  # 开启增量输出
)

reasoning_content = ""  # 完整思考过程
answer_content = ""     # 完整回复
is_answering = False    # 是否进入回复阶段

print("\n" + "=" * 20 + "思考过程" + "=" * 20 + "\n")

for chunk in completion:
    message = chunk.output.choices[0].message
    # 只收集思考内容
    if "reasoning_content" in message:
        if not is_answering:
            print(message.reasoning_content, end="", flush=True)
        reasoning_content += message.reasoning_content

    # 收到 content,开始进行回复
    if message.content:
        if not is_answering:
            print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")
            is_answering = True
        print(message.content, end="", flush=True)
        answer_content += message.content

print("\n" + "=" * 20 + "Token 消耗" + "=" * 20 + "\n")
print(chunk.usage)

返回结果

====================思考过程====================

嗯,用户问了一个非常简单的自我介绍问题:"你是谁"。

我需要明确自己的身份,用简洁友好的方式介绍我是DeepSeek,说明我的创造者、基本特性和可提供的帮助。

想到了可以这样组织回答:先直接表明身份,说明由深度求索公司创造,然后列出一些关键特点(免费、长上下文、文件上传等),最后以友好的邀请结束,询问是否需要帮助。
====================完整回复====================

你好!我是 DeepSeek,由深度求索公司创造的 AI 助手。

我可以帮你解答各种问题、进行文字创作、分析文档、编程辅助等等。我最大的特点是**免费使用**、**超长上下文**(能一次处理整本三体三部曲那么多内容)、支持**文件上传**和**联网搜索**(需手动开启)。

有什么我可以帮你的吗?不管是学习、工作还是日常闲聊,我都很乐意陪你聊聊!
====================Token 消耗====================

{"input_tokens": 6, "output_tokens": 240, "total_tokens": 246, "output_tokens_details": {"reasoning_tokens": 92}}

Java

示例代码

重要

DashScope Java SDK 版本需要不低于2.19.4。

// dashscope SDK的版本 >= 2.19.4
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import io.reactivex.Flowable;
import java.lang.System;
import java.util.Arrays;

public class Main {
    private static StringBuilder reasoningContent = new StringBuilder();
    private static StringBuilder finalContent = new StringBuilder();
    private static boolean isFirstPrint = true;
    private static void handleGenerationResult(GenerationResult message) {
        String reasoning = message.getOutput().getChoices().get(0).getMessage().getReasoningContent();
        String content = message.getOutput().getChoices().get(0).getMessage().getContent();
        if (reasoning != null && !reasoning.isEmpty()) {
            reasoningContent.append(reasoning);
            if (isFirstPrint) {
                System.out.println("====================思考过程====================");
                isFirstPrint = false;
            }
            System.out.print(reasoning);
        }
        if (content != null && !content.isEmpty()) {
            finalContent.append(content);
            if (!isFirstPrint) {
                System.out.println("\n====================完整回复====================");
                isFirstPrint = true;
            }
            System.out.print(content);
        }
    }
    private static GenerationParam buildGenerationParam(Message userMsg) {
        return GenerationParam.builder()
                // 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:.apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("deepseek-v4-pro")
                .enableThinking(true)
                .incrementalOutput(true)
                .resultFormat("message")
                .messages(Arrays.asList(userMsg))
                .build();
    }
    public static void streamCallWithMessage(Generation gen, Message userMsg)
            throws NoApiKeyException, ApiException, InputRequiredException {
        GenerationParam param = buildGenerationParam(userMsg);
        Flowable<GenerationResult> result = gen.streamCall(param);
        result.blockingForEach(message -> handleGenerationResult(message));
    }
    public static void main(String[] args) {
        try {
            Generation gen = new Generation();
            Message userMsg = Message.builder().role(Role.USER.getValue()).content("你是谁?").build();
            streamCallWithMessage(gen, userMsg);
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.err.println("An exception occurred: " + e.getMessage());
        }
    }
}

返回结果

====================思考过程====================

嗯,用户问了一个非常简单的自我介绍问题:"你是谁"。

我需要明确自己的身份,用简洁友好的方式介绍我是DeepSeek,说明我的创造者、基本特性和可提供的帮助。

想到了可以这样组织回答:先直接表明身份,说明由深度求索公司创造,然后列出一些关键特点(免费、长上下文、文件上传等),最后以友好的邀请结束,询问是否需要帮助。
====================完整回复====================

你好!我是 DeepSeek,由深度求索公司创造的 AI 助手。

我可以帮你解答各种问题、进行文字创作、分析文档、编程辅助等等。我最大的特点是**免费使用**、**超长上下文**(能一次处理整本三体三部曲那么多内容)、支持**文件上传**和**联网搜索**(需手动开启)。

有什么我可以帮你的吗?不管是学习、工作还是日常闲聊,我都很乐意陪你聊聊!

HTTP

示例代码

curl

curl -X POST "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-DashScope-SSE: enable" \
-d '{
    "model": "deepseek-v4-pro",
    "input":{
        "messages":[      
            {
                "role": "user",
                "content": "你是谁?"
            }
        ]
    },
    "parameters":{
        "enable_thinking": true,
        "incremental_output": true,
        "result_format": "message"
    }
}'

推理强度(reasoning_effort)

deepseek-v4-pro 和 deepseek-v4-flash 默认开启思考模式。通过reasoning_effort参数可以调整推理强度,可选值为highmax,默认为high

说明

设为lowmedium时会映射为high,设为xhigh时会映射为max

OpenAI兼容

Python

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

completion = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[{"role": "user", "content": "9.9和9.11哪个大"}],
    reasoning_effort="high",
)
print(completion.choices[0].message.content)

Node.js

import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1",
});

const completion = await openai.chat.completions.create({
    model: "deepseek-v4-pro",
    messages: [{ role: "user", content: "9.9和9.11哪个大" }],
    reasoning_effort: "high",
});
console.log(completion.choices[0].message.content);

curl

curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "deepseek-v4-pro",
    "messages": [{"role": "user", "content": "9.9和9.11哪个大"}],
    "reasoning_effort": "high"
}'

DashScope

import os
from dashscope import Generation

response = Generation.call(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="deepseek-v4-pro",
    messages=[{"role": "user", "content": "9.9和9.11哪个大"}],
    reasoning_effort="high",
    result_format="message",
)
print(response.output.choices[0].message.content)

其它功能

模型

多轮对话

Function Calling

联网搜索

上下文缓存

结构化输出

前缀续写

deepseek-v4-pro

支持

支持

支持

不支持

不支持

deepseek-v4-flash

支持

支持

支持

不支持

不支持

deepseek-v3.2

支持

支持

支持

支持

不支持

不支持

deepseek-v3.2-exp

支持

支持

仅支持非思考模式。

支持

不支持

不支持

不支持

deepseek-v3.1

支持

支持

仅支持非思考模式。

支持

支持

不支持

不支持

deepseek-r1

支持

支持

支持

支持

不支持

不支持

deepseek-r1-0528

支持

支持

支持

不支持

不支持

不支持

deepseek-v3

支持

支持

支持

支持

不支持

不支持

蒸馏模型

支持

不支持

不支持

不支持

不支持

不支持

参数默认值

模型

temperature

top_p

repetition_penalty

presence_penalty

max_tokens

thinking_budget

deepseek-v4-pro

1.0

1.0

-

-

393,216

deepseek-v4-flash

1.0

1.0

-

-

393,216

deepseek-v3.2

1.0

0.95

-

-

65,536

32,768

deepseek-v3.2-exp

0.6

0.95

1.0

-

65,536

32,768

deepseek-v3.1

0.6

0.95

1.0

-

65,536

32,768

deepseek-r1

0.6

0.95

-

1

16,384

32,768

deepseek-r1-0528

0.6

0.95

-

1

16,384

32,768

蒸馏版

0.6

0.95

-

1

16,384

16,384

deepseek-v3

0.7

0.6

-

-

16,384

-

  • “-” 表示没有默认值,也不支持设置。

  • deepseek-r1、deepseek-r1-0528、蒸馏版模型不支持设置以上参数值。

  • 参数含义请参考OpenAI Chat

模型列表与计费

  • 混合思考模型(通过enable_thinking参数控制是否思考):deepseek-v4-pro、deepseek-v4-flash、deepseek-v3.2、deepseek-v3.2-exp、deepseek-v3.1

  • 仅思考模型(回复前总会思考):deepseek-r1、deepseek-r1-0528

  • 非思考模型:deepseek-v3

deepseek-v4-pro 性能比肩顶级闭源模型,deepseek-v4-flash 快捷高效,推荐优先使用。

模型上下文长度与价格信息请参见百炼控制台。

按照模型的输入与输出 Token 计费。

思考模式下,思维链按照输出 Token 计费。

常见问题

免费额度用完后如何购买 Token?

访问费用与成本中心进行充值,确保您的账户没有欠费即可调用 DeepSeek 模型。

调用 DeepSeek 模型会自动扣费,出账周期为分钟级,消费明细请前往账单详情进行查看。

如何接入ChatboxCherry StudioDify

此处以使用较多的工具为例,其它大模型工具接入的方法较为类似。

Chatbox

请参见Chatbox

Cherry Studio

请参见Cherry Studio

Dify

请参见Dify

可以上传图片或文档进行提问吗

DeepSeek 模型仅支持文本输入,不支持输入图片或文档。千问VL模型支持图片输入,Qwen-Long模型支持文档输入。

如何查看Token消耗调用次数?

模型调用完一小时后,在模型观测页面设置查询条件(例如,选择时间范围、业务空间等),再在模型列表区域找到目标模型并单击操作列的监控,即可查看该模型的调用统计结果。具体请参见模型监控文档。

数据按小时更新,高峰期可能有小时级延迟,请您耐心等待。

image

还有哪些使用DeepSeek的方式?

在百炼平台使用DeepSeek有三种方式:

  1. 在线体验:访问模型广场

  2. 通过API或客户端(如Chatbox)调用模型:请参考本文内容。

  3. 0代码构建大模型应用:请参考智能体应用工作流应用

除此之外,如需自行部署DeepSeek然后再调用,请参考技术解决方案

错误码

如果执行报错,请参见错误信息进行解决。