上一篇 下一篇 分享链接 返回 返回顶部

从零跑通 DeepSeek API:账号、Key、Python 调用一次讲清楚

发布人:慈云数据-客服中心 发布时间:6小时前 阅读量:1

DeepSeek API接口调用教程|零基础可学

在大模型快速发展的今天,越来越多的开发者、创业者、产品经理、运营人员甚至非技术用户,都希望把AI能力接入到自己的应用、网站、自动化流程或内部工具中。相比直接使用网页端聊天,把AI能力通过API接口调用,可以实现更高的灵活性:比如自动生成文案、智能客服、代码辅助、知识库问答、数据分析、批量处理文本、接入企业系统等。

本文将以零基础也能看懂为目标,系统讲解 DeepSeek API 的基本概念、准备工作、接口调用方式、Python示例、常见参数、错误排查以及实际应用思路。即使你之前没有调用过任何AI API,也可以按照本文一步一步完成自己的第一次接口调用。


一、什么是 DeepSeek API?

DeepSeek API 可以简单理解为:DeepSeek 提供给开发者使用大模型能力的“程序入口”。

平时你在网页上和AI聊天,是通过浏览器输入问题,然后网页把问题发送给模型,模型再返回回答。而API调用则是你用代码或工具,把问题发送给DeepSeek服务器,再接收返回结果。

举个生活化的例子:

  • 网页聊天:你打开餐厅菜单,自己点菜;
  • API接口:你写好点餐单,让服务员按照规则自动帮你点菜;
  • DeepSeek模型:相当于后厨,负责根据你的需求“制作回答”。

通过API,你可以把DeepSeek的能力集成到:

  • 自己的网站;
  • 微信机器人;
  • 企业内部系统;
  • 客服系统;
  • 数据分析工具;
  • 浏览器插件;
  • 自动写作工具;
  • 知识库问答系统;
  • 工作流自动化平台;
  • App、小程序或桌面软件。

二、调用 DeepSeek API 前需要准备什么?

在正式调用之前,通常需要准备以下几项内容。

1. DeepSeek账号

首先你需要拥有DeepSeek相关平台账号,并登录到开发者控制台或API管理页面。

一般来说,你需要完成:

  1. 注册账号;
  2. 登录平台;
  3. 进入API管理页面;
  4. 创建或查看API Key;
  5. 根据需要充值或开通额度。

不同平台页面可能会随时间调整,但核心流程基本一致。


2. API Key

API Key 是调用接口时最重要的凭证,可以理解为“接口密码”。

它的作用是告诉DeepSeek服务器:

“我是合法用户,我有权限调用模型。”

API Key 通常是一串较长的字符串,例如:

sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

注意:这里的示例只是格式演示,不是真实可用的密钥。


3. 编程环境

如果你只是想快速测试,可以使用以下方式:

  • 使用命令行工具 curl
  • 使用 Postman、Apifox 等接口测试工具;
  • 使用 Python;
  • 使用 Node.js;
  • 接入已有后端服务。

对于零基础用户,推荐从 Python 开始,因为它语法简单,示例丰富,适合快速上手。


三、重要安全提醒:不要泄露 API Key

API Key 一定要妥善保存,千万不要随便发给别人,也不要直接写在公开代码仓库里。

错误示例:

api_key = "sk-你的真实APIKey"

如果你把包含真实API Key的代码上传到GitHub等公开平台,别人可能会拿你的Key进行调用,产生费用或造成安全风险。

更推荐的做法是使用环境变量,例如:

export DEEPSEEK_API_KEY="你的APIKey"

在Python中读取:

import os

api_key = os.getenv("DEEPSEEK_API_KEY")

这样可以避免把密钥直接写进代码。


四、DeepSeek API 的基本调用逻辑

不管你使用哪种语言,调用AI接口的基本流程通常都是类似的:

  1. 准备API Key;
  2. 确定接口地址;
  3. 设置请求头;
  4. 编写请求体;
  5. 发送请求;
  6. 接收返回结果;
  7. 解析模型回答。

以聊天模型为例,一次请求通常包含:

  • 使用哪个模型;
  • 用户说了什么;
  • 系统角色设定;
  • 温度等生成参数;
  • 是否流式输出;
  • 最大输出长度等。

典型请求结构类似:

{
  "model": "deepseek-chat",
  "messages": [
    {
      "role": "system",
      "content": "你是一个专业、耐心的中文助手。"
    },
    {
      "role": "user",
      "content": "请用通俗语言解释什么是API。"
    }
  ],
  "temperature": 0.7
}

其中,messages 是对话内容,通常由多个消息组成。


五、messages 参数详解

在调用聊天接口时,messages 是最核心的参数之一。它是一个数组,每个元素代表一条消息。

常见角色有:

1. system

system 用来设定模型的身份、风格、规则。

例如:

{
  "role": "system",
  "content": "你是一名资深Python老师,回答时要适合零基础学生理解。"
}

它的作用类似于“给AI设定工作说明”。


2. user

user 表示用户输入的问题。

例如:

{
  "role": "user",
  "content": "请解释Python中的列表是什么。"
}

这是用户真正想问的问题。


3. assistant

assistant 表示模型之前的回答。多轮对话时,可以把历史回答也传入,让模型理解上下文。

例如:

{
  "role": "assistant",
  "content": "Python列表是一种可以存放多个元素的数据结构。"
}

多轮对话时,通常会把过去的 userassistant 消息一起发送给模型。


六、使用 curl 调用 DeepSeek API

如果你暂时不想写代码,可以先用 curl 测试接口。

示例:

curl https://api.deepseek.com/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer 你的APIKey" \
  -d '{
    "model": "deepseek-chat",
    "messages": [
      {
        "role": "system",
        "content": "你是一个专业的中文助手。"
      },
      {
        "role": "user",
        "content": "请用一句话介绍DeepSeek API。"
      }
    ],
    "temperature": 0.7
  }'

如果调用成功,接口会返回类似JSON格式的数据。你可以在返回内容中找到模型生成的回答。

一般来说,回答内容可能位于类似下面的位置:

{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "DeepSeek API 是一种让开发者通过程序调用DeepSeek大模型能力的接口。"
      }
    }
  ]
}

你真正需要读取的通常是:

choices[0].message.content

七、使用 Python 调用 DeepSeek API

下面我们用Python实现一个最简单的接口调用示例。

1. 安装 requests 库

如果你没有安装 requests,可以执行:

pip install requests

如果你的电脑同时有多个Python版本,也可以使用:

python -m pip install requests

或:

python3 -m pip install requests

2. 编写基础调用代码

新建一个文件,例如:

deepseek_demo.py

写入以下代码:

import os
import requests

api_key = os.getenv("DEEPSEEK_API_KEY")

if not api_key:
    raise ValueError("请先设置环境变量 DEEPSEEK_API_KEY")

url = "https://api.deepseek.com/chat/completions"

headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {api_key}"
}

data = {
    "model": "deepseek-chat",
    "messages": [
        {
            "role": "system",
            "content": "你是一个专业、耐心的中文AI助手。"
        },
        {
            "role": "user",
            "content": "请用通俗语言解释什么是API。"
        }
    ],
    "temperature": 0.7
}

response = requests.post(url, headers=headers, json=data)

print(response.status_code)
print(response.text)

运行:

python deepseek_demo.py

如果配置正确,你会看到接口返回结果。


3. 提取模型回答

上面的代码会打印完整JSON。实际开发中,我们通常只需要模型回答内容,可以这样写:

import os
import requests

api_key = os.getenv("DEEPSEEK_API_KEY")

url = "https://api.deepseek.com/chat/completions"

headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {api_key}"
}

data = {
    "model": "deepseek-chat",
    "messages": [
        {"role": "system", "content": "你是一个专业中文助手。"},
        {"role": "user", "content": "请给我三个学习Python的建议。"}
    ],
    "temperature": 0.7
}

response = requests.post(url, headers=headers, json=data)

result = response.json()

answer = result["choices"][0]["message"]["content"]

print("AI回答:")
print(answer)

这段代码更接近实际项目中的写法。


八、使用 OpenAI SDK 兼容方式调用

DeepSeek API 在很多场景下兼容 OpenAI SDK 的调用方式。这样做的好处是:如果你之前用过OpenAI接口,切换到DeepSeek时会更方便。

首先安装SDK:

pip install openai

Python示例:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com"
)

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "你是一个专业中文助手。"},
        {"role": "user", "content": "请用简单语言介绍大模型API的用途。"}
    ],
    temperature=0.7
)

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

这种写法简洁清晰,也更适合长期维护项目。


九、常用参数说明

调用接口时,除了 modelmessages,还有一些常用参数值得了解。

1. model

指定你要使用的模型,例如:

"model": "deepseek-chat"

不同模型可能适合不同任务。例如有的更适合日常对话,有的更适合推理、代码或复杂问题。实际使用时应以官方文档中当前支持的模型名称为准。


2. temperature

temperature 控制回答的随机性和创造性。

  • 值越低,回答越稳定、保守;
  • 值越高,回答越发散、多样;
  • 常见取值范围是 0 到 1 或更高,具体以接口文档为准。

建议:

  • 事实问答、代码生成:0.2 ~ 0.5
  • 文案创作、头脑风暴:0.7 ~ 1.0
  • 严谨总结、格式转换:0 ~ 0.3

例如:

"temperature": 0.3

3. max_tokens

max_tokens 用来限制模型最多输出多少内容。

如果你希望回答简短,可以设置小一些;如果需要长文,可以设置大一些。

例如:

"max_tokens": 1000

注意:输入和输出通常都会消耗token,token可以粗略理解为模型处理文本的计量单位。中文里,一个汉字或词语可能会被拆成不同token,具体计算方式由模型分词规则决定。


4. stream

stream 表示是否启用流式输出。

普通输出是模型生成完完整答案后一次性返回;流式输出则是边生成边返回,类似网页聊天中一个字一个字出现。

适合使用流式输出的场景:

  • 聊天机器人;
  • 在线客服;
  • 网页端AI助手;
  • 长文本生成;
  • 希望用户更快看到反馈的应用。

示例:

"stream": true

对于初学者,建议先使用非流式调用,等理解基础流程后再学习流式输出。


十、实现一个简单的命令行AI助手

下面我们做一个简单实用的小项目:在命令行中输入问题,DeepSeek返回答案。

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com"
)

messages = [
    {
        "role": "system",
        "content": "你是一个耐心、专业、擅长用中文解释问题的AI助手。"
    }
]

print("DeepSeek命令行助手已启动,输入 exit 退出。")

while True:
    user_input = input("\n你:")

    if user_input.lower() in ["exit", "quit"]:
        print("助手:再见!")
        break

    messages.append({
        "role": "user",
        "content": user_input
    })

    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=messages,
        temperature=0.7
    )

    answer = response.choices[0].message.content

    print("\n助手:")
    print(answer)

    messages.append({
        "role": "assistant",
        "content": answer
    })

这个程序实现了多轮对话,因为它会把之前的聊天记录保存在 messages 中。

不过要注意:如果对话越来越长,传给模型的上下文也会越来越长,可能导致token消耗增加,甚至超过上下文长度限制。因此实际项目中需要做历史消息裁剪或摘要。


十一、如何让AI回答更符合你的需求?

很多初学者调用API后会发现:模型有时回答不够稳定,或者格式不是自己想要的。这时需要优化提示词,也就是Prompt。

1. 明确角色

不推荐:

写一篇文章

推荐:

你是一名有10年经验的新媒体编辑,请写一篇适合公众号发布的文章。

2. 明确输出格式

不推荐:

分析这个产品

推荐:

请从以下5个维度分析这个产品:
1. 目标用户
2. 核心功能
3. 使用场景
4. 优势
5. 改进建议
请用Markdown表格输出。

3. 给出约束条件

例如:

请写一篇800字左右的中文介绍,语气专业但通俗,不要使用过多术语,适合零基础读者。

约束越清楚,模型越容易给出你想要的结果。


4. 提供示例

如果你希望AI按照某种风格输出,可以给它一个示例。

例如:

请按照以下格式输出:

标题:
摘要:
正文:
结论:

示例可以显著提升输出稳定性。


十二、常见错误与排查方法

在API调用过程中,新手最容易遇到以下问题。

1. 401 Unauthorized

含义:认证失败。

常见原因:

  • API Key写错;
  • Authorization请求头格式不正确;
  • API Key已失效;
  • 没有正确设置环境变量。

正确格式一般是:

Authorization: Bearer 你的APIKey

注意 Bearer 后面有一个空格。


2. 400 Bad Request

含义:请求参数有问题。

可能原因:

  • JSON格式错误;
  • model 名称写错;
  • messages 格式不正确;
  • 参数类型不符合要求;
  • 输入内容超过限制。

建议打印完整错误信息:

print(response.status_code)
print(response.text)

3. 429 Too Many Requests

含义:请求过于频繁,触发限流。

解决方法:

  • 降低请求频率;
  • 增加重试间隔;
  • 检查账号额度和并发限制;
  • 批量任务中加入队列控制。

4. 余额不足或额度不足

如果接口返回与余额、额度相关的错误,需要检查账户是否有可用额度。

建议:

  • 查看控制台用量;
  • 检查充值状态;
  • 关注调用频率;
  • 对长文本任务控制输出长度。

5. 网络连接失败

如果请求无法连接,可能是:

  • 本地网络问题;
  • 代理配置问题;
  • 域名访问异常;
  • 服务器临时不可用。

可以先用浏览器或命令行测试网络,再排查代码问题。


十三、实际开发中的最佳实践

1. 不要在前端暴露API Key

如果你开发网页应用,不要直接在前端JavaScript中写API Key。因为浏览器端代码用户可以看到,密钥很容易泄露。

推荐架构:

前端页面 → 你的后端服务 → DeepSeek API

由你的后端保存API Key,前端只请求你的后端接口。


2. 记录日志但不要记录敏感信息

开发时可以记录请求状态、耗时、错误信息等,但不要把API Key写入日志。

如果用户输入中包含隐私信息,也要谨慎处理。


3. 控制上下文长度

多轮对话时,不要无限制保存全部历史消息。可以采用:

  • 只保留最近几轮;
  • 将较早对话总结成摘要;
  • 按主题新建会话;
  • 设置最大token预算。

4. 设置超时时间

使用 requests 时建议设置超时,避免程序一直等待:

response = requests.post(
    url,
    headers=headers,
    json=data,
    timeout=60
)

5. 增加异常处理

更稳健的代码示例:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com"
)

try:
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[
            {"role": "user", "content": "请解释什么是机器学习。"}
        ],
        temperature=0.5
    )

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

except Exception as e:
    print("调用失败:", e)

实际生产环境中,还可以加入重试机制、限流机制、错误告警等。


十四、DeepSeek API 可以做哪些项目?

如果你已经学会基础调用,可以尝试以下项目。

1. 智能客服

将用户问题发送给模型,让AI自动回答常见问题。结合企业知识库后,可以实现更准确的业务问答。

2. 文章生成工具

输入主题、关键词、目标读者,自动生成文章大纲、标题、正文、摘要和发布文案。

3. 代码解释助手

把代码片段发送给模型,让它解释代码含义、指出问题、给出优化建议。

4. 简历优化工具

用户输入个人经历,AI帮助润色简历、提炼项目亮点、生成面试自我介绍。

5. 数据分析助手

把表格字段说明、业务背景和问题发给模型,让AI辅助分析数据含义、生成SQL语句或分析报告。

6. 知识库问答系统

结合向量数据库、文档切片和检索增强生成技术,让AI基于企业文档进行回答。


十五、一个完整的小案例:生成营销文案

假设你要做一个自动生成营销文案的小工具,用户输入产品信息,AI输出短视频文案。

示例代码:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com"
)

product_name = input("请输入产品名称:")
target_user = input("请输入目标用户:")
selling_points = input("请输入产品卖点:")

prompt = f"""
你是一名资深短视频营销文案策划。

请根据以下信息生成一段适合短视频口播的中文文案:

产品名称:{product_name}
目标用户:{target_user}
产品卖点:{selling_points}

要求:
1. 开头3秒吸引注意力;
2. 语言通俗、有画面感;
3. 字数控制在200字以内;
4. 最后加入行动号召;
5. 不要夸大承诺。
"""

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "你擅长创作真实、自然、有转化力的中文营销文案。"},
        {"role": "user", "content": prompt}
    ],
    temperature=0.8
)

print("\n生成结果:")
print(response.choices[0].message.content)

这个案例的核心思路是:把用户输入转换成结构化Prompt,再发送给模型,最后展示模型结果。


十六、费用与Token的基本理解

调用API通常会根据token数量计费。你可以把token理解为模型处理文本的基本单位。

一次调用的费用通常与以下因素有关:

  • 输入内容长度;
  • 输出内容长度;
  • 使用的模型;
  • 调用次数;
  • 是否进行长上下文处理。

为了控制成本,可以采取以下方式:

  1. 不传无关历史消息;
  2. 限制最大输出长度;
  3. 对长文档先摘要再处理;
  4. 批量任务设置合理频率;
  5. 定期查看用量统计;
  6. 根据任务选择合适模型。

对于刚开始学习的用户,建议先用短问题测试,确认流程跑通后,再进行复杂任务开发。


十七、零基础学习路线建议

如果你是完全零基础,建议按照下面路线学习:

第一阶段:会调用

目标是跑通第一个API请求。

你需要掌握:

  • API Key是什么;
  • 请求地址是什么;
  • 请求头怎么写;
  • messages怎么组织;
  • 如何查看返回结果。

第二阶段:会改参数

目标是让模型回答更符合需求。

你需要掌握:

  • temperature;
  • max_tokens;
  • system prompt;
  • 多轮对话;
  • 输出格式控制。

第三阶段:会做小工具

目标是完成一个可用脚本。

可以尝试:

  • 命令行聊天助手;
  • 文案生成器;
  • 标题生成器;
  • 翻译工具;
  • 文章摘要工具。

第四阶段:接入真实项目

目标是把AI能力融入业务系统。

你需要学习:

  • 后端接口开发;
  • 数据库存储;
  • 用户权限;
  • 日志监控;
  • 异常处理;
  • 成本控制;
  • 安全策略。

十八、总结

DeepSeek API 的核心并不复杂。对于初学者来说,只要理解以下几点,就已经掌握了入门关键:

  1. API 是程序调用AI能力的入口;
  2. API Key 是身份凭证,必须妥善保管;
  3. 请求时需要设置接口地址、请求头和请求体;
  4. messages 用来传递对话内容;
  5. system 可以设定AI角色和规则;
  6. user 是用户输入的问题;
  7. 返回结果通常从 choices[0].message.content 中读取;
  8. Python 和 OpenAI SDK 都可以较方便地调用;
  9. 实际开发中要注意安全、限流、成本和错误处理;
  10. 学会基础调用后,就可以构建各种AI应用。

如果你是零基础,不必一开始就追求复杂项目。最好的学习方式是:先用最简单的示例跑通接口,再逐步修改Prompt、参数和业务逻辑。当你能稳定地把输入发送给模型,并正确处理返回结果时,就已经迈出了AI应用开发最重要的一步。

DeepSeek API 的价值在于,它不仅是一个聊天接口,更是把大模型能力嵌入现实业务流程的工具。无论你想做智能客服、自动写作、代码助手、数据分析,还是企业知识库问答,API调用都是基础中的基础。掌握它,你就拥有了把AI能力真正落地到产品和工作的入口。

目录结构
全文