mirror of
https://github.com/Nezumi-2711/9router.git
synced 2026-09-22 13:38:31 +00:00
- Bug B1-B7: media UI m.kind||m.type, serviceKinds, gemini mediaPriority, schema kind, models/info lookup by kind - Dead code D1-D6: safeParseJSON, drop PROVIDER_ENDPOINTS, orphan fetcher, GITHUB_CONFIG derive, getProviderConfig internal, legacy kiro file - Translator concerns: toOpenAIUsage, toOpenAIFinish (gemini/kiro/ollama + fix kiro tool finish), thinking effort maps - Reorg helpers/ → concerns/ (logic) + formats/ (per-format) + schema/ (pure enums: roles/blocks/finishReasons/defaults) - Wire ~280 hardcoded role/block/finish/default literals to schema enums across 20+ files - collapseTextParts + extractTextContent dedup - Normalize translator fn names to openaiToXRequest / xToOpenAIResponse - Golden tests lock behavior; 0 regression (byte-for-byte providers/alias, 26=26 known fails) Co-authored-by: Cursor <cursoragent@cursor.com>
82 lines
3.2 KiB
JavaScript
82 lines
3.2 KiB
JavaScript
export default {
|
|
id: "openai",
|
|
priority: 30,
|
|
alias: "openai",
|
|
display: {
|
|
name: "OpenAI",
|
|
icon: "auto_awesome",
|
|
color: "#10A37F",
|
|
textIcon: "OA",
|
|
website: "https://platform.openai.com",
|
|
notice: {
|
|
apiKeyUrl: "https://platform.openai.com/api-keys",
|
|
},
|
|
},
|
|
category: "apikey",
|
|
thinkingConfig: {
|
|
options: [
|
|
"auto",
|
|
"none",
|
|
"low",
|
|
"medium",
|
|
"high",
|
|
],
|
|
defaultMode: "auto",
|
|
},
|
|
transport: {
|
|
baseUrl: "https://api.openai.com/v1/chat/completions",
|
|
forceStream: true,
|
|
},
|
|
models: [
|
|
{ id: "gpt-5.4", name: "GPT-5.4" },
|
|
{ id: "gpt-5.4-mini", name: "GPT-5.4 Mini" },
|
|
{ id: "gpt-5.4-nano", name: "GPT-5.4 Nano" },
|
|
{ id: "gpt-5.2", name: "GPT-5.2" },
|
|
{ id: "gpt-5.1", name: "GPT-5.1" },
|
|
{ id: "gpt-5", name: "GPT-5" },
|
|
{ id: "gpt-5-mini", name: "GPT-5 Mini" },
|
|
{ id: "gpt-5-nano", name: "GPT-5 Nano" },
|
|
{ id: "gpt-4o", name: "GPT-4o" },
|
|
{ id: "gpt-4o-mini", name: "GPT-4o Mini" },
|
|
{ id: "gpt-4-turbo", name: "GPT-4 Turbo" },
|
|
{ id: "gpt-4.1", name: "GPT-4.1" },
|
|
{ id: "gpt-4.1-mini", name: "GPT-4.1 Mini" },
|
|
{ id: "gpt-4.1-nano", name: "GPT-4.1 Nano" },
|
|
{ id: "o3", name: "O3" },
|
|
{ id: "o3-mini", name: "O3 Mini" },
|
|
{ id: "o3-pro", name: "O3 Pro" },
|
|
{ id: "o4-mini", name: "O4 Mini" },
|
|
{ id: "o1", name: "O1" },
|
|
{ id: "o1-mini", name: "O1 Mini" },
|
|
{ id: "text-embedding-3-large", name: "Text Embedding 3 Large", kind: "embedding" },
|
|
{ id: "text-embedding-3-small", name: "Text Embedding 3 Small", kind: "embedding" },
|
|
{ id: "text-embedding-ada-002", name: "Text Embedding Ada 002", kind: "embedding" },
|
|
{ id: "tts-1", name: "TTS-1", kind: "tts" },
|
|
{ id: "tts-1-hd", name: "TTS-1 HD", kind: "tts" },
|
|
{ id: "gpt-4o-mini-tts", name: "GPT-4o Mini TTS", kind: "tts" },
|
|
{ id: "whisper-1", name: "Whisper 1", params: ["language","response_format","temperature","prompt"], kind: "stt" },
|
|
{ id: "gpt-4o-transcribe", name: "GPT-4o Transcribe", params: ["language","response_format","temperature","prompt"], kind: "stt" },
|
|
{ id: "gpt-4o-mini-transcribe", name: "GPT-4o Mini Transcribe", params: ["language","response_format","temperature","prompt"], kind: "stt" },
|
|
{ id: "gpt-image-1", name: "GPT Image 1", params: ["n","size","quality","response_format"], kind: "image" },
|
|
{ id: "dall-e-3", name: "DALL-E 3", params: ["size","quality","style","response_format"], kind: "image" },
|
|
{ id: "dall-e-2", name: "DALL-E 2", params: ["n","size","response_format"], kind: "image" },
|
|
],
|
|
serviceKinds: ["llm","embedding","tts","stt","image","imageToText","webSearch"],
|
|
ttsConfig: {
|
|
baseUrl: "https://api.openai.com/v1/audio/speech",
|
|
authType: "apikey",
|
|
authHeader: "bearer",
|
|
format: "openai",
|
|
defaultModel: "gpt-4o-mini-tts",
|
|
},
|
|
sttConfig: {
|
|
baseUrl: "https://api.openai.com/v1/audio/transcriptions",
|
|
authType: "apikey",
|
|
authHeader: "bearer",
|
|
format: "openai",
|
|
},
|
|
embeddingConfig: { baseUrl: "https://api.openai.com/v1/embeddings", authType: "apikey", authHeader: "bearer" },
|
|
imageConfig: { baseUrl: "https://api.openai.com/v1/images/generations" },
|
|
searchViaChat: { defaultModel: "gpt-4o-mini", pricingUrl: "https://openai.com/api/pricing" },
|
|
};
|