DeepSeek-阿里雲

更新時間:
Copy as MD

本文檔介紹如何在阿里雲百鍊平台通過OpenAI相容介面或DashScope SDK調用DeepSeek系列模型。

重要

deepseek-v3、deepseek-v3.1、deepseek-v3.2、deepseek-v3.2-exp、deepseek-r1、deepseek-r1-0528、deepseek-r1-distill-qwen-7b/14b/32b 將於202679下架。推薦轉用:qwen3.7-plusqwen3.7-maxqwen3.6-flash

服務接入地址

不同地區的服務接入地址不同,請根據您選擇的地區配置對應的 Base URL。各地區可調用的模型及限流不同,請參見限流文檔。

OpenAI相容

華北2(北京)

SDK 調用配置的base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1

HTTP 要求地址:POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions

美國(維吉尼亞)

SDK 調用配置的base_urlhttps://dashscope-us.aliyuncs.com/compatible-mode/v1

HTTP 要求地址:POST https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions

新加坡

SDK 調用配置的base_urlhttps://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1

HTTP 要求地址:POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions

調用時請將WorkspaceId替換為真實的 Workspace ID。

德國(法蘭克福)

SDK 調用配置的base_urlhttps://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/compatible-mode/v1

HTTP 要求地址:POST https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions

調用時請將WorkspaceId替換為真實的 Workspace ID。

日本(東京)

SDK 調用配置的base_urlhttps://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/compatible-mode/v1

HTTP 要求地址:POST https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions

調用時請將WorkspaceId替換為真實的 Workspace ID。

DashScope

華北2(北京)

HTTP 要求地址為POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation

SDK 調用無需配置 base_url

美國(維吉尼亞)

HTTP 要求地址為POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/text-generation/generation

SDK 調用配置的base_urldashscope.base_http_api_url = "https://dashscope-us.aliyuncs.com/api/v1"

新加坡

HTTP 要求地址為POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation

SDK 調用配置的base_urldashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"

調用時請將WorkspaceId替換為真實的 Workspace ID。

德國(法蘭克福)

HTTP 要求地址為POST https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation

SDK 調用配置的base_urldashscope.base_http_api_url = "https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1"

調用時請將WorkspaceId替換為真實的 Workspace ID。

日本(東京)

HTTP 要求地址為POST https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation

SDK 調用配置的base_urldashscope.base_http_api_url = "https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/api/v1"

調用時請將WorkspaceId替換為真實的 Workspace ID。

快速開始

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://{WorkspaceId}.ap-southeast-1.maas.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)
        print("Request ID:", chunk.id)
        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)
Request ID: chatcmpl-a1b2c3d4-e5f6-7890-abcd-ef1234567890

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://{WorkspaceId}.ap-southeast-1.maas.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);
                console.log('Request ID:', chunk.id);
                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 }
}
Request ID: chatcmpl-a1b2c3d4-e5f6-7890-abcd-ef1234567890

HTTP

範例程式碼

curl

curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.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
import dashscope
from dashscope import Generation

dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"

# 初始化請求參數
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)
print("Request ID:", chunk.request_id)

返回結果

====================思考過程====================
嗯,使用者問了一個非常簡單的自我介紹問題:"你是誰"。
我需要明確自己的身份,用簡潔友好的方式介紹我是DeepSeek,說明我的創造者、基本特性和可提供的協助。
想到了可以這樣組織回答:先直接表明身份,說明由深度求索公司創造,然後列出一些關鍵特點(免費、長上下文、檔案上傳等),最後以友好的邀請結束,詢問是否需要協助。
====================完整回複====================
你好!我是 DeepSeek,由深度求索公司創造的 AI 助手。
我可以幫你解答各種問題、進行文字創作、分析文檔、編程輔助等等。我最大的特點是**免費使用**、**超長上下文**(能一次處理整本三體三部曲那麼多內容)、支援**檔案上傳**和**連網搜尋**(需手動開啟)。
有什麼我可以幫你的嗎?不管是學習、工作還是日常閑聊,我都很樂意陪你聊聊!
====================Token 消耗====================
{"input_tokens": 6, "output_tokens": 240, "total_tokens": 246, "output_tokens_details": {"reasoning_tokens": 92}}
Request ID: 85735883-9062-9c33-a963-0bc12584ee68

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

public class Main {
        // 以下為華北2(北京)地區的配置,調用時請將WorkspaceId替換為真實的業務空間ID,各地區的配置不同。
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";
    private static StringBuilder reasoningContent = new StringBuilder();
    private static StringBuilder finalContent = new StringBuilder();
    private static boolean isFirstPrint = true;
    private static String requestId = "";
    private static void handleGenerationResult(GenerationResult message) {
        requestId = message.getRequestId();
        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("http", "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1");
            Message userMsg = Message.builder().role(Role.USER.getValue()).content("你是誰?").build();
            streamCallWithMessage(gen, userMsg);
            System.out.println("\nRequest ID: " + requestId);
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.err.println("An exception occurred: " + e.getMessage());
        }
    }
}

返回結果

====================思考過程====================
嗯,使用者問了一個非常簡單的自我介紹問題:"你是誰"。
我需要明確自己的身份,用簡潔友好的方式介紹我是DeepSeek,說明我的創造者、基本特性和可提供的協助。
想到了可以這樣組織回答:先直接表明身份,說明由深度求索公司創造,然後列出一些關鍵特點(免費、長上下文、檔案上傳等),最後以友好的邀請結束,詢問是否需要協助。
====================完整回複====================
你好!我是 DeepSeek,由深度求索公司創造的 AI 助手。
我可以幫你解答各種問題、進行文字創作、分析文檔、編程輔助等等。我最大的特點是**免費使用**、**超長上下文**(能一次處理整本三體三部曲那麼多內容)、支援**檔案上傳**和**連網搜尋**(需手動開啟)。
有什麼我可以幫你的嗎?不管是學習、工作還是日常閑聊,我都很樂意陪你聊聊!

HTTP

範例程式碼

curl

curl -X POST "https://{WorkspaceId}.ap-southeast-1.maas.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://{WorkspaceId}.cn-beijing.maas.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://{WorkspaceId}.cn-beijing.maas.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://{WorkspaceId}.cn-beijing.maas.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
# 以下為華北2(北京)地區的配置,調用時請將WorkspaceId替換為真實的業務空間ID,各地區的配置不同。
dashscope.base_http_api_url = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1"
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-pro-us

支援

支援

支援

支援

不支援

deepseek-v4-flash

支援

支援

支援

支援

不支援

deepseek-v4-flash-us

支援

支援

支援

支援

不支援

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-pro-us

1.0

1.0

-

-

393,216

deepseek-v4-flash

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 快速且經濟高效,推薦優先使用 deepseek-v4-pro。

模型上下文長度與價格資訊請參見百鍊控制台。

按照模型的輸入與輸出 Token 計費。

思考模式下,思維鏈按照輸出 Token 計費。

常見問題

可以上傳圖片或文檔進行提問嗎

DeepSeek 模型僅支援文本輸入,不支援圖片或文檔輸入。如需圖片輸入,請使用千問VL模型;如需文檔輸入,請使用Qwen-Long模型。

如何查看Token消耗調用次數?

模型調用完一小時後,在模型觀測版面設定查詢條件(例如,選擇時間範圍、業務空間等),再在模型列表地區找到目標模型並單擊操作列的监控,即可查看該模型的調用統計結果。具體請參見模型監控文檔。

資料按小時更新,高峰期可能有小時級延遲,請您耐心等待。

錯誤碼

如果執行報錯,請參見錯誤碼進行解決。