Files
new-api/web/src/constants/channel.constants.js
Seefs e71f5a45f2 feat: auto fetch upstream models (#2979)
* feat: add upstream model update detection with scheduled sync and manual apply flows

* feat: support upstream model removal sync and selectable deletes in update modal

* feat: add detect-only upstream updates and show compact +/- model badges

* feat: improve upstream model update UX

* feat: improve upstream model update UX

* fix: respect model_mapping in upstream update detection

* feat: improve upstream update modal to prevent missed add/remove actions

* feat: add admin upstream model update notifications with digest and truncation

* fix: avoid repeated partial-submit confirmation in upstream update modal

* feat: improve ui/ux

* feat: suppress upstream update alerts for unchanged channel-count within 24h

* fix: submit upstream update choices even when no models are selected

* feat: improve upstream model update flow and split frontend updater

* fix merge conflict
2026-03-02 22:01:53 +08:00

200 lines
4.0 KiB
JavaScript
Vendored
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
Copyright (C) 2025 QuantumNous
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
For commercial licensing, please contact support@quantumnous.com
*/
export const CHANNEL_OPTIONS = [
{ value: 1, color: 'green', label: 'OpenAI' },
{
value: 2,
color: 'light-blue',
label: 'Midjourney Proxy',
},
{
value: 5,
color: 'blue',
label: 'Midjourney Proxy Plus',
},
{
value: 36,
color: 'purple',
label: 'Suno API',
},
{ value: 4, color: 'grey', label: 'Ollama' },
{
value: 14,
color: 'indigo',
label: 'Anthropic Claude',
},
{
value: 33,
color: 'indigo',
label: 'AWS Claude',
},
{ value: 41, color: 'blue', label: 'Vertex AI' },
{
value: 3,
color: 'teal',
label: 'Azure OpenAI',
},
{
value: 34,
color: 'purple',
label: 'Cohere',
},
{ value: 39, color: 'grey', label: 'Cloudflare' },
{ value: 43, color: 'blue', label: 'DeepSeek' },
{
value: 15,
color: 'blue',
label: '百度文心千帆',
},
{
value: 46,
color: 'blue',
label: '百度文心千帆V2',
},
{
value: 17,
color: 'orange',
label: '阿里通义千问',
},
{
value: 18,
color: 'blue',
label: '讯飞星火认知',
},
{
value: 16,
color: 'violet',
label: '智谱 ChatGLM已经弃用请使用智谱 GLM-4V',
},
{
value: 26,
color: 'purple',
label: '智谱 GLM-4V',
},
{
value: 27,
color: 'blue',
label: 'Perplexity',
},
{
value: 24,
color: 'orange',
label: 'Google Gemini',
},
{
value: 11,
color: 'orange',
label: 'Google PaLM2',
},
{
value: 47,
color: 'blue',
label: 'Xinference',
},
{ value: 25, color: 'green', label: 'Moonshot' },
{ value: 20, color: 'green', label: 'OpenRouter' },
{ value: 19, color: 'blue', label: '360 智脑' },
{ value: 23, color: 'teal', label: '腾讯混元' },
{ value: 31, color: 'green', label: '零一万物' },
{ value: 35, color: 'green', label: 'MiniMax' },
{ value: 37, color: 'teal', label: 'Dify' },
{ value: 38, color: 'blue', label: 'Jina' },
{ value: 40, color: 'purple', label: 'SiliconCloud' },
{ value: 42, color: 'blue', label: 'Mistral AI' },
{ value: 8, color: 'pink', label: '自定义渠道' },
{
value: 22,
color: 'blue',
label: '知识库FastGPT',
},
{
value: 21,
color: 'purple',
label: '知识库AI Proxy',
},
{
value: 44,
color: 'purple',
label: '嵌入模型MokaAI M3E',
},
{
value: 45,
color: 'blue',
label: '字节火山方舟、豆包通用',
},
{
value: 48,
color: 'blue',
label: 'xAI',
},
{
value: 49,
color: 'blue',
label: 'Coze',
},
{
value: 50,
color: 'green',
label: '可灵',
},
{
value: 51,
color: 'blue',
label: '即梦',
},
{
value: 52,
color: 'purple',
label: 'Vidu',
},
{
value: 53,
color: 'blue',
label: 'SubModel',
},
{
value: 54,
color: 'blue',
label: '豆包视频',
},
{
value: 55,
color: 'green',
label: 'Sora',
},
{
value: 56,
color: 'blue',
label: 'Replicate',
},
{
value: 57,
color: 'blue',
label: 'Codex (OpenAI OAuth)',
},
];
// Channel types that support upstream model list fetching in UI.
export const MODEL_FETCHABLE_CHANNEL_TYPES = new Set([
1, 4, 14, 34, 17, 26, 27, 24, 47, 25, 20, 23, 31, 40, 42, 48, 43,
]);
export const MODEL_TABLE_PAGE_SIZE = 10;