mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-25 03:10:08 +08:00
- Introduced a new image asset for the FlagOpen model in the assets directory. - Updated the models configuration to include the FlagOpen logo, allowing for its use in the model logo mapping.
1154 lines
35 KiB
TypeScript
1154 lines
35 KiB
TypeScript
import Ai360ModelLogo from '@renderer/assets/images/models/360.png'
|
|
import Ai360ModelLogoDark from '@renderer/assets/images/models/360_dark.png'
|
|
import AdeptModelLogo from '@renderer/assets/images/models/adept.png'
|
|
import AdeptModelLogoDark from '@renderer/assets/images/models/adept_dark.png'
|
|
import Ai21ModelLogo from '@renderer/assets/images/models/ai21.png'
|
|
import Ai21ModelLogoDark from '@renderer/assets/images/models/ai21_dark.png'
|
|
import AimassModelLogo from '@renderer/assets/images/models/aimass.png'
|
|
import AimassModelLogoDark from '@renderer/assets/images/models/aimass_dark.png'
|
|
import AisingaporeModelLogo from '@renderer/assets/images/models/aisingapore.png'
|
|
import AisingaporeModelLogoDark from '@renderer/assets/images/models/aisingapore_dark.png'
|
|
import BaichuanModelLogo from '@renderer/assets/images/models/baichuan.png'
|
|
import BaichuanModelLogoDark from '@renderer/assets/images/models/baichuan_dark.png'
|
|
import BgeModelLogo from '@renderer/assets/images/models/bge.webp'
|
|
import BigcodeModelLogo from '@renderer/assets/images/models/bigcode.webp'
|
|
import BigcodeModelLogoDark from '@renderer/assets/images/models/bigcode_dark.webp'
|
|
import ChatGLMModelLogo from '@renderer/assets/images/models/chatglm.png'
|
|
import ChatGLMModelLogoDark from '@renderer/assets/images/models/chatglm_dark.png'
|
|
import ChatGptModelLogo from '@renderer/assets/images/models/chatgpt.jpeg'
|
|
import ClaudeModelLogo from '@renderer/assets/images/models/claude.png'
|
|
import ClaudeModelLogoDark from '@renderer/assets/images/models/claude_dark.png'
|
|
import CodegeexModelLogo from '@renderer/assets/images/models/codegeex.png'
|
|
import CodegeexModelLogoDark from '@renderer/assets/images/models/codegeex_dark.png'
|
|
import CohereModelLogo from '@renderer/assets/images/models/cohere.png'
|
|
import CohereModelLogoDark from '@renderer/assets/images/models/cohere_dark.png'
|
|
import CopilotModelLogo from '@renderer/assets/images/models/copilot.png'
|
|
import CopilotModelLogoDark from '@renderer/assets/images/models/copilot_dark.png'
|
|
import DalleModelLogo from '@renderer/assets/images/models/dalle.png'
|
|
import DalleModelLogoDark from '@renderer/assets/images/models/dalle_dark.png'
|
|
import DbrxModelLogo from '@renderer/assets/images/models/dbrx.png'
|
|
import DeepSeekModelLogo from '@renderer/assets/images/models/deepseek.png'
|
|
import DeepSeekModelLogoDark from '@renderer/assets/images/models/deepseek_dark.png'
|
|
import DianxinModelLogo from '@renderer/assets/images/models/dianxin.png'
|
|
import DianxinModelLogoDark from '@renderer/assets/images/models/dianxin_dark.png'
|
|
import DoubaoModelLogo from '@renderer/assets/images/models/doubao.png'
|
|
import DoubaoModelLogoDark from '@renderer/assets/images/models/doubao_dark.png'
|
|
import EmbeddingModelLogo from '@renderer/assets/images/models/embedding.png'
|
|
import EmbeddingModelLogoDark from '@renderer/assets/images/models/embedding.png'
|
|
import FlashaudioModelLogo from '@renderer/assets/images/models/flashaudio.png'
|
|
import FlashaudioModelLogoDark from '@renderer/assets/images/models/flashaudio_dark.png'
|
|
import FluxModelLogo from '@renderer/assets/images/models/flux.png'
|
|
import FluxModelLogoDark from '@renderer/assets/images/models/flux_dark.png'
|
|
import GeminiModelLogo from '@renderer/assets/images/models/gemini.png'
|
|
import GeminiModelLogoDark from '@renderer/assets/images/models/gemini_dark.png'
|
|
import GemmaModelLogo from '@renderer/assets/images/models/gemma.png'
|
|
import GemmaModelLogoDark from '@renderer/assets/images/models/gemma_dark.png'
|
|
import GoogleModelLogo from '@renderer/assets/images/models/google.png'
|
|
import GoogleModelLogoDark from '@renderer/assets/images/models/google.png'
|
|
import ChatGPT35ModelLogo from '@renderer/assets/images/models/gpt_3.5.png'
|
|
import ChatGPT4ModelLogo from '@renderer/assets/images/models/gpt_4.png'
|
|
import ChatGptModelLogoDakr from '@renderer/assets/images/models/gpt_dark.png'
|
|
import ChatGPT35ModelLogoDark from '@renderer/assets/images/models/gpt_dark.png'
|
|
import ChatGPT4ModelLogoDark from '@renderer/assets/images/models/gpt_dark.png'
|
|
import ChatGPTo1ModelLogoDark from '@renderer/assets/images/models/gpt_dark.png'
|
|
import ChatGPTo1ModelLogo from '@renderer/assets/images/models/gpt_o1.png'
|
|
import GrokModelLogo from '@renderer/assets/images/models/grok.png'
|
|
import GrokModelLogoDark from '@renderer/assets/images/models/grok_dark.png'
|
|
import GrypheModelLogo from '@renderer/assets/images/models/gryphe.png'
|
|
import GrypheModelLogoDark from '@renderer/assets/images/models/gryphe_dark.png'
|
|
import HailuoModelLogo from '@renderer/assets/images/models/hailuo.png'
|
|
import HailuoModelLogoDark from '@renderer/assets/images/models/hailuo_dark.png'
|
|
import HuggingfaceModelLogo from '@renderer/assets/images/models/huggingface.png'
|
|
import HuggingfaceModelLogoDark from '@renderer/assets/images/models/huggingface_dark.png'
|
|
import HunyuanModelLogo from '@renderer/assets/images/models/hunyuan.png'
|
|
import HunyuanModelLogoDark from '@renderer/assets/images/models/hunyuan_dark.png'
|
|
import IbmModelLogo from '@renderer/assets/images/models/ibm.png'
|
|
import IbmModelLogoDark from '@renderer/assets/images/models/ibm_dark.png'
|
|
import InternlmModelLogo from '@renderer/assets/images/models/internlm.png'
|
|
import InternlmModelLogoDark from '@renderer/assets/images/models/internlm_dark.png'
|
|
import JinaModelLogo from '@renderer/assets/images/models/jina.png'
|
|
import JinaModelLogoDark from '@renderer/assets/images/models/jina_dark.png'
|
|
import KeLingModelLogo from '@renderer/assets/images/models/keling.png'
|
|
import KeLingModelLogoDark from '@renderer/assets/images/models/keling_dark.png'
|
|
import LlamaModelLogo from '@renderer/assets/images/models/llama.png'
|
|
import LlamaModelLogoDark from '@renderer/assets/images/models/llama_dark.png'
|
|
import LLavaModelLogo from '@renderer/assets/images/models/llava.png'
|
|
import LLavaModelLogoDark from '@renderer/assets/images/models/llava_dark.png'
|
|
import LumaModelLogo from '@renderer/assets/images/models/luma.png'
|
|
import LumaModelLogoDark from '@renderer/assets/images/models/luma_dark.png'
|
|
import MagicModelLogo from '@renderer/assets/images/models/magic.png'
|
|
import MagicModelLogoDark from '@renderer/assets/images/models/magic_dark.png'
|
|
import MediatekModelLogo from '@renderer/assets/images/models/mediatek.png'
|
|
import MediatekModelLogoDark from '@renderer/assets/images/models/mediatek_dark.png'
|
|
import MicrosoftModelLogo from '@renderer/assets/images/models/microsoft.png'
|
|
import MicrosoftModelLogoDark from '@renderer/assets/images/models/microsoft_dark.png'
|
|
import MidjourneyModelLogo from '@renderer/assets/images/models/midjourney.png'
|
|
import MidjourneyModelLogoDark from '@renderer/assets/images/models/midjourney_dark.png'
|
|
import MinicpmModelLogo from '@renderer/assets/images/models/minicpm.webp'
|
|
import MinicpmModelLogoDark from '@renderer/assets/images/models/minicpm.webp'
|
|
import MinimaxModelLogo from '@renderer/assets/images/models/minimax.png'
|
|
import MinimaxModelLogoDark from '@renderer/assets/images/models/minimax_dark.png'
|
|
import MistralModelLogo from '@renderer/assets/images/models/mixtral.png'
|
|
import MistralModelLogoDark from '@renderer/assets/images/models/mixtral_dark.png'
|
|
import MoonshotModelLogo from '@renderer/assets/images/models/moonshot.png'
|
|
import MoonshotModelLogoDark from '@renderer/assets/images/models/moonshot_dark.png'
|
|
import NousResearchModelLogo from '@renderer/assets/images/models/nousresearch.png'
|
|
import NousResearchModelLogoDark from '@renderer/assets/images/models/nousresearch.png'
|
|
import NvidiaModelLogo from '@renderer/assets/images/models/nvidia.png'
|
|
import NvidiaModelLogoDark from '@renderer/assets/images/models/nvidia_dark.png'
|
|
import PalmModelLogo from '@renderer/assets/images/models/palm.png'
|
|
import PalmModelLogoDark from '@renderer/assets/images/models/palm_dark.png'
|
|
import PixtralModelLogo from '@renderer/assets/images/models/pixtral.png'
|
|
import PixtralModelLogoDark from '@renderer/assets/images/models/pixtral_dark.png'
|
|
import QwenModelLogo from '@renderer/assets/images/models/qwen.png'
|
|
import QwenModelLogoDark from '@renderer/assets/images/models/qwen_dark.png'
|
|
import RakutenaiModelLogo from '@renderer/assets/images/models/rakutenai.png'
|
|
import RakutenaiModelLogoDark from '@renderer/assets/images/models/rakutenai_dark.png'
|
|
import SparkDeskModelLogo from '@renderer/assets/images/models/sparkdesk.png'
|
|
import SparkDeskModelLogoDark from '@renderer/assets/images/models/sparkdesk_dark.png'
|
|
import StabilityModelLogo from '@renderer/assets/images/models/stability.png'
|
|
import StabilityModelLogoDark from '@renderer/assets/images/models/stability_dark.png'
|
|
import StepModelLogo from '@renderer/assets/images/models/step.png'
|
|
import StepModelLogoDark from '@renderer/assets/images/models/step_dark.png'
|
|
import SunoModelLogo from '@renderer/assets/images/models/suno.png'
|
|
import SunoModelLogoDark from '@renderer/assets/images/models/suno_dark.png'
|
|
import TeleModelLogo from '@renderer/assets/images/models/tele.png'
|
|
import TeleModelLogoDark from '@renderer/assets/images/models/tele_dark.png'
|
|
import UpstageModelLogo from '@renderer/assets/images/models/upstage.png'
|
|
import UpstageModelLogoDark from '@renderer/assets/images/models/upstage_dark.png'
|
|
import ViduModelLogo from '@renderer/assets/images/models/vidu.png'
|
|
import ViduModelLogoDark from '@renderer/assets/images/models/vidu_dark.png'
|
|
import WenxinModelLogo from '@renderer/assets/images/models/wenxin.png'
|
|
import WenxinModelLogoDark from '@renderer/assets/images/models/wenxin_dark.png'
|
|
import YiModelLogo from '@renderer/assets/images/models/yi.png'
|
|
import YiModelLogoDark from '@renderer/assets/images/models/yi_dark.png'
|
|
import { getProviderByModel } from '@renderer/services/AssistantService'
|
|
import { Model } from '@renderer/types'
|
|
import OpenAI from 'openai'
|
|
|
|
import { getWebSearchTools } from './tools'
|
|
|
|
const visionAllowedModels = [
|
|
'llava',
|
|
'moondream',
|
|
'minicpm',
|
|
'gemini-1\\.5',
|
|
'gemini-exp',
|
|
'claude-3',
|
|
'vision',
|
|
'glm-4v',
|
|
'qwen-vl',
|
|
'qwen2-vl',
|
|
'internvl2',
|
|
'grok-vision-beta',
|
|
'pixtral',
|
|
'gpt-4(?:-[\\w-]+)',
|
|
'gpt-4o(?:-[\\w-]+)?',
|
|
'chatgpt-4o(?:-[\\w-]+)?'
|
|
]
|
|
|
|
const visionExcludedModels = ['gpt-4-\\d+-preview', 'gpt-4-turbo-preview', 'gpt-4-32k', 'gpt-4-\\d+']
|
|
|
|
export const VISION_REGEX = new RegExp(
|
|
`\\b(?!(?:${visionExcludedModels.join('|')})\\b)(${visionAllowedModels.join('|')})\\b`,
|
|
'i'
|
|
)
|
|
|
|
export const TEXT_TO_IMAGE_REGEX = /flux|diffusion|stabilityai|sd-|dall|cogview/i
|
|
export const EMBEDDING_REGEX = /(?:^text-|embed|rerank|davinci|babbage|bge-|e5-|LLM2Vec|retrieval|uae-|gte-|jina)/i
|
|
export const NOT_SUPPORTED_REGEX = /(?:^tts|rerank|whisper|speech)/i
|
|
|
|
export function getModelLogo(modelId: string) {
|
|
const isLight = true
|
|
|
|
if (!modelId) {
|
|
return undefined
|
|
}
|
|
|
|
const logoMap = {
|
|
pixtral: isLight ? PixtralModelLogo : PixtralModelLogoDark,
|
|
jina: isLight ? JinaModelLogo : JinaModelLogoDark,
|
|
abab: isLight ? MinimaxModelLogo : MinimaxModelLogoDark,
|
|
o1: isLight ? ChatGPTo1ModelLogo : ChatGPTo1ModelLogoDark,
|
|
'gpt-3': isLight ? ChatGPT35ModelLogo : ChatGPT35ModelLogoDark,
|
|
'gpt-4': isLight ? ChatGPT4ModelLogo : ChatGPT4ModelLogoDark,
|
|
gpts: isLight ? ChatGPT4ModelLogo : ChatGPT4ModelLogoDark,
|
|
'text-moderation': isLight ? ChatGptModelLogo : ChatGptModelLogoDakr,
|
|
'babbage-': isLight ? ChatGptModelLogo : ChatGptModelLogoDakr,
|
|
'text-embedding': isLight ? ChatGptModelLogo : ChatGptModelLogoDakr,
|
|
'davinci-': isLight ? ChatGptModelLogo : ChatGptModelLogoDakr,
|
|
glm: isLight ? ChatGLMModelLogo : ChatGLMModelLogoDark,
|
|
deepseek: isLight ? DeepSeekModelLogo : DeepSeekModelLogoDark,
|
|
qwen: isLight ? QwenModelLogo : QwenModelLogoDark,
|
|
gemma: isLight ? GemmaModelLogo : GemmaModelLogoDark,
|
|
'yi-': isLight ? YiModelLogo : YiModelLogoDark,
|
|
llama: isLight ? LlamaModelLogo : LlamaModelLogoDark,
|
|
mixtral: isLight ? MistralModelLogo : MistralModelLogo,
|
|
mistral: isLight ? MistralModelLogo : MistralModelLogoDark,
|
|
moonshot: isLight ? MoonshotModelLogo : MoonshotModelLogoDark,
|
|
phi: isLight ? MicrosoftModelLogo : MicrosoftModelLogoDark,
|
|
baichuan: isLight ? BaichuanModelLogo : BaichuanModelLogoDark,
|
|
claude: isLight ? ClaudeModelLogo : ClaudeModelLogoDark,
|
|
gemini: isLight ? GeminiModelLogo : GeminiModelLogoDark,
|
|
embedding: isLight ? EmbeddingModelLogo : EmbeddingModelLogoDark,
|
|
bison: isLight ? PalmModelLogo : PalmModelLogoDark,
|
|
palm: isLight ? PalmModelLogo : PalmModelLogoDark,
|
|
step: isLight ? StepModelLogo : StepModelLogoDark,
|
|
hailuo: isLight ? HailuoModelLogo : HailuoModelLogoDark,
|
|
doubao: isLight ? DoubaoModelLogo : DoubaoModelLogoDark,
|
|
'ep-202': isLight ? DoubaoModelLogo : DoubaoModelLogoDark,
|
|
cohere: isLight ? CohereModelLogo : CohereModelLogoDark,
|
|
command: isLight ? CohereModelLogo : CohereModelLogoDark,
|
|
minicpm: isLight ? MinicpmModelLogo : MinicpmModelLogoDark,
|
|
'360': isLight ? Ai360ModelLogo : Ai360ModelLogoDark,
|
|
aimass: isLight ? AimassModelLogo : AimassModelLogoDark,
|
|
codegeex: isLight ? CodegeexModelLogo : CodegeexModelLogoDark,
|
|
copilot: isLight ? CopilotModelLogo : CopilotModelLogoDark,
|
|
creative: isLight ? CopilotModelLogo : CopilotModelLogoDark,
|
|
balanced: isLight ? CopilotModelLogo : CopilotModelLogoDark,
|
|
precise: isLight ? CopilotModelLogo : CopilotModelLogoDark,
|
|
dalle: isLight ? DalleModelLogo : DalleModelLogoDark,
|
|
'dall-e': isLight ? DalleModelLogo : DalleModelLogoDark,
|
|
dbrx: isLight ? DbrxModelLogo : DbrxModelLogo,
|
|
flashaudio: isLight ? FlashaudioModelLogo : FlashaudioModelLogoDark,
|
|
flux: isLight ? FluxModelLogo : FluxModelLogoDark,
|
|
grok: isLight ? GrokModelLogo : GrokModelLogoDark,
|
|
hunyuan: isLight ? HunyuanModelLogo : HunyuanModelLogoDark,
|
|
internlm: isLight ? InternlmModelLogo : InternlmModelLogoDark,
|
|
llava: isLight ? LLavaModelLogo : LLavaModelLogoDark,
|
|
magic: isLight ? MagicModelLogo : MagicModelLogoDark,
|
|
midjourney: isLight ? MidjourneyModelLogo : MidjourneyModelLogoDark,
|
|
'mj-': isLight ? MidjourneyModelLogo : MidjourneyModelLogoDark,
|
|
'ernie-': isLight ? WenxinModelLogo : WenxinModelLogoDark,
|
|
voice: isLight ? FlashaudioModelLogo : FlashaudioModelLogoDark,
|
|
'tts-1': isLight ? ChatGptModelLogo : ChatGptModelLogoDakr,
|
|
'whisper-': isLight ? ChatGptModelLogo : ChatGptModelLogoDakr,
|
|
'stable-': isLight ? StabilityModelLogo : StabilityModelLogoDark,
|
|
sd2: isLight ? StabilityModelLogo : StabilityModelLogoDark,
|
|
sd3: isLight ? StabilityModelLogo : StabilityModelLogoDark,
|
|
sdxl: isLight ? StabilityModelLogo : StabilityModelLogoDark,
|
|
sparkdesk: isLight ? SparkDeskModelLogo : SparkDeskModelLogoDark,
|
|
generalv: isLight ? SparkDeskModelLogo : SparkDeskModelLogoDark,
|
|
wizardlm: isLight ? MicrosoftModelLogo : MicrosoftModelLogoDark,
|
|
microsoft: isLight ? MicrosoftModelLogo : MicrosoftModelLogoDark,
|
|
hermes: isLight ? NousResearchModelLogo : NousResearchModelLogoDark,
|
|
gryphe: isLight ? GrypheModelLogo : GrypheModelLogoDark,
|
|
suno: isLight ? SunoModelLogo : SunoModelLogoDark,
|
|
chirp: isLight ? SunoModelLogo : SunoModelLogoDark,
|
|
luma: isLight ? LumaModelLogo : LumaModelLogoDark,
|
|
keling: isLight ? KeLingModelLogo : KeLingModelLogoDark,
|
|
'vidu-': isLight ? ViduModelLogo : ViduModelLogoDark,
|
|
ai21: isLight ? Ai21ModelLogo : Ai21ModelLogoDark,
|
|
'jamba-': isLight ? Ai21ModelLogo : Ai21ModelLogoDark,
|
|
mythomax: isLight ? GrypheModelLogo : GrypheModelLogoDark,
|
|
nvidia: isLight ? NvidiaModelLogo : NvidiaModelLogoDark,
|
|
dianxin: isLight ? DianxinModelLogo : DianxinModelLogoDark,
|
|
tele: isLight ? TeleModelLogo : TeleModelLogoDark,
|
|
adept: isLight ? AdeptModelLogo : AdeptModelLogoDark,
|
|
aisingapore: isLight ? AisingaporeModelLogo : AisingaporeModelLogoDark,
|
|
bigcode: isLight ? BigcodeModelLogo : BigcodeModelLogoDark,
|
|
mediatek: isLight ? MediatekModelLogo : MediatekModelLogoDark,
|
|
upstage: isLight ? UpstageModelLogo : UpstageModelLogoDark,
|
|
rakutenai: isLight ? RakutenaiModelLogo : RakutenaiModelLogoDark,
|
|
ibm: isLight ? IbmModelLogo : IbmModelLogoDark,
|
|
'google/': isLight ? GoogleModelLogo : GoogleModelLogoDark,
|
|
hugging: isLight ? HuggingfaceModelLogo : HuggingfaceModelLogoDark,
|
|
'bge-': BgeModelLogo
|
|
}
|
|
|
|
for (const key in logoMap) {
|
|
if (modelId.toLowerCase().includes(key)) {
|
|
return logoMap[key]
|
|
}
|
|
}
|
|
|
|
return undefined
|
|
}
|
|
|
|
export const SYSTEM_MODELS: Record<string, Model[]> = {
|
|
qwenlm: [
|
|
{
|
|
id: 'qwen-plus-latest',
|
|
provider: 'qwenlm',
|
|
name: 'Qwen2.5-Plus',
|
|
group: 'Qwen 2.5'
|
|
},
|
|
{
|
|
id: 'qvq-72b-preview',
|
|
provider: 'qwenlm',
|
|
name: 'QVQ-72B-Preview',
|
|
group: 'QVQ'
|
|
},
|
|
{
|
|
id: 'qwq-32b-preview',
|
|
provider: 'qwenlm',
|
|
name: 'QwQ-32B-Preview',
|
|
group: 'QVQ'
|
|
},
|
|
{
|
|
id: 'qwen2.5-coder-32b-instruct',
|
|
provider: 'qwenlm',
|
|
name: 'Qwen2.5-Coder-32B-Instruct',
|
|
group: 'Qwen 2.5'
|
|
},
|
|
{
|
|
id: 'qwen-vl-max-latest',
|
|
provider: 'qwenlm',
|
|
name: 'Qwen2-VL-Max',
|
|
group: 'Qwen 2'
|
|
},
|
|
{
|
|
id: 'qwen-turbo-latest',
|
|
provider: 'qwenlm',
|
|
name: 'Qwen2.5-Turbo',
|
|
group: 'Qwen 2.5'
|
|
},
|
|
{
|
|
id: 'qwen2.5-72b-instruct',
|
|
provider: 'qwenlm',
|
|
name: 'Qwen2.5-72B-Instruct',
|
|
group: 'Qwen 2.5'
|
|
},
|
|
{
|
|
id: 'qwen2.5-32b-instruct',
|
|
provider: 'qwenlm',
|
|
name: 'Qwen2.5-32B-Instruct',
|
|
group: 'Qwen 2.5'
|
|
}
|
|
],
|
|
aihubmix: [
|
|
{
|
|
id: 'gpt-4o',
|
|
provider: 'aihubmix',
|
|
name: 'GPT-4o',
|
|
group: 'GPT-4o'
|
|
},
|
|
{
|
|
id: 'claude-3-5-sonnet-latest',
|
|
provider: 'aihubmix',
|
|
name: 'Claude 3.5 Sonnet',
|
|
group: 'Claude 3.5'
|
|
},
|
|
{
|
|
id: 'gemini-2.0-flash-exp-search',
|
|
provider: 'aihubmix',
|
|
name: 'Gemini 2.0 Flash Exp Search',
|
|
group: 'Gemini 2.0'
|
|
},
|
|
{
|
|
id: 'deepseek-chat',
|
|
provider: 'aihubmix',
|
|
name: 'DeepSeek Chat',
|
|
group: 'DeepSeek Chat'
|
|
},
|
|
{
|
|
id: 'aihubmix-Llama-3-3-70B-Instruct',
|
|
provider: 'aihubmix',
|
|
name: 'Llama-3.3-70b',
|
|
group: 'Llama 3.3'
|
|
},
|
|
{
|
|
id: 'Qwen/QVQ-72B-Preview',
|
|
provider: 'aihubmix',
|
|
name: 'Qwen/QVQ-72B',
|
|
group: 'Qwen'
|
|
}
|
|
],
|
|
ollama: [],
|
|
silicon: [
|
|
{
|
|
id: 'deepseek-ai/DeepSeek-V2.5',
|
|
name: 'deepseek-ai/DeepSeek-V2.5',
|
|
provider: 'silicon',
|
|
group: 'deepseek-ai'
|
|
},
|
|
{
|
|
id: 'Qwen/Qwen2.5-7B-Instruct',
|
|
provider: 'silicon',
|
|
name: 'Qwen2.5-7B-Instruct',
|
|
group: 'Qwen'
|
|
},
|
|
{
|
|
id: 'meta-llama/Llama-3.3-70B-Instruct',
|
|
name: 'meta-llama/Llama-3.3-70B-Instruct',
|
|
provider: 'silicon',
|
|
group: 'meta-llama'
|
|
}
|
|
],
|
|
openai: [
|
|
{ id: 'gpt-4o', provider: 'openai', name: ' GPT-4o', group: 'GPT 4o' },
|
|
{ id: 'gpt-4o-mini', provider: 'openai', name: ' GPT-4o-mini', group: 'GPT 4o' },
|
|
{ id: 'o1-mini', provider: 'openai', name: ' o1-mini', group: 'o1' },
|
|
{ id: 'o1-preview', provider: 'openai', name: ' o1-preview', group: 'o1' }
|
|
],
|
|
'azure-openai': [
|
|
{
|
|
id: 'gpt-4o',
|
|
provider: 'azure-openai',
|
|
name: ' GPT-4o',
|
|
group: 'GPT 4o'
|
|
},
|
|
{
|
|
id: 'gpt-4o-mini',
|
|
provider: 'azure-openai',
|
|
name: ' GPT-4o-mini',
|
|
group: 'GPT 4o'
|
|
}
|
|
],
|
|
gemini: [
|
|
{
|
|
id: 'gemini-1.5-flash',
|
|
provider: 'gemini',
|
|
name: 'Gemini 1.5 Flash',
|
|
group: 'Gemini 1.5'
|
|
},
|
|
{
|
|
id: 'gemini-1.5-pro',
|
|
name: 'Gemini 1.5 Pro',
|
|
provider: 'gemini',
|
|
group: 'gemini-1.5'
|
|
}
|
|
],
|
|
anthropic: [
|
|
{
|
|
id: 'claude-3-5-sonnet-latest',
|
|
provider: 'anthropic',
|
|
name: 'Claude 3.5 Sonnet',
|
|
group: 'Claude 3.5'
|
|
},
|
|
{
|
|
id: 'claude-3-opus-latest',
|
|
provider: 'anthropic',
|
|
name: 'Claude 3 Opus',
|
|
group: 'Claude 3'
|
|
},
|
|
{
|
|
id: 'claude-3-sonnet-20240229',
|
|
provider: 'anthropic',
|
|
name: 'Claude 3 Sonnet',
|
|
group: 'Claude 3'
|
|
},
|
|
{
|
|
id: 'claude-3-haiku-20240307',
|
|
provider: 'anthropic',
|
|
name: 'Claude 3 Haiku',
|
|
group: 'Claude 3'
|
|
}
|
|
],
|
|
deepseek: [
|
|
{
|
|
id: 'deepseek-chat',
|
|
provider: 'deepseek',
|
|
name: 'DeepSeek Chat',
|
|
group: 'DeepSeek Chat'
|
|
},
|
|
{
|
|
id: 'deepseek-reasoner',
|
|
provider: 'deepseek',
|
|
name: 'DeepSeek Reasoner',
|
|
group: 'DeepSeek Reasoner'
|
|
}
|
|
],
|
|
together: [
|
|
{
|
|
id: 'meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo',
|
|
provider: 'together',
|
|
name: 'Llama-3.2-11B-Vision',
|
|
group: 'Llama-3.2'
|
|
},
|
|
{
|
|
id: 'meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo',
|
|
provider: 'together',
|
|
name: 'Llama-3.2-90B-Vision',
|
|
group: 'Llama-3.2'
|
|
},
|
|
{
|
|
id: 'google/gemma-2-27b-it',
|
|
provider: 'together',
|
|
name: 'gemma-2-27b-it',
|
|
group: 'Gemma'
|
|
},
|
|
{
|
|
id: 'google/gemma-2-9b-it',
|
|
provider: 'together',
|
|
name: 'gemma-2-9b-it',
|
|
group: 'Gemma'
|
|
}
|
|
],
|
|
ocoolai: [
|
|
{
|
|
id: 'gpt-4o',
|
|
provider: 'ocoolai',
|
|
name: 'gpt-4o',
|
|
group: 'OpenAI'
|
|
},
|
|
{
|
|
id: 'gpt-4o-all',
|
|
provider: 'ocoolai',
|
|
name: 'gpt-4o-all',
|
|
group: 'OpenAI'
|
|
},
|
|
{
|
|
id: 'gpt-4-all',
|
|
provider: 'ocoolai',
|
|
name: 'gpt-4-all',
|
|
group: 'OpenAI'
|
|
},
|
|
{
|
|
id: 'gpt-4o-mini',
|
|
provider: 'ocoolai',
|
|
name: 'gpt-4o-mini',
|
|
group: 'OpenAI'
|
|
},
|
|
{
|
|
id: 'gpt-4',
|
|
provider: 'ocoolai',
|
|
name: 'gpt-4',
|
|
group: 'OpenAI'
|
|
},
|
|
{
|
|
id: 'gpt-4-turbo',
|
|
provider: 'ocoolai',
|
|
name: 'gpt-4-turbo',
|
|
group: 'OpenAI'
|
|
},
|
|
{
|
|
id: 'o1-preview',
|
|
provider: 'ocoolai',
|
|
name: 'o1-preview',
|
|
group: 'OpenAI'
|
|
},
|
|
{
|
|
id: 'o1-mini',
|
|
provider: 'ocoolai',
|
|
name: 'o1-mini',
|
|
group: 'OpenAI'
|
|
},
|
|
{
|
|
id: 'gpt-3.5-turbo',
|
|
provider: 'ocoolai',
|
|
name: 'gpt-3.5-turbo',
|
|
group: 'OpenAI'
|
|
},
|
|
{
|
|
id: 'claude-3-5-sonnet-20240620',
|
|
provider: 'ocoolai',
|
|
name: 'claude-3-5-sonnet-20240620',
|
|
group: 'Anthropic'
|
|
},
|
|
{
|
|
id: 'claude-3-opus-20240229',
|
|
provider: 'ocoolai',
|
|
name: 'claude-3-opus-20240229',
|
|
group: 'Anthropic'
|
|
},
|
|
{
|
|
id: 'claude-3-sonnet-20240229',
|
|
provider: 'ocoolai',
|
|
name: 'claude-3-sonnet-20240229',
|
|
group: 'Anthropic'
|
|
},
|
|
{
|
|
id: 'claude-3-haiku-20240307',
|
|
provider: 'ocoolai',
|
|
name: 'claude-3-haiku-20240307',
|
|
group: 'Anthropic'
|
|
},
|
|
{
|
|
id: 'gemini-pro',
|
|
provider: 'ocoolai',
|
|
name: 'gemini-pro',
|
|
group: 'Gemini'
|
|
},
|
|
{
|
|
id: 'gemini-1.5-pro',
|
|
provider: 'ocoolai',
|
|
name: 'gemini-1.5-pro',
|
|
group: 'Gemini'
|
|
},
|
|
{
|
|
id: 'meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo',
|
|
provider: 'ocoolai',
|
|
name: 'Llama-3.2-90B-Vision-Instruct-Turbo',
|
|
group: 'Llama-3.2'
|
|
},
|
|
{
|
|
id: 'meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo',
|
|
provider: 'ocoolai',
|
|
name: 'Llama-3.2-11B-Vision-Instruct-Turbo',
|
|
group: 'Llama-3.2'
|
|
},
|
|
{
|
|
id: 'meta-llama/Llama-3.2-3B-Vision-Instruct-Turbo',
|
|
provider: 'ocoolai',
|
|
name: 'Llama-3.2-3B-Vision-Instruct-Turbo',
|
|
group: 'Llama-3.2'
|
|
},
|
|
{
|
|
id: 'google/gemma-2-27b-it',
|
|
provider: 'ocoolai',
|
|
name: 'gemma-2-27b-it',
|
|
group: 'Gemma'
|
|
},
|
|
{
|
|
id: 'google/gemma-2-9b-it',
|
|
provider: 'ocoolai',
|
|
name: 'gemma-2-9b-it',
|
|
group: 'Gemma'
|
|
}
|
|
],
|
|
github: [
|
|
{
|
|
id: 'gpt-4o',
|
|
provider: 'github',
|
|
name: 'OpenAI GPT-4o',
|
|
group: 'OpenAI'
|
|
}
|
|
],
|
|
yi: [
|
|
{ id: 'yi-lightning', name: 'yi-lightning', provider: 'yi', group: 'yi-lightning', owned_by: '01.ai' },
|
|
{ id: 'yi-medium', name: 'yi-medium', provider: 'yi', group: 'yi-medium', owned_by: '01.ai' },
|
|
{ id: 'yi-large', name: 'yi-large', provider: 'yi', group: 'yi-large', owned_by: '01.ai' },
|
|
{ id: 'yi-vision', name: 'yi-vision', provider: 'yi', group: 'yi-vision', owned_by: '01.ai' }
|
|
],
|
|
zhipu: [
|
|
{
|
|
id: 'glm-zero-preview',
|
|
provider: 'zhipu',
|
|
name: 'GLM-Zero-Preview',
|
|
group: 'GLM-Zero'
|
|
},
|
|
{
|
|
id: 'glm-4-0520',
|
|
provider: 'zhipu',
|
|
name: 'GLM-4-0520',
|
|
group: 'GLM-4'
|
|
},
|
|
{
|
|
id: 'glm-4-long',
|
|
provider: 'zhipu',
|
|
name: 'GLM-4-Long',
|
|
group: 'GLM-4'
|
|
},
|
|
{
|
|
id: 'glm-4-plus',
|
|
provider: 'zhipu',
|
|
name: 'GLM-4-Plus',
|
|
group: 'GLM-4'
|
|
},
|
|
{
|
|
id: 'glm-4-air',
|
|
provider: 'zhipu',
|
|
name: 'GLM-4-Air',
|
|
group: 'GLM-4'
|
|
},
|
|
{
|
|
id: 'glm-4-airx',
|
|
provider: 'zhipu',
|
|
name: 'GLM-4-AirX',
|
|
group: 'GLM-4'
|
|
},
|
|
{
|
|
id: 'glm-4-flash',
|
|
provider: 'zhipu',
|
|
name: 'GLM-4-Flash',
|
|
group: 'GLM-4'
|
|
},
|
|
{
|
|
id: 'glm-4-flashx',
|
|
provider: 'zhipu',
|
|
name: 'GLM-4-FlashX',
|
|
group: 'GLM-4'
|
|
},
|
|
{
|
|
id: 'glm-4v',
|
|
provider: 'zhipu',
|
|
name: 'GLM 4V',
|
|
group: 'GLM-4v'
|
|
},
|
|
{
|
|
id: 'glm-4v-plus',
|
|
provider: 'zhipu',
|
|
name: 'GLM-4V-Plus',
|
|
group: 'GLM-4v'
|
|
},
|
|
{
|
|
id: 'glm-4-alltools',
|
|
provider: 'zhipu',
|
|
name: 'GLM-4-AllTools',
|
|
group: 'GLM-4-AllTools'
|
|
},
|
|
{
|
|
id: 'embedding-3',
|
|
provider: 'zhipu',
|
|
name: 'Embedding-3',
|
|
group: 'Embedding'
|
|
}
|
|
],
|
|
moonshot: [
|
|
{
|
|
id: 'moonshot-v1-auto',
|
|
name: 'moonshot-v1-auto',
|
|
provider: 'moonshot',
|
|
group: 'moonshot-v1',
|
|
owned_by: 'moonshot'
|
|
}
|
|
],
|
|
baichuan: [
|
|
{
|
|
id: 'Baichuan4',
|
|
provider: 'baichuan',
|
|
name: 'Baichuan4',
|
|
group: 'Baichuan4'
|
|
},
|
|
{
|
|
id: 'Baichuan3-Turbo',
|
|
provider: 'baichuan',
|
|
name: 'Baichuan3 Turbo',
|
|
group: 'Baichuan3'
|
|
},
|
|
{
|
|
id: 'Baichuan3-Turbo-128k',
|
|
provider: 'baichuan',
|
|
name: 'Baichuan3 Turbo 128k',
|
|
group: 'Baichuan3'
|
|
}
|
|
],
|
|
bailian: [
|
|
{ id: 'qwen-vl-plus', name: 'qwen-vl-plus', provider: 'dashscope', group: 'qwen-vl', owned_by: 'system' },
|
|
{ id: 'qwen-coder-plus', name: 'qwen-coder-plus', provider: 'dashscope', group: 'qwen-coder', owned_by: 'system' },
|
|
{ id: 'qwen-turbo', name: 'qwen-turbo', provider: 'dashscope', group: 'qwen-turbo', owned_by: 'system' },
|
|
{ id: 'qwen-plus', name: 'qwen-plus', provider: 'dashscope', group: 'qwen-plus', owned_by: 'system' },
|
|
{ id: 'qwen-max', name: 'qwen-max', provider: 'dashscope', group: 'qwen-max', owned_by: 'system' }
|
|
],
|
|
stepfun: [
|
|
{
|
|
id: 'step-1-8k',
|
|
provider: 'stepfun',
|
|
name: 'Step 1 8K',
|
|
group: 'Step 1'
|
|
},
|
|
{
|
|
id: 'step-1-flash',
|
|
provider: 'stepfun',
|
|
name: 'Step 1 Flash',
|
|
group: 'Step 1'
|
|
}
|
|
],
|
|
doubao: [],
|
|
minimax: [
|
|
{
|
|
id: 'abab6.5s-chat',
|
|
provider: 'minimax',
|
|
name: 'abab6.5s',
|
|
group: 'abab6'
|
|
},
|
|
{
|
|
id: 'abab6.5g-chat',
|
|
provider: 'minimax',
|
|
name: 'abab6.5g',
|
|
group: 'abab6'
|
|
},
|
|
{
|
|
id: 'abab6.5t-chat',
|
|
provider: 'minimax',
|
|
name: 'abab6.5t',
|
|
group: 'abab6'
|
|
},
|
|
{
|
|
id: 'abab5.5s-chat',
|
|
provider: 'minimax',
|
|
name: 'abab5.5s',
|
|
group: 'abab5'
|
|
}
|
|
],
|
|
hyperbolic: [
|
|
{
|
|
id: 'Qwen/Qwen2-VL-72B-Instruct',
|
|
provider: 'hyperbolic',
|
|
name: 'Qwen2-VL-72B-Instruct',
|
|
group: 'Qwen2-VL'
|
|
},
|
|
{
|
|
id: 'Qwen/Qwen2-VL-7B-Instruct',
|
|
provider: 'hyperbolic',
|
|
name: 'Qwen2-VL-7B-Instruct',
|
|
group: 'Qwen2-VL'
|
|
},
|
|
{
|
|
id: 'mistralai/Pixtral-12B-2409',
|
|
provider: 'hyperbolic',
|
|
name: 'Pixtral-12B-2409',
|
|
group: 'Pixtral'
|
|
},
|
|
{
|
|
id: 'meta-llama/Meta-Llama-3.1-405B',
|
|
provider: 'hyperbolic',
|
|
name: 'Meta-Llama-3.1-405B',
|
|
group: 'Meta-Llama-3.1'
|
|
}
|
|
],
|
|
grok: [
|
|
{
|
|
id: 'grok-beta',
|
|
provider: 'grok',
|
|
name: 'Grok Beta',
|
|
group: 'Grok'
|
|
},
|
|
{
|
|
id: 'grok-vision-beta',
|
|
provider: 'grok',
|
|
name: 'Grok Vision Beta',
|
|
group: 'Grok'
|
|
}
|
|
],
|
|
mistral: [
|
|
{
|
|
id: 'pixtral-12b-2409',
|
|
provider: 'mistral',
|
|
name: 'Pixtral-12B-2409',
|
|
group: 'Pixtral'
|
|
},
|
|
{
|
|
id: 'open-mistral-nemo',
|
|
provider: 'mistral',
|
|
name: 'Open-Mistral-Nemo',
|
|
group: 'Mistral'
|
|
}
|
|
],
|
|
jina: [
|
|
{
|
|
id: 'jina-clip-v1',
|
|
provider: 'jina',
|
|
name: 'jina-clip-v1',
|
|
group: 'Jina Clip'
|
|
},
|
|
{
|
|
id: 'jina-clip-v2',
|
|
provider: 'jina',
|
|
name: 'jina-clip-v2',
|
|
group: 'Jina Clip'
|
|
},
|
|
{
|
|
id: 'jina-embeddings-v2-base-en',
|
|
provider: 'jina',
|
|
name: 'jina-embeddings-v2-base-en',
|
|
group: 'Jina Embeddings V2'
|
|
},
|
|
{
|
|
id: 'jina-embeddings-v2-base-es',
|
|
provider: 'jina',
|
|
name: 'jina-embeddings-v2-base-es',
|
|
group: 'Jina Embeddings V2'
|
|
},
|
|
{
|
|
id: 'jina-embeddings-v2-base-de',
|
|
provider: 'jina',
|
|
name: 'jina-embeddings-v2-base-de',
|
|
group: 'Jina Embeddings V2'
|
|
},
|
|
{
|
|
id: 'jina-embeddings-v2-base-zh',
|
|
provider: 'jina',
|
|
name: 'jina-embeddings-v2-base-zh',
|
|
group: 'Jina Embeddings V2'
|
|
},
|
|
{
|
|
id: 'jina-embeddings-v2-base-code',
|
|
provider: 'jina',
|
|
name: 'jina-embeddings-v2-base-code',
|
|
group: 'Jina Embeddings V2'
|
|
},
|
|
{
|
|
id: 'jina-embeddings-v3',
|
|
provider: 'jina',
|
|
name: 'jina-embeddings-v3',
|
|
group: 'Jina Embeddings V3'
|
|
}
|
|
],
|
|
fireworks: [
|
|
{
|
|
id: 'accounts/fireworks/models/mythomax-l2-13b',
|
|
provider: 'fireworks',
|
|
name: 'mythomax-l2-13b',
|
|
group: 'Gryphe'
|
|
},
|
|
{
|
|
id: 'accounts/fireworks/models/llama-v3-70b-instruct',
|
|
provider: 'fireworks',
|
|
name: 'Llama-3-70B-Instruct',
|
|
group: 'Llama3'
|
|
}
|
|
],
|
|
zhinao: [
|
|
{
|
|
id: '360gpt-pro',
|
|
provider: 'zhinao',
|
|
name: '360gpt-pro',
|
|
group: '360Gpt'
|
|
},
|
|
{
|
|
id: '360gpt-turbo',
|
|
provider: 'zhinao',
|
|
name: '360gpt-turbo',
|
|
group: '360Gpt'
|
|
}
|
|
],
|
|
hunyuan: [
|
|
{
|
|
id: 'hunyuan-pro',
|
|
provider: 'hunyuan',
|
|
name: 'hunyuan-pro',
|
|
group: 'Hunyuan'
|
|
},
|
|
{
|
|
id: 'hunyuan-standard',
|
|
provider: 'hunyuan',
|
|
name: 'hunyuan-standard',
|
|
group: 'Hunyuan'
|
|
},
|
|
{
|
|
id: 'hunyuan-lite',
|
|
provider: 'hunyuan',
|
|
name: 'hunyuan-lite',
|
|
group: 'Hunyuan'
|
|
},
|
|
{
|
|
id: 'hunyuan-standard-256k',
|
|
provider: 'hunyuan',
|
|
name: 'hunyuan-standard-256k',
|
|
group: 'Hunyuan'
|
|
},
|
|
{
|
|
id: 'hunyuan-vision',
|
|
provider: 'hunyuan',
|
|
name: 'hunyuan-vision',
|
|
group: 'Hunyuan'
|
|
},
|
|
{
|
|
id: 'hunyuan-code',
|
|
provider: 'hunyuan',
|
|
name: 'hunyuan-code',
|
|
group: 'Hunyuan'
|
|
},
|
|
{
|
|
id: 'hunyuan-role',
|
|
provider: 'hunyuan',
|
|
name: 'hunyuan-role',
|
|
group: 'Hunyuan'
|
|
},
|
|
{
|
|
id: 'hunyuan-turbo',
|
|
provider: 'hunyuan',
|
|
name: 'hunyuan-turbo',
|
|
group: 'Hunyuan'
|
|
}
|
|
],
|
|
nvidia: [
|
|
{
|
|
id: '01-ai/yi-large',
|
|
provider: 'nvidia',
|
|
name: 'yi-large',
|
|
group: 'Yi'
|
|
},
|
|
{
|
|
id: 'meta/llama-3.1-405b-instruct',
|
|
provider: 'nvidia',
|
|
name: 'llama-3.1-405b-instruct',
|
|
group: 'llama-3.1'
|
|
}
|
|
],
|
|
openrouter: [
|
|
{
|
|
id: 'google/gemma-2-9b-it:free',
|
|
provider: 'openrouter',
|
|
name: 'Google: Gemma 2 9B',
|
|
group: 'Gemma'
|
|
},
|
|
{
|
|
id: 'microsoft/phi-3-mini-128k-instruct:free',
|
|
provider: 'openrouter',
|
|
name: 'Phi-3 Mini 128K Instruct',
|
|
group: 'Phi'
|
|
},
|
|
{
|
|
id: 'microsoft/phi-3-medium-128k-instruct:free',
|
|
provider: 'openrouter',
|
|
name: 'Phi-3 Medium 128K Instruct',
|
|
group: 'Phi'
|
|
},
|
|
{
|
|
id: 'meta-llama/llama-3-8b-instruct:free',
|
|
provider: 'openrouter',
|
|
name: 'Meta: Llama 3 8B Instruct',
|
|
group: 'Llama3'
|
|
},
|
|
{
|
|
id: 'mistralai/mistral-7b-instruct:free',
|
|
provider: 'openrouter',
|
|
name: 'Mistral: Mistral 7B Instruct',
|
|
group: 'Mistral'
|
|
}
|
|
],
|
|
groq: [
|
|
{
|
|
id: 'llama3-8b-8192',
|
|
provider: 'groq',
|
|
name: 'LLaMA3 8B',
|
|
group: 'Llama3'
|
|
},
|
|
{
|
|
id: 'llama3-70b-8192',
|
|
provider: 'groq',
|
|
name: 'LLaMA3 70B',
|
|
group: 'Llama3'
|
|
},
|
|
{
|
|
id: 'mixtral-8x7b-32768',
|
|
provider: 'groq',
|
|
name: 'Mixtral 8x7B',
|
|
group: 'Mixtral'
|
|
},
|
|
{
|
|
id: 'gemma-7b-it',
|
|
provider: 'groq',
|
|
name: 'Gemma 7B',
|
|
group: 'Gemma'
|
|
}
|
|
]
|
|
}
|
|
|
|
export const TEXT_TO_IMAGES_MODELS = [
|
|
{
|
|
id: 'black-forest-labs/FLUX.1-dev',
|
|
provider: 'silicon',
|
|
name: 'FLUX.1-dev',
|
|
group: 'FLUX'
|
|
},
|
|
{
|
|
id: 'black-forest-labs/FLUX.1-schnell',
|
|
provider: 'silicon',
|
|
name: 'FLUX.1-schnell',
|
|
group: 'FLUX'
|
|
},
|
|
{
|
|
id: 'Pro/black-forest-labs/FLUX.1-schnell',
|
|
provider: 'silicon',
|
|
name: 'FLUX.1-schnell Pro',
|
|
group: 'FLUX'
|
|
},
|
|
{
|
|
id: 'stabilityai/stable-diffusion-3-5-large',
|
|
provider: 'silicon',
|
|
name: 'Stable Diffusion 3.5 Large',
|
|
group: 'Stable Diffusion'
|
|
},
|
|
{
|
|
id: 'stabilityai/stable-diffusion-3-medium',
|
|
provider: 'silicon',
|
|
name: 'Stable Diffusion 3 Medium',
|
|
group: 'Stable Diffusion'
|
|
},
|
|
{
|
|
id: 'stabilityai/stable-diffusion-2-1',
|
|
provider: 'silicon',
|
|
name: 'Stable Diffusion 2.1',
|
|
group: 'Stable Diffusion'
|
|
},
|
|
{
|
|
id: 'stabilityai/stable-diffusion-xl-base-1.0',
|
|
provider: 'silicon',
|
|
name: 'Stable Diffusion XL Base 1.0',
|
|
group: 'Stable Diffusion'
|
|
}
|
|
]
|
|
|
|
export const TEXT_TO_IMAGES_MODELS_SUPPORT_IMAGE_ENHANCEMENT = [
|
|
'stabilityai/stable-diffusion-2-1',
|
|
'stabilityai/stable-diffusion-xl-base-1.0'
|
|
]
|
|
|
|
export function isTextToImageModel(model: Model): boolean {
|
|
return TEXT_TO_IMAGE_REGEX.test(model.id)
|
|
}
|
|
|
|
export function isEmbeddingModel(model: Model): boolean {
|
|
if (!model) {
|
|
return false
|
|
}
|
|
|
|
if (['anthropic'].includes(model?.provider)) {
|
|
return false
|
|
}
|
|
|
|
return EMBEDDING_REGEX.test(model.id) || model.type?.includes('embedding') || false
|
|
}
|
|
|
|
export function isVisionModel(model: Model): boolean {
|
|
if (!model) {
|
|
return false
|
|
}
|
|
|
|
return VISION_REGEX.test(model.id) || model.type?.includes('vision') || false
|
|
}
|
|
|
|
export function isSupportedModel(model: OpenAI.Models.Model): boolean {
|
|
if (!model) {
|
|
return false
|
|
}
|
|
|
|
return !NOT_SUPPORTED_REGEX.test(model.id)
|
|
}
|
|
|
|
export function isWebSearchModel(model: Model): boolean {
|
|
if (!model) {
|
|
return false
|
|
}
|
|
|
|
const provider = getProviderByModel(model)
|
|
|
|
if (!provider) {
|
|
return false
|
|
}
|
|
|
|
if (provider?.type === 'openai') {
|
|
if (model?.id?.includes('gemini-2.0-flash-exp')) {
|
|
return true
|
|
}
|
|
}
|
|
|
|
if (provider.id === 'gemini' || provider?.type === 'gemini') {
|
|
return model?.id === 'gemini-2.0-flash-exp'
|
|
}
|
|
|
|
if (provider.id === 'hunyuan') {
|
|
return model?.id !== 'hunyuan-lite'
|
|
}
|
|
|
|
if (provider.id === 'aihubmix') {
|
|
return model?.id === 'gemini-2.0-flash-exp-search'
|
|
}
|
|
|
|
if (provider.id === 'zhipu') {
|
|
return model?.id?.startsWith('glm-4-')
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
export function getOpenAIWebSearchParams(model: Model): Record<string, any> {
|
|
if (isWebSearchModel(model)) {
|
|
const webSearchTools = getWebSearchTools(model)
|
|
|
|
if (model.provider === 'hunyuan') {
|
|
return { enable_enhancement: true }
|
|
}
|
|
|
|
return {
|
|
tools: webSearchTools
|
|
}
|
|
}
|
|
|
|
return {}
|
|
}
|