返回 DeepSeek-Reasonix
providerProtocol.ts
根目录 / desktop / frontend / src / lib / providerProtocol.ts
1 // Presentation and conservative endpoint checks shared by provider settings.
2 import type { ProviderCatalog } from "./providerCatalogTypes";
3 import { providerEndpointMismatchDetail } from "./providerEndpoint";
4
5 export function providerProtocolLabel(kind: string): string {
6 switch (kind.trim().toLowerCase()) {
7 case "anthropic": return "Anthropic Messages (/v1/messages)";
8 case "openai": return "Chat Completions (/chat/completions)";
9 case "responses": return "Responses (/responses)";
10 case "dashscope-responses": return "百炼 Responses (/responses)";
11 default: return kind;
12 }
13 }
14
15 export function providerEndpointMismatch(kind: string, address: string, catalog?: ProviderCatalog): boolean {
16 return providerEndpointMismatchDetail(kind, address, catalog).mismatch;
17 }
18
19 // Registered adapters are not all user-facing protocols. Keep saved/custom
20 // adapter IDs selectable without exposing them on unrelated connections.
21 export function providerProtocolChoices(current: string, saved: string | undefined, registered: string[], presetScoped = false): string[] {
22 const generic = new Set(["openai", "responses", "anthropic"]);
23 const choices = [current, saved ?? "", ...registered.filter(kind => presetScoped || generic.has(kind.trim()))];
24 return [...new Set(choices.map(kind => kind.trim()).filter(Boolean))];
25 }
26
26 lines TYPESCRIPT