VOOZH about

URL: https://docs.litellm.ai/docs/providers/deepseek

⇱ Deepseek | liteLLM


Skip to main content

https://deepseek.com/

We support ALL Deepseek models, just set deepseek/ as a prefix when sending completion requests

API Key

# env variable
os.environ['DEEPSEEK_API_KEY']

Sample Usage

from litellm import completion
import os

os.environ['DEEPSEEK_API_KEY']=""
response = completion(
model="deepseek/deepseek-chat",
messages=[
{"role":"user","content":"hello from litellm"}
],
)
print(response)

Sample Usage - Streaming

from litellm import completion
import os

os.environ['DEEPSEEK_API_KEY']=""
response = completion(
model="deepseek/deepseek-chat",
messages=[
{"role":"user","content":"hello from litellm"}
],
stream=True
)

for chunk in response:
print(chunk)

Supported Models - ALL Deepseek Models Supported!

We support ALL Deepseek models, just set deepseek/ as a prefix when sending completion requests

Model NameFunction Call
deepseek-chatcompletion(model="deepseek/deepseek-chat", messages)
deepseek-codercompletion(model="deepseek/deepseek-coder", messages)

Reasoning Models

Model NameFunction Call
deepseek-reasonercompletion(model="deepseek/deepseek-reasoner", messages)

Thinking / Reasoning Mode

Enable thinking mode for DeepSeek reasoner models using thinking or reasoning_effort parameters:

  • thinking param
  • reasoning_effort param
from litellm import completion
import os

os.environ['DEEPSEEK_API_KEY']=""

resp = completion(
model="deepseek/deepseek-reasoner",
messages=[{"role":"user","content":"What is 2+2?"}],
thinking={"type":"enabled"},
)
print(resp.choices[0].message.reasoning_content)# Model's reasoning
print(resp.choices[0].message.content)# Final answer
from litellm import completion
import os

os.environ['DEEPSEEK_API_KEY']=""

resp = completion(
model="deepseek/deepseek-reasoner",
messages=[{"role":"user","content":"What is 2+2?"}],
reasoning_effort="medium",# low, medium, high all map to thinking enabled
)
print(resp.choices[0].message.reasoning_content)# Model's reasoning
print(resp.choices[0].message.content)# Final answer
note

DeepSeek only supports {"type": "enabled"} - unlike Anthropic, it doesn't support budget_tokens. Any reasoning_effort value other than "none" enables thinking mode.

Basic Usage

  • SDK
  • PROXY
from litellm import completion
import os

os.environ['DEEPSEEK_API_KEY']=""
resp = completion(
model="deepseek/deepseek-reasoner",
messages=[{"role":"user","content":"Tell me a joke."}],
)

print(
resp.choices[0].message.reasoning_content
)
  1. Setup config.yaml
model_list:
-model_name: deepseek-reasoner
litellm_params:
model: deepseek/deepseek-reasoner
api_key: os.environ/DEEPSEEK_API_KEY
  1. Run proxy
python litellm/proxy/main.py
  1. Test it!
curl -L -X POST 'http://0.0.0.0:4000/v1/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-d '{
"model": "deepseek-reasoner",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Hi, how are you ?"
}
]
}
]
}'
🚅
LiteLLM Enterprise
SSO/SAML, audit logs, spend tracking, multi-team management, and guardrails — built for production.
Learn more →