DeepSeek大语言模型

本文介绍了在百炼平台通过API调用DeepSeek系列模型的方法 。其中 deepseek-r1 与 deepseek-v3 分别有 100万的免费 Token,部分蒸馏模型限时免费体验。

支持的模型

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

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

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

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

DeepSeek-R1 (671B)与 DeepSeek-V3 模型享五折优惠,活动时间为2025021218:00:00~2025022323:59:59,活动结束后恢复原价。

模型名称

上下文长度

最大输入

最大输出

输入成本

输出成本

免费额度

(注)

(Token数)

(每千Token)

deepseek-r1

671B 满血版模型

65,792

57,344

32,768

0.002

0.004

0.008

0.016

100Token

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

deepseek-v3

参数量为 671B

8,192

0.001

0.002

0.004

0.008

deepseek-r1-distill-qwen-1.5b

基于 Qwen2.5-Math-1.5B

32,768

32,768

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
以上模型非集成第三方服务,均部署在阿里云百炼服务器上。
最大输出的 Token 数包含思考过程(reasoning_content字段)与最终输出(content字段)的 Token 之和。
并发限流请参考DeepSeek 限流条件

快速开始

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

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

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"),  # 如何获取API Key:https://help.aliyun.com/zh/model-studio/developer-reference/get-api-key
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)

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

# 通过reasoning_content字段打印思考过程
print("思考过程:")
print(completion.choices[0].message.reasoning_content)

# 通过content字段打印最终答案
print("最终答案:")
print(completion.choices[0].message.content)

返回结果

思考过程:

嗯,用户问的是9.9和9.11谁大。首先,我需要确认这两个数字的数值到底是多少。表面上看起来都是小数,但可能用户有不同的表示方式需要注意。

首先,9.9应该就是平常的小数,也就是9加9/10,等于9.9。而9.11可能有两种解读:一种是直接的小数,即9加11/100,也就是9.11;另一种可能是版本号或者某种编号,比如软件版本中的9.9和9.11,这时候可能需要按顺序比较,比如9.9之后是9.10,再是9.11,所以9.11会比9.9大。不过通常情况下,数学问题中的数字还是按照数值来比较的,所以应该排除版本号的解释,直接比较数值大小。

...

总结一下,正确的数值比较中,9.9等于9.90,而9.11等于9.11,所以9.90大于9.11,也就是9.9大于9.11。不过为了避免混淆,可能用户需要更详细的步骤解释。

最终答案:
9.9比9.11大。

**详细比较步骤:**

1. **统一小数位数**:将9.9写成9.90,使其与9.11的小数位数一致。
2. **逐位比较**:
   - **整数部分**:两者均为9,相等。
   - **小数部分**:比较0.90(9.9的小数部分)和0.11(9.11的小数部分)。由于0.90 > 0.11,因此9.90 > 9.11。
   
**结论**:9.9的数值大于9.11。

若涉及版本号(如软件版本),通常按顺序排列为9.9 → 9.10 → 9.11,此时9.11较新。但按纯数学数值比较,9.9更大。

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-r1",  // 此处以 deepseek-r1 为例,可按需更换模型名称。
    messages: [
        { role: "user", content: "9.9和9.11谁大" }
    ],
});
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的小数部分是0.9,也就是十分位上的数字是9,而百分位上的数字是0,因为9.9其实可以写成9.90。而9.11的小数部分是0.11,十分位是1,百分位是1。现在的问题是,如何比较这两个小数部分的大小。

...

或者,用时间来做例子,假设是9.9小时和9.11小时,9.9小时等于9小时54分钟(因为0.9小时×60分钟=54分钟),而9.11小时是9小时6.6分钟(0.11×60≈6.6分钟),显然,9小时54分钟比9小时6分钟多得多,所以9.9小时更大。

通过这些不同的例子,都验证了9.9确实比9.11大。因此,可以确定答案是正确的。

最终答案:
9.9比9.11大。

**步骤解析:**

1. **整数部分比较**:两个数的整数部分均为9,因此需进一步比较小数部分。
2. **小数部分对齐位数**:将9.9补全为9.90,与9.11的小数部分对齐(0.90 vs 0.11)。
3. **逐位比较小数部分**:
   - **十分位**:9(来自9.90) > 1(来自9.11),无需继续比较后续位数。
4. **结论**:由于十分位上9 > 1,故9.90(即9.9)大于9.11。

**验证方法:**
- **减法验证**:9.90 - 9.11 = 0.79(正数,说明9.9更大)。
- **分数转换**:9.9 = 990/100,9.11 = 911/100,990 > 911。
- **实际意义**:如货币中9.9元(9元9角)多于9.11元(9元1角1分)。

综上,**9.9 > 9.11**。

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": "9.9和9.11谁大"
        }
    ]
}'

返回结果

{
    "choices": [
        {
            "message": {
                "content": "9.9比9.11大。\n\n**解析:**\n1. **统一小数位数:** 将9.9补位为9.90,与9.11对齐位数。\n2. **逐位比较:**\n   - 整数部分均为9,相等。\n   - 第一位小数:9(来自9.90)> 1(来自9.11),此时已可判定大小。\n3. **结论:** 9.90 > 9.11,即 **9.9 > 9.11**。\n\n**常见误解提醒:**  \n若直接比较小数点后的数字(如误认为“11 > 9”),可能得出错误结论。需注意小数位的实际值(十分位、百分位等),补零对齐后再比较。",
                "reasoning_content": "\n嗯,用户问的是9.9和9.11谁大。这个问题看起来好像挺简单的,但可能有些小陷阱,特别是涉及到小数点的比较。首先,我需要确认用户是否在问数字的大小比较,还是有没有其他可能的含义,比如日期之类的。不过根据数字的写法,应该是数字比较。\n\n首先,我需要明确这两个数的结构。9.9和9.11。这时候可能有些人会直接比较小数点后的数字,比如9和11,认为11比9大,所以9.11更大。但这种比较方法其实是错误的,因为小数点后的位数不同,需要将它们转换成相同位数来比较。\n\n正确的做法应该是将两个数统一到相同的小数位数。比如,9.9可以写成9.90,而9.11保持不变。这样的话,比较的话就是9.90和9.11。这时候,从小数点后第一位开始比较,第一位都是9,接着第二位是0和1。因为0小于1,所以9.90小于9.11,也就是9.9小于9.11。\n\n不过,用户可能有不同的理解,特别是如果他们对小数比较不熟悉的话,可能会误以为9.11更大,因为11比9大。这时候需要解释清楚位数的不同带来的影响,比如小数点后的第一位是十分位,第二位是百分位,所以9.9实际上是9又十分之九,而9.11是9又百分之十一,换算成小数的话,0.9等于0.90,而0.11是0.11,显然0.90更大,所以这个时候反而9.9更大?\n\n啊,这里好像我之前的分析有问题。这时候需要再仔细计算一下。因为当我们将9.9写成9.90,而9.11是9.11的话,比较的话应该从高位到低位依次比较。比如,整数部分都是9,所以相同。然后第一位小数,9和1比较,9大于1,所以这时候9.90已经比9.11大了,所以结论是9.9大于9.11?\n\n等等,这里好像矛盾了。这说明我之前犯了错误。为什么会这样呢?原来在比较小数时,应该逐位比较。例如:\n\n9.9 和 9.11\n\n将9.9写成9.90:\n\n比较整数部分:都是9,相等。\n比较第一位小数:9(来自9.90)和1(来自9.11)。因为9 > 1,所以整个数9.90大于9.11,所以9.9大于9.11。\n\n这样一来,之前的结论是错误的,正确的结论应该是9.9更大。这说明我需要仔细检查自己的思路,避免犯低级错误。\n\n可能用户在这里容易混淆,因为9.11的小数部分有两位,可能以为0.11比0.9大,但实际上0.9是0.90,而0.90大于0.11。所以正确的比较是9.9更大。\n\n总结来说,正确的答案是9.9比9.11大。需要确保在比较的时候注意小数位数,补全后再逐位比较。\n",
                "role": "assistant"
            },
            "finish_reason": "stop",
            "index": 0,
            "logprobs": null
        }
    ],
    "object": "chat.completion",
    "usage": {
        "prompt_tokens": 19,
        "completion_tokens": 797,
        "total_tokens": 816
    },
    "created": 1739069910,
    "system_fingerprint": null,
    "model": "deepseek-r1",
    "id": "chatcmpl-e55cdb8a-9ce1-9662-b87c-cf3da706e4f3"
}

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-r1",  # 此处以 deepseek-r1 为例,可按需更换模型名称。
    messages=messages,
    result_format='message'
)

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

返回结果

====================思考过程====================
嗯,用户问我是谁,我需要用中文回答。首先,我应该按照之前设定的身份来回应,说明我是DeepSeek-R1,由深度求索公司开发的人工智能助手。要确保回答简洁明了,同时保持友好和乐于助人的语气。用户可能刚接触,所以不需要太技术化的解释,但要涵盖基本功能,比如回答问题、提供信息、建议等。还要记得提到持续学习和更新,让用户知道我的知识库是最新的。另外,要避免任何复杂术语,保持自然的口语化表达。最后,可以以询问用户需要什么帮助来结尾,促进进一步的互动。检查有没有遗漏的部分,比如公司名称是否正确,功能是否全面,有没有语法错误。确保回答符合中文习惯,没有翻译腔。这样应该能清楚回答用户的问题了。
====================最终答案====================
您好!我是DeepSeek-R1,一个由深度求索(DeepSeek)公司开发的人工智能助手。我擅长通过思考来帮您解答复杂的数学,代码和逻辑推理等理工类问题,并通过友好、直观的方式为您提供信息咨询和辅助决策。我会持续学习和更新,以更好地为您提供服务。请问有什么可以帮您?

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-r1")
                .messages(Arrays.asList(userMsg))
                .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)公司开发的智能助手DeepSeek-R1。如您有任何问题,我会尽我所能为您提供帮助。
回复内容:
您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何问题,我会尽我所能为您提供帮助。

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": "你是谁?"
            }
        ]
    },
    "parameters": {
        "result_format": "message"
    }
}'

返回结果

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": "您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何问题,我会尽我所能为您提供帮助。",
                    "reasoning_content": "您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何问题,我会尽我所能为您提供帮助。"
                }
            }
        ]
    },
    "usage": {
        "total_tokens": 83,
        "output_tokens": 78,
        "input_tokens": 5
    },
    "request_id": "d9d482cf-5d2a-9abf-bee8-c4d5958d2f74"
}

多轮对话

百炼提供的 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"), # 如何获取API Key:https://help.aliyun.com/zh/model-studio/developer-reference/get-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";

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-r1",  // 此处以 deepseek-r1 为例,可按需更换模型名称。
    messages: [
        { role: "user", content: "9.9和9.11谁大" }
    ],
});
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的小数部分是0.9,也就是十分位上的数字是9,而百分位上的数字是0,因为9.9其实可以写成9.90。而9.11的小数部分是0.11,十分位是1,百分位是1。现在的问题是,如何比较这两个小数部分的大小。

首先比较十分位上的数字。对于9.9来说,十分位是9,而9.11的十分位是1。显然,9比1大,所以在十分位上,9.9已经比9.11大了。因此,根据小数比较的规则,当十分位上的数字9大于1的时候,整个小数部分9.90就会比0.11大,所以9.9应该比9.11大。

不过,这里可能存在一个常见的误区,就是误以为小数点后的位数越多,数值就越大,但这种情况只有当整数部分相同,并且前面的小数位数也相同的时候才成立。例如,9.11和9.109,这时候需要看更多的位数,但这里的情况不同,因为9.9的十分位已经是9,而9.11的十分位是1,所以即使后面的百分位有数字,也无法超过前面的差异。

为了更直观地理解,可以将两个数都转换成相同的位数,比如将9.9写成9.90,这样比较起来更容易。比较9.90和9.11的话,先看十分位,9比1大,所以9.90更大。因此,9.9比9.11大。

不过,有人可能会问,如果换成其他的比较方式,比如把它们转换成分数来比较,会不会更清楚呢?让我们试试看。9.9其实可以表示为9又9/10,也就是99/10。而9.11则是9又11/100,也就是911/100。现在比较这两个分数的大小,可以将它们通分,找到共同的分母进行比较。

99/10和911/100,通分后的共同分母是100。将99/10转化为分母为100的分数,就是990/100。而911/100保持不变。所以比较990/100和911/100,显然990比911大,所以990/100也就是9.9更大。

或者,把它们都转换成十进制,但这里已经是十进制了,只是需要更明确地写出小数位数。例如,9.9等于9.90,而9.11保持不变。比较的话,9.90中的十分位是9,百分位是0,而9.11中的十分位是1,百分位是1。由于十分位9大于1,所以无论后面的位数如何,9.90已经更大。

另一个可能的思考错误是,可能会有人误以为小数点后的数字是整体比较,比如认为0.11比0.9大,但这是错误的,因为0.11实际上是0.1 + 0.01,而0.9是0.9,显然0.9更大。所以0.9比0.11大,所以整个数9.9比9.11大。

不过,为了确保自己没有错,我还可以用减法来验证。9.9减去9.11等于多少?计算的时候,可以把9.9写成9.90,然后进行减法:

```
 9.90
-9.11
-------
 0.79
```

结果是0.79,这是一个正数,说明9.9比9.11大0.79,所以9.9确实更大。

或者,通过另一种方式,比如将它们都乘以100,变成整数来比较。9.9乘以100是990,9.11乘以100是911,那么显然990大于911,所以原来的9.9大于9.11。

总结一下,无论是通过逐位比较、转换成分数、进行减法还是乘以相同倍数后比较整数,结果都显示9.9比9.11大。因此,可以确定9.9是更大的那个数。

不过,可能有人会疑惑,为什么9.11的位数更多,结果却更小呢?这其实是因为小数点后的位数只有在前面各位相同的情况下,才会影响大小。比如,9.1和9.09,这时候比较的话,9.1的十分位是1,而9.09的十分位是0,所以9.1更大,尽管9.09有两位小数,但前面已经决定了大小。同样的道理,9.9的十分位是9,而9.11的十分位是1,所以不管后面的百分位是什么,9.9已经更大。

还有一种方法是用数轴来想象,9.9位于9.8和10之间,而9.11位于9.1和9.2之间,显然9.9的位置更靠右,也就是更大。

再想想,如果换成钱来理解的话,比如9.9元就是9元9角,而9.11元是9元1角1分,显然9元9角比9元1角1分多,所以9.9元更大。

或者,用时间来做例子,假设是9.9小时和9.11小时,9.9小时等于9小时54分钟(因为0.9小时×60分钟=54分钟),而9.11小时是9小时6.6分钟(0.11×60≈6.6分钟),显然,9小时54分钟比9小时6分钟多得多,所以9.9小时更大。

通过这些不同的例子,都验证了9.9确实比9.11大。因此,可以确定答案是正确的。

最终答案:
9.9比9.11大。

**步骤解析:**

1. **整数部分比较**:两个数的整数部分均为9,因此需进一步比较小数部分。
2. **小数部分对齐位数**:将9.9补全为9.90,与9.11的小数部分对齐(0.90 vs 0.11)。
3. **逐位比较小数部分**:
   - **十分位**:9(来自9.90) > 1(来自9.11),无需继续比较后续位数。
4. **结论**:由于十分位上9 > 1,故9.90(即9.9)大于9.11。

**验证方法:**
- **减法验证**:9.90 - 9.11 = 0.79(正数,说明9.9更大)。
- **分数转换**:9.9 = 990/100,9.11 = 911/100,990 > 911。
- **实际意义**:如货币中9.9元(9元9角)多于9.11元(9元1角1分)。

综上,**9.9 > 9.11**。

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 方式使用多轮对话功能。

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='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))
                .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-R1 类模型可能会输出较长的思考过程,为了降低超时风险,建议您使用流式输出方式调用 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"
)

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

    # 创建聊天完成请求
    stream = client.chat.completions.create(
        model="deepseek-r1",  # 此处以 deepseek-v3 为例,可按需更换模型名称
        messages=[
            {"role": "user", "content": "9.9和9.11谁大"}
        ],
        stream=True
        # 解除以下注释会在最后一个chunk返回Token使用量
        # stream_options={
        #     "include_usage": True
        # }
    )

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

    for chunk in stream:
        # 处理usage信息
        if not getattr(chunk, 'choices', None):
            print("\n" + "=" * 20 + "Token 使用情况" + "=" * 20 + "\n")
            print(chunk.usage)
            continue

        delta = chunk.choices[0].delta

        # 检查是否有reasoning_content属性
        if not hasattr(delta, 'reasoning_content'):
            continue

        # 处理空内容情况
        if not getattr(delta, 'reasoning_content', None) and not getattr(delta, 'content', None):
            continue

        # 处理开始回答的情况
        if not getattr(delta, 'reasoning_content', None) and not is_answering:
            print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")
            is_answering = True

        # 处理思考过程
        if getattr(delta, 'reasoning_content', None):
            print(delta.reasoning_content, end='', flush=True)
            reasoning_content += delta.reasoning_content
        # 处理回复内容
        elif getattr(delta, 'content', None):
            print(delta.content, end='', flush=True)
            answer_content += delta.content

    # 如果需要打印完整内容,解除以下的注释
    """
    print("=" * 20 + "完整思考过程" + "=" * 20 + "\n")
    print(reasoning_content)
    print("=" * 20 + "完整回复" + "=" * 20 + "\n")
    print(answer_content)
    """

if __name__ == "__main__":
    try:
        main()
    except Exception as e:
        print(f"发生错误:{e}")

返回结果

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

嗯,今天老师布置了一个问题,要比较9.9和9.11哪个大。一开始看起来好像挺简单的,但仔细想想可能有哪里需要注意的地方吧。让我仔细想想看。

首先,我需要明确这两个数的形式。9.9应该是一个小数,也就是9又十分之九,对吧?而9.11可能是9又百分之十一,也就是9.11。不过有时候小数点后面可能有不同的位数,比如有时候会写成9.1和9.10,这时候位数不同但数值其实是一样的,比如9.1等于9.10,因为后面的0不影响大小。不过这里的情况是9.9和9.11,它们的位数不同,一个是十分位,一个是百分位,所以可能需要转换一下单位来比较。

...

所以结论是9.9比9.11大。

不过可能还是有人会混淆,因为看到9.11的小数点后有两位,可能会觉得比一位的大,但实际上是小数点后的每一位代表的是更小的单位。比如十分位是0.1,百分位是0.01,所以第一位小数是十分位,第二位是百分位,所以9.9的十分位是9,也就是0.9,而9.11的十分位是1,百分位是1,所以总共是0.11,所以显然0.9比0.11大很多。

因此,最终的结论应该是9.9大于9.11。
====================完整回复====================

要比较9.9和9.11的大小,可以按照以下步骤进行:

1. **统一小数位数**:将9.9转换为9.90(保持两位小数),以便与9.11直接比较。
2. **逐位比较**:
   - **整数部分**:两者整数部分均为9,相等。
   - **小数部分**:比较0.90(9.90的小数部分)与0.11(9.11的小数部分)。显然,0.90 > 0.11。
3. **结论**:由于小数部分0.90 > 0.11,因此**9.9 > 9.11**。

**答案: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"
});

async function main() {
    let reasoningContent = ""; // 定义完整思考过程
    let answerContent = ""; // 定义完整回复
    let isAnswering = false; // 判断是否结束思考过程并开始回复

    const completion = await openai.chat.completions.create({
        model: "deepseek-r1", // 此处以 deepseek-r1 为例,可按需更换模型名称
        messages: [
            { role: 'user', content: '9.9和9.11谁大' }
        ],
        stream: true,
        // 解除以下注释会在最后一个chunk返回Token使用量
        // stream_options: {
        //     include_usage: true
        // }
    });

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

    for await (const chunk of completion) {
        // 处理usage信息
        if (!chunk.choices?.length) {
            console.log("\n" + "=".repeat(20) + "Token 使用情况" + "=".repeat(20) + "\n");
            console.log(chunk.usage);
            continue;
        }

        const delta = chunk.choices[0].delta;
        
        // 检查是否有reasoning_content属性
        if (!('reasoning_content' in delta)) {
            continue;
        }

        // 处理空内容情况
        if (!delta.reasoning_content && !delta.content) {
            continue;
        }

        // 处理开始回答的情况
        if (!delta.reasoning_content && !isAnswering) {
            console.log("\n" + "=".repeat(20) + "完整回复" + "=".repeat(20) + "\n");
            isAnswering = true;
        }

        // 处理思考过程
        if (delta.reasoning_content) {
            process.stdout.write(delta.reasoning_content);
            reasoningContent += delta.reasoning_content;
        }
        // 处理回复内容
        else if (delta.content) {
            process.stdout.write(delta.content);
            answerContent += delta.content;
        }
    }

    // 如果需要打印完整内容,解除以下的注释
    /*
    console.log("=" + "=".repeat(20) + "完整思考过程" + "=".repeat(20) + "\n");
    console.log(reasoningContent);
    console.log("=" + "=".repeat(20) + "完整回复" + "=".repeat(20) + "\n");
    console.log(answerContent);
    */
}

main().catch(console.error);

返回结果

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

嗯,今天老师布置了一个问题,要比较9.9和9.11哪个大。一开始看起来好像挺简单的,但仔细想想可能有哪里需要注意的地方吧。让我仔细想想看。

首先,我需要明确这两个数的形式。9.9应该是一个小数,也就是9又十分之九,对吧?而9.11可能是9又百分之十一,也就是9.11。不过有时候小数点后面可能有不同的位数,比如有时候会写成9.1和9.10,这时候位数不同但数值其实是一样的,比如9.1等于9.10,因为后面的0不影响大小。不过这里的情况是9.9和9.11,它们的位数不同,一个是十分位,一个是百分位,所以可能需要转换一下单位来比较。

...

911/100 保持不变

所以比较990/100和911/100,显然990比911大,所以990/100也就是99/10即9.9更大。

所以结论是9.9比9.11大。

不过可能还是有人会混淆,因为看到9.11的小数点后有两位,可能会觉得比一位的大,但实际上是小数点后的每一位代表的是更小的单位。比如十分位是0.1,百分位是0.01,所以第一位小数是十分位,第二位是百分位,所以9.9的十分位是9,也就是0.9,而9.11的十分位是1,百分位是1,所以总共是0.11,所以显然0.9比0.11大很多。

因此,最终的结论应该是9.9大于9.11。
====================完整回复====================

要比较9.9和9.11的大小,可以按照以下步骤进行:

1. **统一小数位数**:将9.9转换为9.90(保持两位小数),以便与9.11直接比较。
2. **逐位比较**:
   - **整数部分**:两者整数部分均为9,相等。
   - **小数部分**:比较0.90(9.90的小数部分)与0.11(9.11的小数部分)。显然,0.90 > 0.11。
3. **结论**:由于小数部分0.90 > 0.11,因此**9.9 > 9.11**。

**答案:9.9比9.11大。**

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": "9.9和9.11谁大"
        }
    ],
    "stream": true,
    "stream_options": {
        "include_usage": true
    }
}'

返回结果

data: {"choices":[{"delta":{"content":"","reasoning_content":"","role":"assistant"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1739071776,"system_fingerprint":null,"model":"deepseek-r1","id":"chatcmpl-a351a53b-00a6-9cf6-9c64-ce491bc462a8"}

data: {"choices":[{"delta":{"content":"","reasoning_content":"\n"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1739071776,"system_fingerprint":null,"model":"deepseek-r1","id":"chatcmpl-a351a53b-00a6-9cf6-9c64-ce491bc462a8"}

data: {"choices":[{"delta":{"content":"","reasoning_content":"好的"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1739071776,"system_fingerprint":null,"model":"deepseek-r1","id":"chatcmpl-a351a53b-00a6-9cf6-9c64-ce491bc462a8"}

data: {"choices":[{"delta":{"content":"","reasoning_content":","},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1739071776,"system_fingerprint":null,"model":"deepseek-r1","id":"chatcmpl-a351a53b-00a6-9cf6-9c64-ce491bc462a8"}

data: {"choices":[{"delta":{"content":"","reasoning_content":"我现在"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1739071776,"system_fingerprint":null,"model":"deepseek-r1","id":"chatcmpl-a351a53b-00a6-9cf6-9c64-ce491bc462a8"}

......

data: {"choices":[{"delta":{"content":"{","reasoning_content":""},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1739071797,"system_fingerprint":null,"model":"deepseek-r1","id":"chatcmpl-a2282bc4-2a01-99c5-a0a6-c1862a058f19"}

data: {"choices":[{"delta":{"content":"9","reasoning_content":""},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1739071797,"system_fingerprint":null,"model":"deepseek-r1","id":"chatcmpl-a2282bc4-2a01-99c5-a0a6-c1862a058f19"}

data: {"choices":[{"delta":{"content":".","reasoning_content":""},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1739071797,"system_fingerprint":null,"model":"deepseek-r1","id":"chatcmpl-a2282bc4-2a01-99c5-a0a6-c1862a058f19"}

data: {"choices":[{"delta":{"content":"9","reasoning_content":""},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1739071797,"system_fingerprint":null,"model":"deepseek-r1","id":"chatcmpl-a2282bc4-2a01-99c5-a0a6-c1862a058f19"}

data: {"choices":[{"delta":{"content":"}\n","reasoning_content":""},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1739071797,"system_fingerprint":null,"model":"deepseek-r1","id":"chatcmpl-a2282bc4-2a01-99c5-a0a6-c1862a058f19"}

data: {"choices":[{"delta":{"content":"\\]","reasoning_content":""},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1739071797,"system_fingerprint":null,"model":"deepseek-r1","id":"chatcmpl-a2282bc4-2a01-99c5-a0a6-c1862a058f19"}

data: {"choices":[{"finish_reason":"stop","delta":{"content":""},"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1739071797,"system_fingerprint":null,"model":"deepseek-r1","id":"chatcmpl-a2282bc4-2a01-99c5-a0a6-c1862a058f19"}

data: {"choices":[],"object":"chat.completion.chunk","usage":{"prompt_tokens":13,"completion_tokens":1436,"total_tokens":1449},"created":1739071797,"system_fingerprint":null,"model":"deepseek-r1","id":"chatcmpl-a2282bc4-2a01-99c5-a0a6-c1862a058f19"}

data: [DONE]

DashScope

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-r1",  # 此处以deepseek-r1为例,可按需更换模型名称。
    messages=messages,
    result_format='message',
    stream=True,
    incremental_output=True
)

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

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

for chunk in response:
    # 如果思考过程与回复皆为空,则忽略
    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="")
            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="")
            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)公司开发的智能助手DeepSeek-R1。如您有任何问题,我会尽我所能为您提供帮助。
====================完整回复====================
您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何问题,我会尽我所能为您提供帮助。

Java

示例代码

// dashscope SDK的版本 >= 2.18.2
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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;

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-r1")
                .messages(Arrays.asList(userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .incrementalOutput(true)
                .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)公司开发的智能助手DeepSeek-R1。如您有任何问题,我会尽我所能为您提供帮助。
====================完整回复====================
您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何问题,我会尽我所能为您提供帮助。

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

返回结果

id:1
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"您好","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":8,"input_tokens":5,"output_tokens":3},"request_id":"94bc32c6-c193-99a6-870e-7b790a6e8a76"}

id:2
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"!","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":9,"input_tokens":5,"output_tokens":4},"request_id":"94bc32c6-c193-99a6-870e-7b790a6e8a76"}

id:3
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"我是","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":10,"input_tokens":5,"output_tokens":5},"request_id":"94bc32c6-c193-99a6-870e-7b790a6e8a76"}

......

id:74
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"提供","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":81,"input_tokens":5,"output_tokens":76},"request_id":"94bc32c6-c193-99a6-870e-7b790a6e8a76"}

id:75
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"帮助","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":82,"input_tokens":5,"output_tokens":77},"request_id":"94bc32c6-c193-99a6-870e-7b790a6e8a76"}

id:76
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"。","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":83,"input_tokens":5,"output_tokens":78},"request_id":"94bc32c6-c193-99a6-870e-7b790a6e8a76"}

id:77
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"","role":"assistant"},"finish_reason":"stop"}]},"usage":{"total_tokens":83,"input_tokens":5,"output_tokens":78},"request_id":"94bc32c6-c193-99a6-870e-7b790a6e8a76"}

注意事项

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

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

  • DeepSeek-V3

    • 参数默认值:

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

      • top_p:0.6;

      • presence_penalty:0.95。

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

  • 我的应用模型在线体验:暂未支持DeepSeek模型,敬请关注后续动态。

  • 联网搜索与深度思考:当前暂不支持联网搜索;只要调用 DeepSeek-R1 类模型即代表开启深度思考(深度思考过程通过reasoning_content返回)。

常见问题

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

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

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

Q:如何接入 ChatboxDify

A:请根据您的使用情况参考以下步骤:

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

Chatbox

  1. 设置界面的模型提供方选择添加自定义提供方

    image.png

  2. 进行 API 设置

    1. 名称输入“阿里云-DeepSeek-R1”(可自定义);

    2. API 域名输入https://dashscope.aliyuncs.com/compatible-mode/v1

    3. API 路径输入/chat/completions

    4. API 密钥输入您的 API Key,获取方法请参见:获取API Key

    5. 模型输入您需要使用的 DeepSeek 模型,此处以 deepseek-r1 为例;

    6. 单击保存,完成设置。

    image.png

  3. 进行对话测试

    在输入框输入“你是谁?”进行测试:

    image.png

Dify

  1. 添加模型

    打开设置界面,单击模型供应商,找到 OpenAI-API-compatible 卡片,单击添加模型

  2. API 设置

    1. 模型类型选择 LLM

    2. 模型名称输入您需要使用的 DeepSeek 模型,此处以 deepseek-r1 为例;

    3. API Key 输入您的 API Key,获取方法请参见:获取API Key

    4. API endpoint URL 输入https://dashscope.aliyuncs.com/compatible-mode/v1

    5. 其它保持默认,单击右下角的保存。

      image.png

    6. 确认 OpenAI-API-compatible 卡片中的 DeepSeek 模型按钮处于开启状态。

      image.png

  3. 对话测试

    进入应用,在右上角的模型选择位置选择 OpenAI-API-compatible 下的 DeepSeek 模型,即可开始对话。

    image.png

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

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

错误码

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