Skip to content

docs: add generative-deepseek model provider integration page - #459

Open
g-despot wants to merge 3 commits into
mainfrom
docs/generative-deepseek-module
Open

docs: add generative-deepseek model provider integration page#459
g-despot wants to merge 3 commits into
mainfrom
docs/generative-deepseek-module

Conversation

@g-despot

Copy link
Copy Markdown
Contributor

Summary

Adds documentation for the new generative-deepseek module — DeepSeek as a generative (RAG) model provider — available from v1.36.19, v1.37.10, and v1.38.2 (backported across all three release lines).

What's included

  • New provider pages under model-providers/deepseek/: index.md (landing) and generative.md (integration guide), following the existing model-provider pattern (closest analog: Mistral). Generative only — DeepSeek has no embeddings/reranker.
  • Documents the X-Deepseek-Api-Key and X-Deepseek-Baseurl request headers and the DEEPSEEK_APIKEY env var.
  • Collection-level config keys with defaults: model (default deepseek-chat), temperature, maxTokens, frequencyPenalty, presencePenalty, topP, baseURL (https://api.deepseek.com), stop.
  • Model guidance: recommends the current deepseek-v4-flash / deepseek-v4-pro ids; notes deepseek-chat / deepseek-reasoner are legacy aliases scheduled for deprecation 2026-07-24 (attributed to DeepSeek's pricing page).
  • Adds DeepSeek to the model-providers table and the sidebar.

Scope notes

  • Python only for now (intentional). The Python snippets show the intended typed Configure.Generative.deepseek(...) syntax; the Python client builder will be implemented afterward to match. Until then the new snippets are kept out of the docs CI snippet test allowlist (and additionally guarded), so the snippet suite is unaffected.

Verification

  • yarn build-dev passes; no new broken links/anchors; all FilteredTextBlock markers resolve.
  • Factual claims grounded against a code-level review of modules/generative-deepseek/ (headers, config keys/defaults, default model, version availability).

@orca-security-eu orca-security-eu Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Orca Security Scan Summary

Status Check Issues by priority
Passed Passed Infrastructure as Code high 0   medium 0   low 0   info 0 View in Orca
Passed Passed SAST high 0   medium 0   low 0   info 0 View in Orca
Passed Passed Secrets high 0   medium 0   low 0   info 0 View in Orca
Passed Passed Vulnerabilities high 0   medium 0   low 0   info 0 View in Orca

g-despot added 3 commits July 30, 2026 13:48
Document the new generative-deepseek module (DeepSeek as a generative/RAG
provider), available from v1.36.19, v1.37.10, and v1.38.2.

- New provider pages model-providers/deepseek/{index,generative}.md (Python only for now)
- Document the X-Deepseek-Api-Key and X-Deepseek-Baseurl headers and the
  DEEPSEEK_APIKEY env var
- Config keys (model, temperature, maxTokens, frequencyPenalty,
  presencePenalty, topP, baseURL, stop) with defaults
- Recommend deepseek-v4-flash / deepseek-v4-pro; note deepseek-chat and
  deepseek-reasoner are legacy aliases (deprecated 2026-07-24 per DeepSeek)
- Add DeepSeek to the model-providers table and sidebar
- Python snippets show the intended Configure.Generative.deepseek(...) syntax
  (client support to follow); kept out of the CI snippet allowlist
The page shipped with a deprecation notice written as a future event
(2026-07-24). That date has passed, so state it as settled fact:
deepseek-chat and deepseek-reasoner are retired and DeepSeek no longer
serves them.

Core still ships DefaultDeepSeekModel = "deepseek-chat"
(modules/generative-deepseek/config/class_settings.go:33, still true on
v1.38.7), so the page's basic no-model example resolved to a retired
alias. Present setting `model` as required rather than as an optional
refinement: drop the no-model example, lead "Configure collection" with
the warning and then the model-setting example, and disclose the
built-in default as a caution instead of a neutral fact. Name only the
current model names and link DeepSeek's pricing page rather than
maintaining a catalogue.

Correct "Header parameters", which was wrong. X-Deepseek-Api-Key does
not override collection config (there is no API key there); it overrides
the DEEPSEEK_APIKEY env var, and with neither set the request fails with
"api key: no api key found" (clients/deepseek.go:240-248).
X-Deepseek-Baseurl outranks the query-time baseURL param as well as the
collection baseURL (clients/deepseek.go:75, 232-238). Also note that the
base URL must be an API root, since Weaviate appends /chat/completions
to it.

Add two traps that were missing. MODULES_CLIENT_TIMEOUT defaults to 50s
and covers the whole request including the body read
(usecases/config/environment.go:869-876); the module's own acceptance
test raises it to 120s, so reasoning models need a note. And the
maxTokens ceiling is only consulted for the two retired aliases, so for
a current model a value above the model's limit passes validation and
only fails later as an error from DeepSeek; negative values are still
rejected for every model by the unconditional arm of the same check
(class_settings.go:89).

Fold the reasoning caveats into one "Reasoning models" subsection rather
than stacking admonitions, and link MODULES_CLIENT_TIMEOUT by its
APITable row anchor.

Update the Python snippet guard comment: Configure.Generative.deepseek()
and GenerativeConfig.deepseek() are merged upstream (PR #2084, commit
afc0e0eb) and signature-matched, but are not in a released client, so
the blocks stay display-only and out of the test allowlist.

Ignore platform.deepseek.com in the link validator; it 403s automated
requests but loads fine in a browser, matching existing entries.
@g-despot
g-despot force-pushed the docs/generative-deepseek-module branch from a406130 to 009adc0 Compare July 30, 2026 12:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant