虽然DeepSeek提供了网页版和APP等免费使用方式,但很多高级应用则需要付费使用,使用API Key调用DeepSeek API是最常用和通用的方式。API密钥的实质是一组加密数字指纹,承载着身份验证、权限控制和计量计费功能。API Key是重要的数字资产,请勿以任何方式公开,以免安全风险或资金损失!

通过DeepSeek官网或第三方平台都可以获取DeepSeek API权限。在2.1节中介绍了从DeepSeek官网购买和获取DeepSeek API密钥,但官网服务器常因负载过高而卡顿,适合需要纯正模型和最新功能的用户。本节介绍几种第三方的DeepSeek模型接入渠道,其价格相对便宜,服务器性能也比较稳定。第三方渠道分发的API密钥不仅能用于DeepSeek模型,也可以用于Qwen、THUDM、BAAI等各种模型。


2.2.1 硅基流动(SiliconFlow)

硅基流动是集合等多种国产大模型的一站式云服务平台,提供包括DeepSeek、Qwen、SenseVoice、GLM在内的多种开源大语言模型、图片生成模型、代码生成模型、向量与重排序模型以及多模态大模型,覆盖语言、语音、图片、视频等多场景。其中,Qwen2.5(7B)等多个大模型API免费使用。

服务启用准备

1. 访问硅基流动官网(硅基流动用户系统,统一登录 SSO),初次使用需要注册账户并登录。

注意:

(1)推荐使用邀请码SM5lc4SJ注册,可以获赠2000万Tokens!

(2)在侧边栏中选择“余额充值”,可以在线充值购买Tokens。

2. 创建API 密钥。

API key是您访问SiliconCloud接口的凭证,具有该账户的完整权限。

(1)在左侧控制台中选择“API秘钥”,进入API管理页面,点击“新建 API 密钥”按钮后弹出新建密钥弹窗,如图2-5所示。

(2)在密钥描述栏填一个名字,点击“新建密钥”按钮即可新建一条API密钥。

(3)在API管理页面,点击“复制”按键复制生成的API key“sk-******”。

图2-5:在硅基流动创建API密钥

首次调用API

使用硅基流动平台的DeepSeek API Key时,重要字段规则的定义如下,更多参数设置请参见硅基流动的【用户指南】和【API手册】。

api_key='sk-***************************'

base_url='https://api.siliconflow.cn/v1'

model='DeepSeek-ai/DeepSeek-V3' #DeepSeek-V3模型

model='DeepSeek-ai/DeepSeek-R1' #DeepSeek-R1模型

model='Pro/DeepSeek-ai/DeepSeek-V3' #Pro版本DeepSeek-V3模型

model='Pro/DeepSeek-ai/DeepSeek-R1' #Pro版本DeepSeek-R1模型

在创建API密钥之后,你可以使用以下例程来访问DeepSeek API。其中,要将例程中的“sk-******”替换为用户自己的API key。

注意:本例程显式使用密钥不安全,只能用于测试!请参见【02.1.2 安全使用API Key】。

from openai import OpenAI

client = OpenAI(api_key="sk-******",

                base_url="https://api.siliconflow.cn/v1")

response = client.chat.completions.create(

    model='DeepSeek-ai/DeepSeek-R1',

    # model="Qwen/Qwen2.5-72B-Instruct",

    messages=[{'role': 'user',

               'content': "推理模型会给市场带来哪些新的机会"}

              ],

    stream=True

)

for chunk in response:

    if not chunk.choices:

        continue

    if chunk.choices[0].delta.content:

        print(chunk.choices[0].delta.content, end="", flush=True)

    if chunk.choices[0].delta.reasoning_content:

        print(chunk.choices[0].delta.reasoning_content, end="", flush=True

使用PyCharm软件调试与运行例程,结果如图2-6所示。

图2-6:调用硅基流动API访问DeepSeek例程的运行结果

编写DeepSeek对话网页

在创建DeepSeek API密钥后,无需任何编程基础,你就可以完成一个简易的DeepSeek对话网页。

(1)打开文本编辑器,复制粘贴如下的JavaScript例程,将例程中的“sk-******”替换为用户自己的API key,然后另存为testAPI_01.html文件。

(2)在资源管理器中双击testAPI_01.html文件,浏览器就会自动读取这个HTML文件,并将其渲染成网页。

(3)该网页包括上下两个对话框和一个发送按钮,如图2-7所示。在上方的对话框输入问题,然后按“发送”按钮,就会通过API访问硅基流动部署的DeepSeek模型,并在下方的对话框中显示模型的输出。

注意:本例程前端暴露密钥不安全,只能用于测试!请参见【02.1.2 安全使用API Key】。

<!DOCTYPE html>

<html lang="zh-CN">

<head>

    <meta charset="UTF-8">

    <title>硅基流动 DeepSeek 对话助手</title>

    <style>

        body {

            font-family: Arial, sans-serif;

            max-width: 800px;

            margin: 20px auto;

            padding: 20px;

        }

        .container {

            display: flex;

            flex-direction: column;

            gap: 10px;

        }

        /* 输入输出框样式 */

        textarea {

            width: 100%;

            height: 150px;  /* 初始高度 */

            padding: 10px;

            border: 1px solid #ccc;

            border-radius: 5px;

            resize: vertical;  /* 允许垂直调整大小 */

        }

        /* 发送按钮样式 */

        button {

            padding: 10px 20px;

            background-color: #4CAF50;  /* 绿色背景 */

            color: white;

            border: none;

            border-radius: 5px;

            cursor: pointer;

            width: 100px;

            align-self: flex-start;  /* 左对齐 */

            margin: 10px 0;  /* 上下边距 */

        }

        button:hover {

            background-color: #45a049;  /* 深绿色悬停效果 */

        }

    </style>

</head>

<body>

    <div class="container">

        <textarea id="input" placeholder="输入你的问题..."></textarea>

        <button onclick="sendMessage()">发送</button>

        <textarea id="output" placeholder="对话记录" readonly></textarea>

    </div>

    <script>

        // 替换为你的有效 API Key(注意前端暴露密钥不安全)

        const apiKey = "sk-******";

        // 修改为硅基流动官方接口地址

        const apiUrl = "https://api.siliconflow.cn/v1/chat/completions";

        async function sendMessage() {

            const inputElem = document.getElementById('input');

            const outputElem = document.getElementById('output');

            const userInput = inputElem.value.trim();

            if (!userInput) {

                alert("请输入内容");

                return;

            }

            try {

                outputElem.value += `用户:${userInput}\n`;

                // 按照官方示例构造请求体

                const requestBody = {

                    model: "DeepSeek-ai/DeepSeek-R1",  // 修改为指定模型

                    messages: [{

                        role: "user",

                        content: userInput

                    }],

                    stream: false,

                    max_tokens: 512,

                    enable_thinking: false,

                    temperature: 0.7,

                    top_p: 0.7,

                    frequency_penalty: 0.5,

                    response_format: { type: "text" }

                };

                const response = await fetch(apiUrl, {

                    method: 'POST',

                    headers: {

                        'Content-Type': 'application/json',

                        'Authorization': `Bearer ${apiKey}`

                    },

                    body: JSON.stringify(requestBody)

                });

                const data = await response.json();

                

                if (response.ok) {

                    const reply = data.choices[0].message.content;

                    outputElem.value += `助手:${reply}\n\n`;

                } else {

                    // 显示详细错误信息

                    outputElem.value += `错误:${data.error?.code || '未知'} - ${data.error?.message}\n\n`;

                }

                inputElem.value = '';

                outputElem.scrollTop = outputElem.scrollHeight;

            } catch (error) {

                outputElem.value += `网络错误:${error.message}\n\n`;

                outputElem.scrollTop = outputElem.scrollHeight;

            }

        }

        // 保持原有回车发送逻辑

        document.getElementById('input').addEventListener('keypress', (e) => {

            if (e.key === 'Enter' && !e.shiftKey) {

                e.preventDefault();

                sendMessage();

            }

        });

    </script>

</body>

</html>

client = OpenAI(api_key="sk-******",

                base_url="https://api.siliconflow.cn/v1")

图2-7:基于DeepSeek API的对话网页

2.2.2 阿里云百炼平台

阿里云是阿里巴巴集团旗下的全球领先云计算服务平台,提供弹性计算、数据库、存储、网络、安全及大数据处理等一站式云端解决方案。阿里云平台提供“通义千问(Qwen)”大语言模型服务,也提供多种DeepSeek模型部署方案,本文介绍基于百炼大模型服务平台通过API调用DeepSeek系列模型的方法。

服务启用准备

1. 访问阿里云百炼大模型服务平台(https://bailian.console.aliyun.com/),初次使用需要注册账户并开通百炼平台的模型服务,可以获得一定的免费额度。

注意:阿里云高校计划对在校大学生提供普惠算力,推荐进行学生或教师身份验证,可以获得优惠价格购买Tokens。

2. 创建API 密钥。

API key是调用模型服务的鉴权凭证,默认永久有效。请勿以任何方式公开API Key。

(1)在左侧控制台中选择“API-Key”进入API Key管理页面,点击“创建我的API-KEY”按钮后弹出创建密钥弹窗,如图2-7所示。

(2)在归属业务空间选择“默认业务空间”,在密钥描述栏填一个名字,点击“确定”按钮即可新建一条 API密钥。

(3)在API Key管理页面,点击密钥后的“查看”按键,就可以复制API key“sk-******”。

图2-8:在阿里云百炼平台创建API密钥

首次调用API

使用阿里云百炼平台的DeepSeek API Key时,重要字段规则的定义如下,更多参数设置请参见阿里云百炼平台的【用户指南】和【API参考】。

api_key='sk-***************************'

base_url='https://dashscope.aliyuncs.com/compatible-mode/v1'

model='DeepSeek-v3' #DeepSeek-V3模型

model='DeepSeek-r1' #DeepSeek-R1模型

在创建API 密钥之后,你可以使用以下例程来访问DeepSeek API。其中,要将例程中的“sk-******”替换为用户自己的API key。

注意:本例程显式使用密钥不安全,只能用于测试!请参见【02.1.2 安全使用API Key】。

from openai import OpenAI

client = OpenAI(

    api_key="sk-******",

    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"

)

completion = client.chat.completions.create(

    model="DeepSeek-r1",  # 此处以 DeepSeek-r1 为例,可按需更换模型名称。

    messages=[

        {'role': 'user', 'content': '如何将APIkey配置为环境变量'}

    ]

)

# 通过reasoning_content字段打印思考过程

print("思考过程:")

print(completion.choices[0].message.reasoning_content)

# 通过content字段打印最终答案

print("最终答案:")

print(completion.choices[0].message.content)

2.2.3 百度千帆平台

百度智能云是百度提供的云计算服务平台,为企业及开发者提供AI、大数据、云计算等一站式解决方案。百度千帆平台支持“文心(ERNIE)”大语言模型服务,也提供DeepSeek等模型接入方案,本文介绍基于百度千帆平台通过API调用DeepSeek系列模型的方法。

服务启用准备

1. 访问百度智能云平台(https://cloud.baidu.com/),初次使用需要注册并进行实名认证。

注意:推荐参加百度启航校园计划进行学生身份验证,部分产品可以获得优惠价格。

2. 创建API 密钥。

API key是调用模型服务的鉴权凭证,默认永久有效,请勿以任何方式公开API Key。

(1)进入百度千帆ModelBuilder控制台(https://console.bce.baidu.com/qianfan/overview),在左侧控制台选择“API Key”进入API Key管理页面,点击“创建API Key”按钮并选择产品权限,即可新建一条API密钥。

(3)点击“复制”按键,就可以复制API key“bce-******”,如图2-9所示。

图2-9:在阿里云百炼平台创建API密钥

首次调用API

百度千帆使用Open AI API (v2) 接口规范。使用百度千帆平台的DeepSeek API Key时,重要字段规则的定义如下,更多参数设置请参见百度千帆平台的【API参考】。也可以参考2.1节将API Key配置为环境变量,以降低密钥泄漏的风险。

api_key='bce-***************************'

base_url='https://qianfan.baidubce.com/v2'

model='DeepSeek-v3' #DeepSeek-V3模型

model='DeepSeek-r1' #DeepSeek-R1模型

在创建API密钥之后,你可以使用如下例程来访问DeepSeek API。其中,要将例程中的“bce-******”替换为用户自己的API key。

注意:本例程显式使用密钥不安全,只能用于测试!请参见【02.1.2 安全使用API Key】。

from openai import OpenAI

client = OpenAI(

    api_key="bce-******", # 替换为你的API Key

    base_url="https://qianfan.baidubce.com/v2"

)

completion = client.chat.completions.create(

    model="DeepSeek-r1",  # 此处以 DeepSeek-r1 为例,可按需更换模型名称。

    messages=[

        {'role': 'user', 'content': '如何将APIkey配置为环境变量'}

    ]

)

# 通过reasoning_content字段打印思考过程

print("思考过程:")

print(completion.choices[0].message.reasoning_content)

# 通过content字段打印最终答案

print("最终答案:")

print(completion.choices[0].message.content)


往期回顾:

【人工智能通识专栏】第一讲:LLM的发展历程

【人工智能通识专栏】第二讲:学会使用DeepSeek

【人工智能通识专栏】第三讲:DeepSeek API调用

Logo

纵情码海钱塘涌,杭州开发者创新动! 属于杭州的开发者社区!致力于为杭州地区的开发者提供学习、合作和成长的机会;同时也为企业交流招聘提供舞台!

更多推荐