
DeepSeek API 使用与 OpenAI 兼容的 API 格式,可以使用 OpenAI SDK 或与 OpenAI API 兼容的软件来访问 DeepSeek API 。
一、模型接口调用
第一到平台
https://platform.deepseek.com/api_keys申请api key。注意:API key 仅在创建时可见可复制,不要与他人共享API key或将其暴露在浏览器或其他客户端代码中。 如下使用python调用deepseek api演示:
第一安装OpenAI SDK,参数api_key替换成已申请的。
pip3 install openai
1、调用模型DeepSeek-V3接口deepseek-chat
from openai import OpenAI
client = OpenAI(api_key="sk-xxxxxxxxxxxxxx", base_url="https://api.deepseek.com")
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello,deepseek!"},
],
stream=False
)
print(response.choices[0].message.content)
----------------------
2、调用模型DeepSeek-R1接口deepseek-reasoner
from openai import OpenAI
client = OpenAI(api_key="sk-xxxxxxxxxxxxxx", base_url="https://api.deepseek.com")
# Round 1
messages = [{"role": "user", "content": "9.11 and 9.8, which is greater?"}]
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages,
stream=True
)
reasoning_content = ""
content = ""
for chunk in response:
if chunk.choices[0].delta.reasoning_content:
reasoning_content += chunk.choices[0].delta.reasoning_content
else:
content += chunk.choices[0].delta.content
# Round 2
messages.append({"role": "assistant", "content": content})
messages.append({'role': 'user', 'content': "How many Rs are there in the word 'strawberry'?"})
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages,
stream=True
)
# ...
----------------------
说明:
1、为与OpenAI兼容思考,可以将base_url设置为 https://api.deepseek.com/v1 此处 v1 与模型版本无关。
2、deepseek-chat模型已全面升级为DeepSeek-V3,接口不变。通过指定model='deepseek-chat' 即可调用 DeepSeek-V3。
3、deepseek-reasoner是DeepSeek最新推出的推理模型DeepSeek-R1。通过指定 model='deepseek-reasoner',即可调用DeepSeek-R1。
4、stream值设置为true使用流式输出,false非流式输出。
5、max_tokens:最终回答的最大长度(不含思维链输出),默认为4K,最大为8K。思维链的输出最多可以达到32K tokens。
6、上下文拼接:在每一轮对话过程中,模型会输出思维链内(reasoning_content)和最终回答(content)。在下一轮对话中,之前轮输出的思维链内容不会被拼接到上下文中,请注意,如果您在输入的messages序列中,传入了reasoning_content,API会返回400 错误。因此,请删除API响应中的 reasoning_content 字段,再发起 API 请求。
在 LangChain 中调用 DeepSeek API实例
pip3 install langchain_openai
from langchain_openai.chat_models.base import BaseChatOpenAI
llm = BaseChatOpenAI(
model='deepseek-chat',
openai_api_key='sk-xxxxxxxxxxxxxxxx',
openai_api_base='https://api.deepseek.com',
max_tokens=1024
)
response = llm.invoke("Hi!")
print(response.content)

二、模型价格与计费规则
模型价格以“百万 tokens”为单位。Token 是模型用来表明自然语言文本的的最小单位,可以是一个词、一个数字或一个标点符号等。根据模型输入和输出的总 token 数进行计量计费。
|
模型 |
上下文长度 |
最大思维链长度 |
最大输出长度 |
百万tokens 输入价格 (缓存命中) |
百万tokens 输入价格 (缓存未命中) |
百万tokens 输出价格 输出价格 |
|
deepseek-chat |
64K |
— |
8K |
0.5元 |
2元 |
8元 |
|
deepseek-reasoner |
64K |
32K |
8K |
1元 |
4元 |
16元 |
- deepseek-chat模型已经升级为 DeepSeek-V3;deepseek-reasoner模型为模型 DeepSeek-R1。
- 思维链为deepseek-reasoner模型在给出正式回答之前的思考过程。
- 如未指定 max_tokens,默认最大输出长度为 4K。调整 max_tokens,默认最大输出长度为 4K。调整 max_tokens以支持更长的输出。
- DeepSeek API 创新采用硬盘缓存,价格再降一个数量级,缓存命中的部分,DeepSeek 收费 0.1元 每百万 tokens。大模型的价格再降低一个数量级
- deepseek-reasoner的输出 token 数包含了思维链和最终答案的所有 token,其计价一样。
扣费规则
扣减费用 = token 消耗量 × 模型单价,对应的费用将直接从充值余额或赠送余额中进行扣减。 当充值余额与赠送余额同时存在时,优先扣减赠送余额。产品价格可能发生变动,DeepSeek 保留修改价格的权利。依据实际用量按需充值。
Temperature 设置:temperature参数默认为 1.0
|
场景 |
温度 |
|
代码生成/数学解题 |
0.0 |
|
数据抽取/分析 |
1.0 |
|
通用对话 |
1.3 |
|
翻译 |
1.3 |
|
创意类写作/诗歌创作 |
1.5 |
Token 用量计算
token 是模型用来表明自然语言文本的基本单位,也是计费单元,可以直观的理解为“字”或“词”;一般 1 个中文词语、1 个英文单词、1 个数字或 1 个符号计为 1 个 token。一般情况下模型中 token 和字数的换算比例大致如下:
- 1 个英文字符 ≈ 0.3 个 token。
- 1 个中文字符 ≈ 0.6 个 token。
但由于不同模型的分词不同,所以换算比例也存在差异,每一次实际处理 token 数量以模型返回为准。
离线计算 Tokens 用量
可以通过如下代码来运行 tokenizer,以离线计算一段文本的 Token 用量。chat_tokenizer_dir路径根据实际情况替换。
import transformers
chat_tokenizer_dir = "./deepseek_v3_tokenizerdeepseek_v3_tokenizer"
tokenizer = transformers.AutoTokenizer.from_pretrained(
chat_tokenizer_dir, trust_remote_code=True
)
result = tokenizer.encode("Hello!")
print(result)
三、接口调用响应错误码说明
在调用 DeepSeek API 时,可能会遇到以下错误。这里列出了相关错误的缘由及其解决方法。
|
错误码 |
描述 |
|
400 – 格式错误 |
缘由:请求体格式错误 解决方法:请根据错误信息提示修改请求体 |
|
401 – 认证失败 |
缘由:API key 错误,认证失败 解决方法:请检查您的 API key 是否正确,如没有 API key,请先 创建 API key |
|
402 – 余额不足 |
缘由:账号余额不足 解决方法:请确认账户余额,并前往 充值 页面进行充值 |
|
422 – 参数错误 |
缘由:请求体参数错误 解决方法:请根据错误信息提示修改相关参数 |
|
429 – 请求速率达到上限 |
缘由:请求速率(TPM 或 RPM)达到上限 解决方法:请合理规划您的请求速率。 |
|
500 – 服务器故障 |
缘由:服务器内部故障 解决方法:请等待后重试。若问题一直存在,请联系我们解决 |
|
503 – 服务器繁忙 |
缘由:服务器负载过高 解决方法:请稍后重试您的请求 |
四、接口调用常见问题
1、调用模型时的并发限制是多少?是否可以提高账号的并发上限?
当前阶段没有按照用户设置硬性并发上限。在系统总负载量较高时,基于系统负载和短时历史用量的动态限流模型可能会导致收到503或429错误码。目前暂不支持针对单个账号提高并发上限。
2、为什么API 返回比网页端慢?
网页端默认使用流式输出(stream=true),即模型每输出一个字符,都会增量地显示在前端。API 默认使用非流式输出(stream=false),即模型在所有内容输出完后,才会返回。可以通过开启 API 的 stream 模式来提升交互性。
3、为什么调用 API 时,持续返回空行?
为了保持 TCP 连接不会因超时中断,会在请求等待调度过程中,持续返回空行(非流式请求)或 SSE keep-alive 注释(: keep-alive,流式请求)。如果在解析 HTTP 响应,请注意处理这些空行或注释。
4、DeepSeek是否限制接口并发量?
DeepSeek API 不限制用户并发量 当服务器承受高流量压力时,请求发出后,可能收到如下格式的返回内容:
- 非流式请求:持续返回空行
- 流式请求:持续返回 SSE keep-alive 注释(: keep-alive)
在解析 HTTP 响应时注意处理这些空行或注释。服务会话时长最长30分钟。
5、DeepSeek API接口服务状态查看?
详见:https://status.deepseek.com/

看完本文如果喜爱,请点赞转发。你的点赞转发,就是我持续更新的动力。

















暂无评论内容