Skip to main content

Overview

DeepSeek is an OpenAI-compatible provider with a dedicated Bifrost provider implementation for DeepSeek’s endpoint layout. Bifrost uses the shared OpenAI-compatible request and response converters, while preserving DeepSeek-specific extra parameters and routing text completions to the beta FIM endpoint. Key characteristics:
  • OpenAI-compatible chat - Chat Completions use /chat/completions
  • Streaming support - Server-Sent Events for chat and text completions
  • Tool calling - Function tools are passed through using the OpenAI-compatible schema
  • Reasoning support - Reasoning parameters and DeepSeek extra parameters are forwarded
  • Responses API - Supported by converting Responses requests to Chat Completions internally
  • Beta text completions - Text/FIM completions use DeepSeek’s /beta/completions endpoint

Supported Operations

OperationNon-StreamingStreamingEndpoint
Chat Completions/chat/completions
Responses API/chat/completions
Text Completions/beta/completions
List Models-/models
Embeddings-
Image Generation-
Speech (TTS)-
Transcriptions (STT)-
Files-
Batch-
Unsupported Operations (❌): Embeddings, Image Generation, Speech, Transcriptions, Files, Batch, cached content, containers, token counting, compaction, OCR, rerank, video, and passthrough are not supported by the upstream DeepSeek API through this provider. These return UnsupportedOperationError.

Setup & Configuration

Configure DeepSeek as a provider.
DeepSeek provider dashboard
  1. Navigate to Models > Model Providers. Look for DeepSeek under Configured Providers. If it is missing, click on Add New Provider and select DeepSeek.
  2. Click Add Key or edit an existing key.
  3. Set a name for your key.
  4. Paste your API key directly or use an environment variable (for example, env.DEEPSEEK_API_KEY).
  5. Set Allowed Models to All Models (default) or the specific model allowlist you want this key to serve.
  6. Save the provider configuration.

1. Chat Completions

Request Parameters

DeepSeek supports OpenAI-compatible chat completion parameters. For the full parameter reference and message conversion behavior, see OpenAI Chat Completions.

Filtered Parameters

Removed for DeepSeek compatibility:
  • prediction - OpenAI-specific predicted output
  • prompt_cache_key - OpenAI-specific prompt cache key
  • prompt_cache_retention - OpenAI-specific prompt cache retention
  • verbosity - Anthropic-specific
  • store - OpenAI-specific response storage
  • web_search_options - OpenAI-specific web search options

Reasoning Parameter

DeepSeek delegates through ToOpenAIChatRequest with provider-specific compatibility handling. Reasoning effort is normalized using the OpenAI-compatible provider convention, and DeepSeek V4 models preserve reasoning.effort: "max" when requested. Assistant-message reasoning details are stripped before sending follow-up messages because DeepSeek rejects reasoning_details in assistant messages.

Extra Parameters

DeepSeek enables passthrough extra parameters for chat and text completion requests. Provider-specific options such as DeepSeek thinking controls can be sent through extra_params without being dropped by Bifrost. DeepSeek supports standard OpenAI message types, tools, responses, and streaming formats. For details on message handling, tool conversion, responses, and streaming, refer to OpenAI Chat Completions.

2. Responses API

Bifrost converts Responses API format to Chat Completions internally, then converts the response back:
BifrostResponsesRequest
  → ToChatRequest()
  → ChatCompletion
  → ToBifrostResponsesResponse()
Same parameter support as Chat Completions with response format differences (output items instead of message content). Streaming Responses requests are also routed through Chat Completions streaming.

3. Text Completions

DeepSeek supports beta text/FIM completions through /beta/completions:
ParameterMapping
promptSent as-is
max_tokensmax_tokens
temperaturetemperature
top_ptop_p
stopstop sequences
extra_paramsPassed through to DeepSeek
Response returns choices[].text with completion text.

4. Text Completions Streaming

Streaming text completions use DeepSeek’s OpenAI-compatible SSE format on /beta/completions.

5. List Models

Lists available models from DeepSeek through /models.

Unsupported Features

FeatureReason
EmbeddingNot offered by DeepSeek API through this provider
Image GenerationNot offered by DeepSeek API through this provider
Speech/TTSNot offered by DeepSeek API through this provider
Transcription/STTNot offered by DeepSeek API through this provider
Batch OperationsNot offered by DeepSeek API through this provider
File ManagementNot offered by DeepSeek API through this provider
Cached ContentOnly Gemini and Vertex AI support cached content in Bifrost
Container ManagementNot offered by DeepSeek API through this provider
Token CountingNot offered by DeepSeek API through this provider
Rerank/OCR/VideoNot offered by DeepSeek API through this provider

Caveats

Severity: Low Behavior: DeepSeek defaults to https://api.deepseek.com Impact: Custom DeepSeek-compatible deployments must override network_config.base_url Code: NewDeepSeekProvider sets the default base URL when no provider-level base URL is configured
Severity: Medium Behavior: Text completions are routed to /beta/completions Impact: FIM/text completion behavior follows DeepSeek’s beta API contract and may differ from standard OpenAI /completions Code: TextCompletion and TextCompletionStream use /beta/completions
Severity: Low Behavior: User field > 64 characters is silently dropped Impact: Longer user identifiers are lost Code: SanitizeUserField enforces 64-char max in the shared OpenAI converter
Severity: Medium Behavior: Assistant-message reasoning details are removed before forwarding follow-up chat messages Impact: Prevents DeepSeek request failures when previous assistant turns contain reasoning metadata Code: stripReasoningDetails applies to DeepSeek in ToOpenAIChatRequest