docs: add generative-deepseek model provider integration page - #459
docs: add generative-deepseek model provider integration page#459g-despot wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
Orca Security Scan Summary
| Status | Check | Issues by priority | |
|---|---|---|---|
| Infrastructure as Code | View in Orca | ||
| SAST | View in Orca | ||
| Secrets | View in Orca | ||
| Vulnerabilities | View in Orca |
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.
a406130 to
009adc0
Compare
|
Superseded by #513, which rebases this work onto This branch targeted Content carried over unchanged apart from the client hold. Note the description here is stale in one respect: it says the Safe to close in favour of #513. |
Summary
Adds documentation for the new
generative-deepseekmodule — 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
model-providers/deepseek/:index.md(landing) andgenerative.md(integration guide), following the existing model-provider pattern (closest analog: Mistral). Generative only — DeepSeek has no embeddings/reranker.X-Deepseek-Api-KeyandX-Deepseek-Baseurlrequest headers and theDEEPSEEK_APIKEYenv var.model(defaultdeepseek-chat),temperature,maxTokens,frequencyPenalty,presencePenalty,topP,baseURL(https://api.deepseek.com),stop.deepseek-v4-flash/deepseek-v4-proids; notesdeepseek-chat/deepseek-reasonerare legacy aliases scheduled for deprecation 2026-07-24 (attributed to DeepSeek's pricing page).Scope notes
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-devpasses; no new broken links/anchors; allFilteredTextBlockmarkers resolve.modules/generative-deepseek/(headers, config keys/defaults, default model, version availability).