返回 DeepSeek-Reasonix
PROVIDER_CATALOG.md
根目录 / docs / PROVIDER_CATALOG.md
1 # Provider catalog
2
3 The desktop preset picker has one entry per provider brand. Account platform,
4 access plan and API format select a concrete existing preset. Only combinations
5 registered by the host are offered. OpenCode Go and Zen remain separate plans;
6 model-scoped routes remain selectable inside their plan.
7
8 Adding a preset keeps its existing ID, credentials, model overrides and install
9 conflict checks. Browsing the catalog does not modify installed connections.
10 Existing custom endpoints, connection names and session references are retained.
11 You can edit the address and model list after adding, or use Custom provider to
12 create another connection with its own name and credentials.
13
14 The API format selector names Anthropic Messages, Chat Completions and Responses
15 explicitly. During an explicit format change, known preset addresses follow the
16 matching registered route. Standard request suffixes can be updated for custom
17 connections; custom paths and query-bearing exact URL overrides are preserved.
18 Protocol changes may change request serialization and provider cache reuse.
19
20 ## Added providers
21
22 OpenAI (Responses and Chat Completions), Anthropic, Google Gemini (OpenAI
23 compatibility), SiliconFlow, OpenRouter, Groq, Mistral AI, local Ollama and
24 LM Studio. Example model names are editable starting points, not guarantees of
25 account access or local installation. Fetch or enter the actual models after
26 adding. Native Anthropic server tools are not enabled by the preset. Gemini's
27 native API, OAuth-only services, Azure deployment setup and other special
28 protocols are not implied by this catalog expansion.
29
30 ## Sources
31
32 These definitions are maintained independently from Cherry Studio source code.
33 Endpoint sources:
34
35 - [OpenAI API](https://platform.openai.com/docs/api-reference/introduction)
36 - [Anthropic Messages](https://platform.claude.com/docs/en/api/http/messages/create)
37 - [Gemini OpenAI compatibility](https://ai.google.dev/gemini-api/docs/openai)
38 - [SiliconFlow quickstart](https://docs.siliconflow.cn/docs/userguide/quickstart)
39 - [OpenRouter quickstart](https://openrouter.ai/docs/quickstart)
40 - [Groq OpenAI compatibility](https://console.groq.com/docs/openai)
41 - [Mistral API](https://docs.mistral.ai/api)
42 - [Ollama OpenAI compatibility](https://docs.ollama.com/api/openai-compatibility)
43 - [LM Studio OpenAI compatibility](https://lmstudio.ai/docs/developer/openai-compat)
44
45 Bundled brand icons come from LobeHub Icons under MIT. The pinned source revision
46 and full license are in `desktop/frontend/public/provider-icons/`. Brands without
47 a bundled icon use an initial. No third-party scripts or remote icon requests are
48 needed at runtime.
49
50 ## Maintenance and compatibility
51
52 `internal/config/provider_catalog.go` owns brand/platform/plan metadata. Protocol
53 and default URL come from the preset's actual entries. After a catalog or added
54 preset change, regenerate browser fixtures from the repository root:
55
56 ```sh
57 go run scripts/generate-provider-catalog.go
58 ```
59
60 | Contract | Behavior |
61 | --- | --- |
62 | Saved provider TOML and credentials | Unchanged; no migration or automatic rewrite |
63 | Existing preset IDs | Preserved |
64 | Desktop `ProviderPresetView.catalog` | Additive display metadata; old clients ignore it |
65 | New frontend with older host | Generated known-ID fallback; unknown presets remain individually accessible |
66 | Provider request prefix | No catalog metadata is added to model requests |
67
68 ## Connection display names
69
70 Optional `display_name` is UI metadata; `name` remains the stable connection,
71 model-reference and credential identity. Lists, details and model pickers prefer
72 the label, falling back to the existing name when empty. New presets initialize
73 it from their title. Duplicate labels never merge connections. The field is not
74 added to requests or prompts, and renaming does not rewrite historical sessions.
75
76 | Scenario | Behavior |
77 | --- | --- |
78 | Old configuration without the field | Existing display; no migration |
79 | Current writer and restart | Label and stable references preserved |
80 | Older frontend omits displayName | Current backend preserves the label |
81 | Explicit empty string | Clears the label and restores fallback |
82 | Older application reads and rewrites config | Connection remains readable; its writer may lose the label |
83
84 Connection details offer inline title editing: Enter saves, Escape cancels, and
85 blur does not submit. The dedicated rename operation changes only the label;
86 the detail configuration editor omits that field so stale drafts cannot overwrite it.
87
88 Built-in and custom connections share the same detail editor. Built-in entries
89 provide initial defaults; protocol, endpoint, credentials and models remain
90 editable. The detail layout does not depend on creation source. Actual endpoint
91 and model metadata continue to determine service capabilities.
92
93 Model editing uses one selection list, with comma-separated IDs supported in
94 manual addition. Discovery merges candidates without changing selection or
95 saving configuration. Context overrides live in per-model settings.
96 Refreshing verifies model discovery only, not inference; no redundant check button is shown. Keys are saved
97 separately; checks and discovery do not save keys or enable models automatically.
98
99 Keys normally show status with Change and a more-actions menu for source, sharing and removal. Refresh and Add sit beside the model heading.
100
101 ### Compact connection editor
102
103 Connection fields share one aligned form. Model selection, refresh and manual additions share one toolbar. Adding and editing models share a modal with context-window and output-token overrides. Text input/output are fixed; image input can be overridden or restored to automatic detection. Video and PDF remain unavailable until the request pipeline supports them. Applying the modal updates the configuration draft; saving the connection persists it. Connection identity and the footer occupy fixed layout slots; navigation and configuration content scroll independently without an additional model-list scroller. The save footer distinguishes clean and unsaved states, and failed saves retain the draft. Credentials remain independently saved.
104
105 With the frontend running, `/dev/provider-layout-preview.html` provides an isolated preview using the production components and in-memory data; it never writes real connections or credentials. See root `design-qa.md` for visual verification.
106
107 ### AMD GPU Cloud
108
109 Added independently maintained preset `amd-gpu-cloud`, OpenAI Chat Completions,
110 base URL `https://developer.amd.com.cn/radeon/v1`, and case-sensitive model IDs
111 from Cherry Studio's registry:
112 https://github.com/CherryHQ/cherry-studio/blob/main/packages/provider-registry/src/providers/radeon-cloud.ts
113
114 API key/account portal: https://developer.amd.com.cn/radeon/tokenfactory
115 Model availability and promotional quotas are account-dependent; refresh models
116 after connecting. No live authenticated AMD request was performed.
117 AMD icon is from Simple Icons (CC0), https://github.com/simple-icons/simple-icons/blob/develop/icons/amd.svg;
118 the AMD trademark remains its owner's property.
119
120 ### Additional inference platforms
121
122 Added eight brands: Doubao (Chat/Responses), Baidu Qianfan, PPIO,
123 Qiniu, xAI (Chat/Responses), Cerebras, Together, Fireworks
124 (Chat/Anthropic/Responses). These twelve editable route templates share brand
125 identity across protocols. Adding a template still creates an independent connection.
126
127 Sources checked against Cherry Studio's provider registry:
128 https://github.com/CherryHQ/cherry-studio/tree/main/packages/provider-registry/src/providers
129 Also: https://docs.fireworks.ai/tools-sdks/openai-compatibility
130 https://docs.fireworks.ai/getting-started/quickstart
131 https://docs.fireworks.ai/guides/response-api
132 https://docs.together.ai/docs/inference/openai-compatibility
133 https://cloud.baidu.com/doc/qianfan/s/rmh4stp0j
134 https://models.dev/api.json (Cerebras, xAI, Qiniu model identifiers).
135
136 Defaults are starting points; account access can vary. Web search is off and
137 no unverified reasoning overrides are added. These are protocol presets, not
138 certification of every model's agent/tool/reasoning capabilities. Model discovery,
139 tool calls and thinking require authenticated platform verification; none was
140 performed in this batch. Icons use the existing pinned LobeHub MIT source.
141
141 lines MARKDOWN