- 添加完整的项目基础结构,包括配置、类型定义和常量 - 实现OAuth认证流程和令牌管理 - 开发请求转换和响应处理逻辑 - 添加SSE流处理和ChatCompletions API转换 - 实现模型映射和提示指令系统 - 包含Docker部署配置和快速启动文档 - 添加自动登录功能和测试脚本
78 lines
2.2 KiB
TypeScript
78 lines
2.2 KiB
TypeScript
export const MODEL_MAP: Record<string, string> = {
|
|
"gpt-5.1": "gpt-5.1",
|
|
"gpt-5.1-none": "gpt-5.1",
|
|
"gpt-5.1-low": "gpt-5.1",
|
|
"gpt-5.1-medium": "gpt-5.1",
|
|
"gpt-5.1-high": "gpt-5.1",
|
|
|
|
"gpt-5.2": "gpt-5.2",
|
|
"gpt-5.2-none": "gpt-5.2",
|
|
"gpt-5.2-low": "gpt-5.2",
|
|
"gpt-5.2-medium": "gpt-5.2",
|
|
"gpt-5.2-high": "gpt-5.2",
|
|
"gpt-5.2-xhigh": "gpt-5.2",
|
|
|
|
"gpt-5.1-codex": "gpt-5.1-codex",
|
|
"gpt-5.1-codex-low": "gpt-5.1-codex",
|
|
"gpt-5.1-codex-medium": "gpt-5.1-codex",
|
|
"gpt-5.1-codex-high": "gpt-5.1-codex",
|
|
|
|
"gpt-5.1-codex-max": "gpt-5.1-codex-max",
|
|
"gpt-5.1-codex-max-low": "gpt-5.1-codex-max",
|
|
"gpt-5.1-codex-max-medium": "gpt-5.1-codex-max",
|
|
"gpt-5.1-codex-max-high": "gpt-5.1-codex-max",
|
|
"gpt-5.1-codex-max-xhigh": "gpt-5.1-codex-max",
|
|
|
|
"gpt-5.1-codex-mini": "gpt-5.1-codex-mini",
|
|
"gpt-5.1-codex-mini-medium": "gpt-5.1-codex-mini",
|
|
"gpt-5.1-codex-mini-high": "gpt-5.1-codex-mini",
|
|
|
|
"gpt-5.2-codex": "gpt-5.2-codex",
|
|
"gpt-5.2-codex-low": "gpt-5.2-codex",
|
|
"gpt-5.2-codex-medium": "gpt-5.2-codex",
|
|
"gpt-5.2-codex-high": "gpt-5.2-codex",
|
|
"gpt-5.2-codex-xhigh": "gpt-5.2-codex",
|
|
};
|
|
|
|
export function getNormalizedModel(modelId: string): string | undefined {
|
|
try {
|
|
if (MODEL_MAP[modelId]) {
|
|
return MODEL_MAP[modelId];
|
|
}
|
|
|
|
const lowerModelId = modelId.toLowerCase();
|
|
const match = Object.keys(MODEL_MAP).find(
|
|
(key) => key.toLowerCase() === lowerModelId,
|
|
);
|
|
|
|
return match ? MODEL_MAP[match] : undefined;
|
|
} catch {
|
|
return undefined;
|
|
}
|
|
}
|
|
|
|
export function isKnownModel(modelId: string): boolean {
|
|
return getNormalizedModel(modelId) !== undefined;
|
|
}
|
|
|
|
export function getModelFamily(
|
|
normalizedModel: string,
|
|
): "gpt-5.1" | "gpt-5.2" | "codex" | "codex-max" | "codex-mini" | "gpt-5.2-codex" {
|
|
if (normalizedModel.includes("gpt-5.2-codex")) {
|
|
return "gpt-5.2-codex";
|
|
}
|
|
if (normalizedModel.includes("codex-max")) {
|
|
return "codex-max";
|
|
}
|
|
if (normalizedModel.includes("codex") && normalizedModel.includes("mini")) {
|
|
return "codex-mini";
|
|
}
|
|
if (normalizedModel.includes("codex")) {
|
|
return "codex";
|
|
}
|
|
if (normalizedModel.includes("gpt-5.2")) {
|
|
return "gpt-5.2";
|
|
}
|
|
return "gpt-5.1";
|
|
}
|