DeepSeek大语言模型

本文介绍在阿里云百炼平台通过API调用DeepSeek系列模型的方法。

模型列表和计费

DeepSeek系列模型是由深度求索(DeepSeek)公司推出的大语言模型。

DeepSeek-V3.1 模型为混合推理架构模型,同时支持思考模式与非思考模式,思考模式下仅支持流式输出。

通过 enable_thinking参数控制思考模式开关,请参见深度思考

DeepSeek-R1 模型在后训练阶段大规模使用了强化学习技术,在仅有极少标注数据的情况下,极大提升了模型推理能力,尤其在数学、代码、自然语言推理等任务上。

deepseek-r1-0528deepseek-r1的升级版模型,相较于上一版模型,新版模型在复杂推理任务中的表现有了显著提升;在数学、编程与通用逻辑等多个基准测评中取得了优异成绩;增强了推理过程中的思考深度,导致响应时间长于上一版模型。

DeepSeek-V3 为MoE 模型,671B 参数,激活 37B,在 14.8T Token 上进行了预训练,在长文本、代码、数学、百科、中文能力上表现优秀。

20241226日发布,非2025324日发布版本。

DeepSeek-R1-Distill 系列模型是基于知识蒸馏技术,通过使用 DeepSeek-R1 生成的训练样本对 Qwen、Llama 等开源大模型进行微调训练后得到的增强型模型。

模型名称

上下文长度

最大输入

最大思维链长度

最大回复长度

输入成本

输出成本

免费额度

查看剩余额度

(Token数)

(每千Token)

deepseek-v3.1

685B 满血版模型,2025820日发布

131,072

98,304

32,768

65,536

0.004

0.012

100Token

有效期:百炼开通后180天内

deepseek-r1

685B 满血版模型,当前能力等同于deepseek-r1-0528

16,384

0.004

Batch调用:0.002

0.016

Batch调用:0.008

deepseek-r1-0528

685B 满血版模型,2025528日发布

0.004

0.016

deepseek-v3

参数量为 671B,20241226日发布

65,536

57,344

不涉及

8,192

0.002

Batch调用:0.001

0.008

Batch调用:0.004

deepseek-r1-distill-qwen-1.5b

基于 Qwen2.5-Math-1.5B

32,768

32,768

16,384

16,384

限时免费体验

deepseek-r1-distill-qwen-7b

基于 Qwen2.5-Math-7B

0.0005

0.001

100Token

有效期:百炼开通后180天内

deepseek-r1-distill-qwen-14b

基于 Qwen2.5-14B

0.001

0.003

deepseek-r1-distill-qwen-32b

基于 Qwen2.5-32B

0.002

0.006

deepseek-r1-distill-llama-8b

基于 Llama-3.1-8B

限时免费体验

deepseek-r1-distill-llama-70b

基于 Llama-3.3-70B

目前仅供免费体验

免费额度用完后不可调用,推荐使用Qwen3deepseek-v3.1Kimi作为替代模型

100Token

有效期:百炼开通后180天内

以上模型非集成第三方服务,均部署在阿里云百炼服务器上。
并发限流请参考DeepSeek 限流条件

快速开始

API 使用前提:已获取API Key并完成配置API Key到环境变量。如果通过SDK调用,需要安装 OpenAI 或 DashScope SDK(DashScope Java SDK 版本需要不低于2.19.4)。

如果您首次使用阿里云百炼,请参考首次调用通义千问API文档进行百炼服务的开通与计算环境的配置,并将步骤 2:调用大模型API代码中的model参数修改为上表中您需要调用的模型名称。
由于模型的思考过程较长,可能导致响应慢或超时,建议您优先使用流式输出方式调用。

OpenAI兼容

您可以通过 OpenAI SDK 或 OpenAI 兼容的HTTP方式快速体验DeepSeek模型。

Python

示例代码

import os
from openai import 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"
)

completion = client.chat.completions.create(
    model="deepseek-v3.1",  # 此处以 deepseek-v3.1 为例,可按需更换模型名称。
    messages=[
        {'role': 'user', 'content': '9.9和9.11谁大'}
    ]
)

# 判断是否有reasoning_content
# deepseek-v3.1默认不输出思考过程。如需输出思考过程,请参见流式输出的代码。
if hasattr(completion.choices[0].message, 'reasoning_content'):
    print("思考过程:")
    print(completion.choices[0].message.reasoning_content)

print("最终答案:")
print(completion.choices[0].message.content)

返回结果

最终答案:
比较 **9.9** 和 **9.11** 的大小:

1. **比较整数部分:**
   - 9.9 的整数部分是 **9**
   - 9.11 的整数部分是 **9**
   
   两者整数部分相同,继续比较小数部分。

2. **比较小数部分:**
   - 9.9 的小数部分可以看作 **0.90**
   - 9.11 的小数部分是 **0.11**
   
   0.90 > 0.11

因此,**9.9** 大于 **9.11**。

最终答案:
\[
\boxed{9.9 > 9.11}
\]

Node.js

示例代码

import OpenAI from "openai";

const openai = new OpenAI(
    {
        // 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:apiKey: "sk-xxx",
        apiKey: process.env.DASHSCOPE_API_KEY,
        baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
    }
);
const completion = await openai.chat.completions.create({
    model: "deepseek-v3.1",  // 此处以 deepseek-v3.1 为例,可按需更换模型名称。
    messages: [
        { role: "user", content: "9.9和9.11谁大" }
    ],
});

// 先if判断有没有reasoning_content,再打印
// deepseek-v3.1默认不输出思考过程。如需输出思考过程,请参见流式输出的代码。
if (completion.choices[0].message.reasoning_content) {
    console.log("思考过程:")
    console.log(completion.choices[0].message.reasoning_content)
}

console.log("最终答案:")
console.log(completion.choices[0].message.content)

返回结果

最终答案:
比较 \(9.9\) 和 \(9.11\) 的大小:

- \(9.9\) 可以写作 \(9.90\)(在十分位后补零),以便与 \(9.11\) 比较。
- 从整数部分看,两者都是 \(9\)。
- 比较小数部分:\(9.90\) 的十分位是 \(9\),而 \(9.11\) 的十分位是 \(1\),因此 \(9.90 > 9.11\)。

所以,\(9.9 > 9.11\)。

\boxed{9.9}

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-v3.1",
    "messages": [
        {
            "role": "user", 
            "content": "9.9和9.11谁大"
        }
    ]
}'

返回结果

{
    "choices": [
        {
            "message": {
                "content": "要比较 \\(9.9\\) 和 \\(9.11\\) 的大小:\n\n- \\(9.9\\) 可以看作是 \\(9.90\\)。\n- 比较 \\(9.90\\) 和 \\(9.11\\):从整数部分开始,两者整数部分都是 \\(9\\)。\n- 比较小数部分:\\(0.90\\) 和 \\(0.11\\),显然 \\(0.90 > 0.11\\)。\n\n因此,\\(9.9 > 9.11\\)。\n\n\\boxed{9.9} > \\boxed{9.11",
                "role": "assistant"
            },
            "finish_reason": "stop",
            "index": 0,
            "logprobs": null
        }
    ],
    "object": "chat.completion",
    "usage": {
        "prompt_tokens": 13,
        "completion_tokens": 123,
        "total_tokens": 136
    },
    "created": 1756134468,
    "system_fingerprint": null,
    "model": "deepseek-v3.1",
    "id": "chatcmpl-xxx-xxx-xxx-xxx-xxx"
}

DashScope

您可以通过 DashScope SDK 或 HTTP 方式快速体验 DeepSeek 模型。

Python

示例代码

import os
import dashscope

messages = [
    {'role': 'user', 'content': '你是谁?'}
]

response = dashscope.Generation.call(
    # 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="deepseek-v3.1",  # 此处以 deepseek-v3.1 为例,可按需更换模型名称。
    messages=messages,
    # result_format参数不可以设置为"text"。
    result_format='message'
)

# deepseek-v3.1默认不输出思考过程。如需输出思考过程,请参见流式输出的代码。
if 'reasoning_content' in response.output.choices[0].message:
    print("=" * 20 + "思考过程" + "=" * 20)
    print(response.output.choices[0].message['reasoning_content'])

print("=" * 20 + "最终答案" + "=" * 20)
print(response.output.choices[0].message['content'])

返回结果

====================最终答案====================
我是 DeepSeek-V3,由深度求索公司打造的智能助手!我的目标是帮助你解答各类问题,无论是学习、工作,还是生活中的小困扰,我都会尽力提供有用的信息和建议。有什么想问的,尽管来吧!

Java

为了使 API 返回reasoning_content(思考过程)字段,您的 DashScope Java SDK 版本需要不低于2.18.2。

示例代码

// dashscope SDK的版本 >= 2.18.2
import java.util.Arrays;
import java.lang.System;
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;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        Generation gen = new Generation();
        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content("你是谁?")
                .build();
        GenerationParam param = GenerationParam.builder()
                // 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:.apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("deepseek-v3.1")
                .messages(Arrays.asList(userMsg))
                // 不可以设置为"text"
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .build();
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            // 如果有reasoning_content
            // deepseek-v3.1默认不输出思考过程。如需输出思考过程,请参见流式输出的代码。
            if (result.getOutput().getChoices().get(0).getMessage().getReasoningContent() != null) {
                System.out.println("思考过程:");
                System.out.println(result.getOutput().getChoices().get(0).getMessage().getReasoningContent());
            }
            System.out.println("回复内容:");
            System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            // 使用日志框架记录异常信息
            System.err.println("An error occurred while calling the generation service: " + e.getMessage());
        }
        System.exit(0);
    }
}

返回结果

回复内容:
我是 DeepSeek-V3,由深度求索公司打造的智能助手!我的目标是帮助你解答各类问题,无论是学习、工作,还是生活中的小困扰,我都会尽力提供有用的信息和建议。有什么想问的,尽管来吧!

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" \
-d '{
    "model": "deepseek-v3.1",
    "input":{
        "messages":[      
            {
                "role": "user",
                "content": "你是谁?"
            }
        ]
    },
    "parameters": {
        "result_format": "message"
    }
}'

返回结果

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": "我是 DeepSeek-V3,由深度求索公司打造的智能助手!我的目标是帮助你解答各类问题,无论是学习、工作,还是生活中的小困扰,我都会尽力提供有用的信息和建议。有什么想问的,尽管来吧!"
                }
            }
        ]
    },
    "usage": {
        "total_tokens": 59,
        "output_tokens": 53,
        "input_tokens": 6
    },
    "request_id": "xxx-xxx-xxx-xxx-xxx"
}

多轮对话

阿里云百炼提供的 DeepSeek API 默认不会记录您的历史对话信息。多轮对话功能可以让大模型“拥有记忆”,满足如追问、信息采集等需要连续交流的场景。如果您使用 DeepSeek-R1 类模型,会收到reasoning_content字段(思考过程)与content(回复内容),您可以将content字段通过{'role': 'assistant', 'content':API 返回的content}添加到上下文,无需添加reasoning_content字段。

OpenAI兼容

您可以通过 OpenAI SDK 或 OpenAI 兼容的 HTTP 方式使用多轮对话功能。

Python

示例代码

import os
from openai import 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 数组实现上下文管理
messages = [
    {'role': 'user', 'content': '你好'}
]

completion = client.chat.completions.create(
    model="deepseek-r1",  # 此处以 deepseek-r1 为例,可按需更换模型名称。
    messages=messages
)

print("="*20+"第一轮对话"+"="*20)
# 通过reasoning_content字段打印思考过程
print("="*20+"思考过程"+"="*20)
print(completion.choices[0].message.reasoning_content)
# 通过content字段打印最终答案
print("="*20+"最终答案"+"="*20)
print(completion.choices[0].message.content)

messages.append({'role': 'assistant', 'content': completion.choices[0].message.content})
messages.append({'role': 'user', 'content': '你是谁'})
print("="*20+"第二轮对话"+"="*20)
completion = client.chat.completions.create(
    model="deepseek-r1",  # 此处以 deepseek-r1 为例,可按需更换模型名称。
    messages=messages
)
# 通过reasoning_content字段打印思考过程
print("="*20+"思考过程"+"="*20)
print(completion.choices[0].message.reasoning_content)
# 通过content字段打印最终答案
print("="*20+"最终答案"+"="*20)
print(completion.choices[0].message.content)

返回结果

====================第一轮对话====================
====================思考过程====================
嗯,用户发来了“你好”,这是一个非常常见的中文问候。我需要用中文回应,保持友好和自然。首先,应该回复一个问候,比如“你好!有什么可以帮助你的吗?”这样可以邀请用户进一步说明他们的需求。另外,考虑到用户可能刚接触这个平台,可能需要指导或者有其他问题,所以保持开放式的提问比较合适。同时,要注意语气亲切,避免太过机械。检查一下有没有语法错误,确保回答正确。可能用户只是想打个招呼,也可能接下来有具体的问题,所以准备好后续的支持。另外,根据之前的对话历史,用户可能没有特定的上下文,所以保持回答简洁通用比较好。最后,确认回复符合所有指南,没有涉及敏感或不适当的内容。现在发送回复应该没问题。
====================最终答案====================
你好!有什么可以帮助你的吗?
====================第二轮对话====================
====================思考过程====================
好的,用户问我“你是谁”,需要回答这个问题。首先,我得按照之前设定的角色来回应,也就是深度求索的智能助手DeepSeek-R1。要介绍自己的身份,说明是由深度求索公司开发的,专注于帮助解决问题和提供信息。同时要保持友好和简洁,避免技术术语,让用户容易理解。还要注意格式,用中文口语化的方式,分步骤思考,但不需要用markdown。用户之前用过中文,所以继续用中文回应。另外,用户可能想了解我的功能或背后的技术,但不需要主动扩展,直接回答问题即可。最后,确保回答符合公司的指导方针,没有不适当的内容。检查有没有错别字,语句是否通顺。准备好回答后,就可以给出最终回复了。
====================最终答案====================
您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何问题,我会尽我所能为您提供帮助。

Node.js

示例代码

import OpenAI from "openai";
import * as readline from 'readline';

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

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let messages = [];

async function chat() {
    while (true) {
        const userInput = await new Promise(resolve => {
            rl.question('用户:', resolve);
        });

        if (userInput.toLowerCase() === '退出') {
            break;
        }

        messages.push({ role: "user", content: userInput });

        try {
            const completion = await openai.chat.completions.create({
                model: "deepseek-r1",
                messages: messages
            });

            // 使用纯文本符号分隔不同区域
            console.log('\n===== 用户输入 =====');
            console.log(userInput);
            
            console.log('\n----- 思考过程 -----');
            console.log(completion.choices[0].message.reasoning_content);
            
            console.log('\n===== 助手回复 =====');
            const aiResponse = completion.choices[0].message.content;
            console.log(aiResponse);
            
            console.log('\n====================\n');
            
            messages.push({ role: "assistant", content: aiResponse });
        } catch (error) {
            console.error('发生错误:', error);
            break;
        }
    }
    rl.close();
}

console.log('请输入内容(输入"退出"结束对话)');
chat();

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-r1",
    "messages": [
        {
            "role": "user", 
            "content": "你好"
        },
        {
            "role": "assistant",
            "content": "你好!很高兴见到你,有什么我可以帮忙的吗?"
        },
        {
            "role": "user",
            "content": "你是谁?"
        }
    ]
}'

返回结果

{
    "choices": [
        {
            "message": {
                "content": "您好!我是DeepSeek-R1,一个由深度求索公司(DeepSeek)开发的智能助手,我擅长通过思考来帮您解答复杂的数学,代码和逻辑推理等理工类问题。",
                "reasoning_content": "好的,用户问“你是谁?”,需要回答这个问题。首先,要明确用户的需求,他们可能想知道我的身份、功能或背后的技术。用户可能是初次使用,或者想确认我的能力范围。\n\n我需要按照之前设定的结构来回应,先介绍自己是一个AI助手,由深度求索公司开发,然后说明我的基础技术是深度学习、自然语言处理等,接着提到应用Transformer架构,通过大量数据训练来理解和生成文本。最后,强调我的目的是帮助用户解决问题,提供信息,同时指出我的局限性,比如知识截止日期和生成内容的核实。\n\n要注意保持回答简洁明了,避免技术术语过多,让用户容易理解。同时,要符合公司的品牌形象,突出技术背景但不涉及具体数据或机密信息。还要检查是否符合中国法律法规,不包含敏感内容。最后,用友好的语气结束,邀请用户继续提问,促进进一步互动。",
                "role": "assistant"
            },
            "finish_reason": "stop",
            "index": 0,
            "logprobs": null
        }
    ],
    "object": "chat.completion",
    "usage": {
        "prompt_tokens": 20,
        "completion_tokens": 229,
        "total_tokens": 249
    },
    "created": 1739173013,
    "system_fingerprint": null,
    "model": "deepseek-r1",
    "id": "chatcmpl-4c851fd5-4f71-93cb-9c7c-93d5529d73e8"
}

DashScope

您可以通过 DashScope SDK 或 HTTP 方式使用多轮对话功能。

调用 DeepSeek 模型时,result_format参数不可以设置为"text"

Python

示例代码

import os
import dashscope

# 通过 messages 数组实现上下文管理
messages = [
    {'role': 'user', 'content': '你好'}
]

response = dashscope.Generation.call(
    # 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="deepseek-r1",  # 此处以deepseek-r1为例,可按需更换模型名称。
    messages=messages,
    result_format='message'
)

print("=" * 20 + "第一轮对话" + "=" * 20)
print("=" * 20 + "思考过程" + "=" * 20)
print(response.output.choices[0].message.reasoning_content)
print("=" * 20 + "最终答案" + "=" * 20)
print(response.output.choices[0].message.content)

messages.append({'role': 'assistant', 'content': response.output.choices[0].message.content})
messages.append({'role': 'user', 'content': '你是谁'})

print("=" * 20 + "第二轮对话" + "=" * 20)
response = dashscope.Generation.call(
    # 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="deepseek-r1",  # 此处以deepseek-r1为例,可按需更换模型名称。
    messages=messages,
    # result_format参数不可以设置为"text"。
    result_format='message'
)

print("=" * 20 + "思考过程" + "=" * 20)
print(response.output.choices[0].message.reasoning_content)
print("=" * 20 + "最终答案" + "=" * 20)
print(response.output.choices[0].message.content)

返回结果

====================第一轮对话====================
====================思考过程====================
嗯,用户发来了“你好”,这是中文里常见的问候语。我需要用中文回应,保持友好和自然。首先,我应该回复一个问候,比如“你好!有什么可以帮助你的吗?”这样既礼貌又开放,邀请用户提出具体的问题或需求。同时,要注意避免使用过于机械化的回答,显得更有人情味。另外,要检查有没有拼写错误,确保回复正确无误。可能用户只是想打个招呼,也可能有后续的问题,所以保持回答简洁但留有进一步沟通的空间比较好。确认回复的语气是否合适,不要太正式也不要太随意。最后,发送前再快速看一下整体内容,确保符合交流的流程。
====================最终答案====================
你好!很高兴见到你,有什么我可以帮忙的吗?
====================第二轮对话====================
====================思考过程====================
好的,用户问“你是谁”,我需要详细分析这个问题。首先,用户可能是在初次使用,想了解我的基本功能。他们可能想知道我是AI助手,还是真人。可能还有更深层的需求,比如确认我的可靠性和能力范围。

接下来,我需要确定回答的结构。通常这类问题需要明确说明身份、开发公司、功能以及如何帮助用户。要避免技术术语,保持口语化,让用户容易理解。

然后,检查是否有需要强调的部分。比如强调实时联网能力,这是和之前版本的不同之处,用户可能关心我能否提供最新信息。此外,隐私和安全也很重要,用户可能担心数据问题,需要明确说明保护措施。

还要考虑用户可能的后续问题,比如如何使用我的功能,或者具体的应用场景。所以在回答中可以提到多种任务类型,覆盖常见需求,让用户知道可以如何利用我。

最后,保持友好和开放的态度,鼓励用户提问,促进进一步互动。需要确保回答全面,同时简洁明了,不冗长。这样用户能得到清晰的信息,并知道接下来可以如何与我交流。
====================最终答案====================
你好!我是DeepSeek-R1,一个由深度求索(DeepSeek)公司开发的智能助手,我擅长通过思考来帮您解答复杂的数学,代码和逻辑推理等理工类问题,并能用通俗易懂的方式解释专业概念。目前我已联网,可随时为您查询最新信息。我会严格遵守隐私和安全准则,确保您的信息安全。有什么我可以帮您的吗?

Java

示例代码

// dashscope SDK的版本 >= 2.18.2
import java.util.Arrays;
import java.lang.System;
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 com.alibaba.dashscope.utils.JsonUtils;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        Generation gen = new Generation();
        Message userMsg1 = Message.builder()
                .role(Role.USER.getValue())
                .content("你好")
                .build();
        Message AssistantMsg = Message.builder()
                .role(Role.ASSISTANT.getValue())
                .content("你好!很高兴见到你,有什么我可以帮忙的吗?")
                .build();
        Message UserMsg2 = Message.builder()
                .role(Role.USER.getValue())
                .content("你是谁")
                .build();
        GenerationParam param = GenerationParam.builder()
                // 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:.apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("deepseek-r1")
                .messages(Arrays.asList(userMsg1,AssistantMsg,UserMsg2))
                // 不可以设置为"text"
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .build();
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            System.out.println("思考过程:");
            System.out.println(result.getOutput().getChoices().get(0).getMessage().getReasoningContent());
            System.out.println("回复内容:");
            System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            // 使用日志框架记录异常信息
            System.err.println("An error occurred while calling the generation service: " + e.getMessage());
        }
        System.exit(0);
    }
}

返回结果

思考过程:
好的,用户问“你是谁”,我需要用中文详细回答,并解释我的身份和功能。首先,用户可能刚接触我,或者想确认我的基本信息。之前用户说过“你好”,我回应了,现在他们进一步询问身份。我需要保持友好,同时准确说明我是由深度求索开发的智能助手DeepSeek-R1,专注于通过算法处理提供帮助。还要强调我的职责是信息查询、问题解答等,并说明我的局限性,比如不联网、知识截止到2023年。要确保回答清晰,避免技术术语,让用户容易理解。可能用户想知道我的能力范围,所以需要涵盖用途和限制。此外,用户可能关心隐私,可以提到不保留对话信息。最后保持开放结尾,邀请用户提问。检查是否符合格式要求,没有使用Markdown,分段落自然。现在组织语言,确保口语化,自然流畅。
回复内容:
你好!我是DeepSeek-R1,一个由深度求索(DeepSeek)公司开发的智能助手,擅长通过算法逻辑处理信息来协助解决问题。我的主要职责是提供信息查询、日常问题解答、实用建议及学术研究辅助等服务,但请注意我的知识库截至2023年,且无法主动联网更新信息。我们的对话内容不会被留存,你可随时放心交流。有什么具体需求吗?我很乐意为你提供帮助。

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" \
-d '{
    "model": "deepseek-r1",
    "input":{
        "messages":[      
            {
                "role": "user",
                "content": "你好"
            },
            {
                "role": "assistant",
                "content": "你好!很高兴见到你,有什么我可以帮忙的吗?"
            },
            {
                "role": "user",
                "content": "你是谁?"
            }
        ]
    },
    "parameters": {
        "result_format": "message"
    }
}'

返回结果

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": "你好!我是DeepSeek-R1,一个由深度求索公司开发的人工智能助手,我擅长通过思考来帮您解答复杂的数学,代码和逻辑推理等理工类问题。如需最新模型体验,请前往深度求索的官方网站查询。",
                    "reasoning_content": "好的,用户问“你是谁?”,我需要回答这个问题。首先,我要回想一下之前设置的自我介绍内容,确保一致性。用户可能是刚开始使用,或者想确认我的身份和功能。\n\n我需要明确说明我是DeepSeek-R1,由深度求索公司开发的人工智能助手。要强调我的目的是帮助用户解决问题,提供信息,同时保持友好和专业的语气。\n\n同时,用户可能有更深层的需求,比如确认我的能力范围,或者想知道我与其他AI的不同。所以可以适当提到我的功能,比如回答问题、提供建议等,但不需要太详细,保持简洁。\n\n还要注意避免使用技术术语,保持回答自然易懂。最后,保持开放式的结尾,鼓励用户继续提问,促进进一步的交流。"
                }
            }
        ]
    },
    "usage": {
        "total_tokens": 226,
        "output_tokens": 206,
        "input_tokens": 20
    },
    "request_id": "9fb73af5-940e-9107-a4b6-74c9e541eb3f"
}

流式输出

DeepSeek-V3.1 与 DeepSeek-R1 类模型可能会输出较长的思考过程,为了降低超时风险,建议您使用流式输出方式调用模型。

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-v3.1",
    messages=messages,
    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("\nUsage:")
        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-V3,并说明由深度求索公司创造。提到核心功能是解答问题和聊天陪伴,最后用开放性问题引导用户继续互动。不需要复杂信息,保持简洁明快就好。
====================完整回复====================

DeepSeek-V3,一个由深度求索公司创造的智能助手!我可以帮助你解答各种问题、提供建议、进行知识查询,甚至陪你聊天!无论是学习、工作还是日常生活中的疑问,尽管问我吧~✨有什么我可以帮你的吗?

Node.js

示例代码

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

// 初始化 openai 客户端
const openai = new OpenAI({
    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-v3.1',
            messages,
            stream: true,
            enable_thinking: true
        });
        console.log('\n' + '='.repeat(20) + '思考过程' + '='.repeat(20) + '\n');

        for await (const chunk of stream) {
            if (!chunk.choices?.length) {
                console.log('\nUsage:');
                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-V3,并说明由深度求索公司创造。提到核心功能是解答问题和聊天陪伴,最后用开放性问题引导用户继续互动。不需要复杂信息,保持简洁明快就好。
====================完整回复====================

DeepSeek-V3,一个由深度求索公司创造的智能助手!我可以帮助你解答各种问题、提供建议、进行知识查询,甚至陪你聊天!无论是学习、工作还是日常生活中的疑问,尽管问我吧~✨有什么我可以帮你的吗?

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-v3.1",
    "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-v3.1",
    messages=messages,
    result_format="message",
    enable_thinking=True,
    stream=True,
    incremental_output=True,
)

# 定义完整思考过程
reasoning_content = ""
# 定义完整回复
answer_content = ""
# 判断是否结束思考过程并开始回复
is_answering = False

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

for chunk in completion:
    # 如果思考过程与回复皆为空,则忽略
    if (
        chunk.output.choices[0].message.content == ""
        and chunk.output.choices[0].message.reasoning_content == ""
    ):
        pass
    else:
        # 如果当前为思考过程
        if (
            chunk.output.choices[0].message.reasoning_content != ""
            and chunk.output.choices[0].message.content == ""
        ):
            print(chunk.output.choices[0].message.reasoning_content, end="", flush=True)
            reasoning_content += chunk.output.choices[0].message.reasoning_content
        # 如果当前为回复
        elif chunk.output.choices[0].message.content != "":
            if not is_answering:
                print("\n" + "=" * 20 + "完整回复" + "=" * 20)
                is_answering = True
            print(chunk.output.choices[0].message.content, end="", flush=True)
            answer_content += chunk.output.choices[0].message.content

# 如果您需要打印完整思考过程与完整回复,请将以下代码解除注释后运行
# print("=" * 20 + "完整思考过程" + "=" * 20 + "\n")
# print(f"{reasoning_content}")
# print("=" * 20 + "完整回复" + "=" * 20 + "\n")
# print(f"{answer_content}")

返回结果

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

唔,用户问了一个简单的自我介绍问题。这种问题很常见,需要快速清晰地表明身份和功能。考虑用轻松友好的语气介绍自己是DeepSeek-V3,并说明由深度求索公司创造。提到核心功能是解答问题和聊天陪伴,最后用开放性问题引导用户继续互动。不需要复杂信息,保持简洁明快就好。
====================完整回复====================

DeepSeek-V3,一个由深度求索公司创造的智能助手!我可以帮助你解答各种问题、提供建议、进行知识查询,甚至陪你聊天!无论是学习、工作还是日常生活中的疑问,尽管问我吧~✨有什么我可以帮你的吗?

Java

示例代码

// 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 com.alibaba.dashscope.utils.Constants;
import io.reactivex.Flowable;
import java.lang.System;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Main {
    private static final Logger logger = LoggerFactory.getLogger(Main.class);
    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.isEmpty()) {
            reasoningContent.append(reasoning);
            if (isFirstPrint) {
                System.out.println("====================思考过程====================");
                isFirstPrint = false;
            }
            System.out.print(reasoning);
        }

        if (!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-v3.1")
                .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);
//             打印最终结果
//            if (reasoningContent.length() > 0) {
//                System.out.println("\n====================完整回复====================");
//                System.out.println(finalContent.toString());
//            }
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            logger.error("An exception occurred: {}", e.getMessage());
        }
        System.exit(0);
    }
}

返回结果

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

唔,用户问了一个简单的自我介绍问题。这种问题很常见,需要快速清晰地表明身份和功能。考虑用轻松友好的语气介绍自己是DeepSeek-V3,并说明由深度求索公司创造。提到核心功能是解答问题和聊天陪伴,最后用开放性问题引导用户继续互动。不需要复杂信息,保持简洁明快就好。
====================完整回复====================

DeepSeek-V3,一个由深度求索公司创造的智能助手!我可以帮助你解答各种问题、提供建议、进行知识查询,甚至陪你聊天!无论是学习、工作还是日常生活中的疑问,尽管问我吧~✨有什么我可以帮你的吗?

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-v3.1",
    "input":{
        "messages":[      
            {
                "role": "user",
                "content": "你是谁?"
            }
        ]
    },
    "parameters":{
        "enable_thinking": true,
        "incremental_output": true,
        "result_format": "message"
    }
}'

注意事项

  • 稳定性:如果执行后没有响应、响应超时或者报错An internal error has occured, please try again later or contact service support,请尝试重试或者更换其他 DeepSeek 模型,也可以尝试使用 Qwen 最新的 Qwen3 模型(可替代 deepseek-r1 模型)或qwen-max-2025-01-25(可替代 deepseek-v3 模型)。

    高峰期任务可能排队或失败,阿里云百炼持续扩容中,调用失败请稍后重试。
  • 工具调用

    deepseek-r1、deepseek-r1-0528、deepseek-v3 支持Function Calling

  • DeepSeek-V3.1

  • DeepSeek-R1 类模型

    • 不支持的功能

      JSON Output对话前缀续写上下文硬盘缓存

    • 不支持的参数

      temperaturetop_ppresence_penaltyfrequency_penaltylogprobstop_logprobs

      设置这些参数都不会生效,即使没有输出错误提示。
    • DeepSeek官方不建议设置 System Message,原文:"Avoid adding a system prompt; all instructions should be contained within the user prompt."

  • DeepSeek-V3

    • 参数默认值:

      • temperature:0.7(取值范围是[0:2));

      • top_p:0.6;

      • presence_penalty:0.95。

    • 不支持设置的参数和功能:frequency_penaltylogprobstop_logprobs参数;不支持 JSON Output 功能,敬请关注后续动态。

    • 当前 DeepSeek-V3 为 2024 年 12 月发布的版本。

  • 阿里云百炼应用已支持接入 DeepSeek 模型。

  • 模型在线体验已支持体验 DeepSeek 模型。

  • 联网搜索

    模型调用当前暂不支持联网搜索。

  • 深度思考:只要调用 DeepSeek-R1 类模型即代表开启深度思考(深度思考过程通过reasoning_content返回)。

常见问题

为什么新版 DeepSeek-R1 响应变慢?

新版 DeepSeek-R1 模型增强了推理过程中的思考深度,导致响应时间长于上一版模型。

DeepSeek-R1-0528 官方仓库:“源于推理过程中思考深度的增强:在 AIME 测试集中,之前的模型平均每题使用 12K 个标记,而新版本平均使用 23K 个标记。”

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

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

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

如何接入ChatboxCherry StudioDify

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

Chatbox

请参见Chatbox

Cherry Studio

  1. 单击左下角的设置按钮,在模型服务栏中找到阿里云百炼API 密钥输入您的 API Key,获取方法请参见:获取API KeyAPI 地址填入https://dashscope.aliyuncs.com/compatible-mode/v1/;单击添加

    image.png

  2. 模型 ID填入您需要使用的 DeepSeek 模型,此处以 deepseek-r1 为例; 模型名称分组名称会自动生成。

    image.png

  3. 在界面上方选中添加的模型。输入“你是谁”进行测试:

    image.png

Dify

请参见Dify

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

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

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

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

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

image

还有哪些使用DeepSeek的方式?

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

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

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

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

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

错误码

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