You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

49 lines
1.9 KiB

import type { LLMModelType, LLMProvider } from "@/types";
import { getProviderDisplayName, isPopiProviderMode } from "@/lib/providerMode";
export interface LLMModelOption {
value: LLMModelType;
label: string;
}
export const DEFAULT_NEWAPIWG_LLM_MODEL_ID: LLMModelType = "doubao-seed-2-0-lite-260428";
export const DEFAULT_POPISERVER_LLM_MODEL_ID: LLMModelType = "kimi-k2.6";
const ALL_LLM_PROVIDERS: { value: LLMProvider; label: string }[] = [
{ value: "popiserver", label: getProviderDisplayName("popiserver") },
{ value: "newapiwg", label: getProviderDisplayName("newapiwg") },
{ value: "google", label: "Google" },
{ value: "openai", label: "OpenAI" },
{ value: "anthropic", label: "Anthropic" },
];
export const LLM_PROVIDERS: { value: LLMProvider; label: string }[] =
isPopiProviderMode()
? ALL_LLM_PROVIDERS.filter((provider) => provider.value === "popiserver")
: ALL_LLM_PROVIDERS;
export const LLM_MODELS: Record<LLMProvider, LLMModelOption[]> = {
popiserver: [
{ value: DEFAULT_POPISERVER_LLM_MODEL_ID, label: "Kimi K2.6" },
],
newapiwg: [
{ value: "doubao-seed-2-0-lite-260428", label: "Doubao Seed 2.0 Lite" },
{ value: "doubao-seed-2-0-pro-260215", label: "Doubao Seed 2.0 Pro" },
// { value: "gpt-4.1-mini", label: "GPT-4.1 Mini" },
],
google: [
{ value: "gemini-3-flash-preview", label: "Gemini 3 Flash" },
{ value: "gemini-2.5-flash", label: "Gemini 2.5 Flash" },
{ value: "gemini-3-pro-preview", label: "Gemini 3.0 Pro" },
{ value: "gemini-3.1-pro-preview", label: "Gemini 3.1 Pro" },
],
openai: [
{ value: "gpt-4.1-mini", label: "GPT-4.1 Mini" },
{ value: "gpt-4.1-nano", label: "GPT-4.1 Nano" },
],
anthropic: [
{ value: "claude-sonnet-4.5", label: "Claude Sonnet 4.5" },
{ value: "claude-haiku-4.5", label: "Claude Haiku 4.5" },
{ value: "claude-opus-4.6", label: "Claude Opus 4.6" },
],
};