mirror of
https://github.com/lobehub/lobehub
synced 2026-04-21 17:47:27 +00:00
💄 style: Add Gemini 3 Flash & Doubao Seed 1.8 models (#10832)
* ✨ feat: 添加 Gemini 3 Flash 模型及其参数配置 * ✨ feat: 添加 Doubao Seed 1.8 和 DeepSeek V3.2 模型,更新模型参数配置;修改处理负载以支持 reasoning_effort * ✨ feat: 启用 DeepSeek V3.2 模型 * ✨ feat: 移除 doubaoChatModels 中的 enableReasoning 参数 * ✨ feat: 添加混元图生文模型,更新智谱模型配置,优化模型解析逻辑 * ✨ feat: 添加 MiniMax M2.1 和 MiniMax M2.1 Lightning 模型,更新模型参数配置;调整 OllamaCloud 模型的上下文窗口大小 * ✨ feat: 添加 MiniMax M2.1 和 GLM-4.7 模型,更新模型描述和参数配置 * ✨ feat: 添加 GLM-4.7 模型,更新模型描述和定价策略;优化 Zhipu 模型的工具处理逻辑 * ✨ feat: add thinkingLevel2 parameter and update related components * Update volcengine.ts * ✨ feat: 添加 gpt5_2ReasoningEffort 和 gpt5_2ProReasoningEffort 参数,并更新相关组件 --------- Co-authored-by: Arvin Xu <arvinx@foxmail.com>
This commit is contained in:
parent
2e260a8146
commit
cb3593585b
27 changed files with 876 additions and 177 deletions
|
|
@ -25,7 +25,7 @@ const aihubmixModels: AIChatModelCard[] = [
|
|||
},
|
||||
releasedAt: '2025-12-11',
|
||||
settings: {
|
||||
extendParams: ['gpt5_1ReasoningEffort', 'textVerbosity'],
|
||||
extendParams: ['gpt5_2ReasoningEffort', 'textVerbosity'],
|
||||
searchImpl: 'params',
|
||||
},
|
||||
type: 'chat',
|
||||
|
|
@ -51,6 +51,7 @@ const aihubmixModels: AIChatModelCard[] = [
|
|||
},
|
||||
releasedAt: '2025-12-11',
|
||||
settings: {
|
||||
extendParams: ['gpt5_2ProReasoningEffort', 'textVerbosity'],
|
||||
searchImpl: 'params',
|
||||
},
|
||||
type: 'chat',
|
||||
|
|
@ -189,7 +190,8 @@ const aihubmixModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 400_000,
|
||||
description: 'GPT-5 pro uses more compute to think deeper and consistently deliver better answers.',
|
||||
description:
|
||||
'GPT-5 pro uses more compute to think deeper and consistently deliver better answers.',
|
||||
displayName: 'GPT-5 pro',
|
||||
id: 'gpt-5-pro',
|
||||
maxOutput: 272_000,
|
||||
|
|
@ -478,7 +480,8 @@ const aihubmixModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_047_576,
|
||||
description: 'GPT-4.1 is our flagship model for complex tasks and cross-domain problem solving.',
|
||||
description:
|
||||
'GPT-4.1 is our flagship model for complex tasks and cross-domain problem solving.',
|
||||
displayName: 'GPT-4.1',
|
||||
id: 'gpt-4.1',
|
||||
maxOutput: 32_768,
|
||||
|
|
@ -502,8 +505,7 @@ const aihubmixModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_047_576,
|
||||
description:
|
||||
'GPT-4.1 mini balances intelligence, speed, and cost for many use cases.',
|
||||
description: 'GPT-4.1 mini balances intelligence, speed, and cost for many use cases.',
|
||||
displayName: 'GPT-4.1 mini',
|
||||
id: 'gpt-4.1-mini',
|
||||
maxOutput: 32_768,
|
||||
|
|
@ -1137,6 +1139,41 @@ const aihubmixModels: AIChatModelCard[] = [
|
|||
],
|
||||
},
|
||||
releasedAt: '2025-11-18',
|
||||
settings: {
|
||||
extendParams: ['thinkingLevel2', 'urlContext'],
|
||||
searchImpl: 'params',
|
||||
searchProvider: 'google',
|
||||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
search: true,
|
||||
video: true,
|
||||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description: 'Gemini 3 Flash 是为速度而打造的最智能的模型,将前沿智能与卓越的搜索接地相结合。',
|
||||
displayName: 'Gemini 3 Flash Preview',
|
||||
enabled: true,
|
||||
id: 'gemini-3-flash-preview',
|
||||
maxOutput: 65_536,
|
||||
pricing: {
|
||||
units: [
|
||||
{ name: 'textInput_cacheRead', rate: 0.05, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textInput', rate: 0.5, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textOutput', rate: 3, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{
|
||||
lookup: { prices: { '1h': 1 }, pricingParams: ['ttl'] },
|
||||
name: 'textInput_cacheWrite',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
],
|
||||
},
|
||||
releasedAt: '2025-12-17',
|
||||
settings: {
|
||||
extendParams: ['thinkingLevel', 'urlContext'],
|
||||
searchImpl: 'params',
|
||||
|
|
@ -1210,7 +1247,7 @@ const aihubmixModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description: "Gemini 2.5 Flash is Google’s best-value model with full capabilities.",
|
||||
description: 'Gemini 2.5 Flash is Google’s best-value model with full capabilities.',
|
||||
displayName: 'Gemini 2.5 Flash',
|
||||
id: 'gemini-2.5-flash',
|
||||
maxOutput: 65_536,
|
||||
|
|
@ -1238,7 +1275,6 @@ const aihubmixModels: AIChatModelCard[] = [
|
|||
description:
|
||||
'Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, allowing image generation and editing through conversation.',
|
||||
displayName: 'Nano Banana',
|
||||
enabled: true,
|
||||
id: 'gemini-2.5-flash-image',
|
||||
maxOutput: 8192,
|
||||
pricing: {
|
||||
|
|
@ -1262,7 +1298,7 @@ const aihubmixModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description:
|
||||
"Gemini 2.5 Flash-Lite is Google’s smallest, best-value model, designed for large-scale use.",
|
||||
'Gemini 2.5 Flash-Lite is Google’s smallest, best-value model, designed for large-scale use.',
|
||||
displayName: 'Gemini 2.5 Flash-Lite',
|
||||
id: 'gemini-2.5-flash-lite',
|
||||
maxOutput: 65_536,
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ const googleChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description:
|
||||
"Gemini 3 Pro is Google’s most powerful agent and vibe-coding model, delivering richer visuals and deeper interaction on top of state-of-the-art reasoning.",
|
||||
'Gemini 3 Pro is Google’s most powerful agent and vibe-coding model, delivering richer visuals and deeper interaction on top of state-of-the-art reasoning.',
|
||||
displayName: 'Gemini 3 Pro Preview',
|
||||
enabled: true,
|
||||
id: 'gemini-3-pro-preview',
|
||||
|
|
@ -166,6 +166,41 @@ const googleChatModels: AIChatModelCard[] = [
|
|||
],
|
||||
},
|
||||
releasedAt: '2025-11-18',
|
||||
settings: {
|
||||
extendParams: ['thinkingLevel2', 'urlContext'],
|
||||
searchImpl: 'params',
|
||||
searchProvider: 'google',
|
||||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
search: true,
|
||||
video: true,
|
||||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description: 'Gemini 3 Flash 是为速度而打造的最智能的模型,将前沿智能与卓越的搜索接地相结合。',
|
||||
displayName: 'Gemini 3 Flash Preview',
|
||||
enabled: true,
|
||||
id: 'gemini-3-flash-preview',
|
||||
maxOutput: 65_536,
|
||||
pricing: {
|
||||
units: [
|
||||
{ name: 'textInput_cacheRead', rate: 0.05, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textInput', rate: 0.5, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textOutput', rate: 3, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{
|
||||
lookup: { prices: { '1h': 1 }, pricingParams: ['ttl'] },
|
||||
name: 'textInput_cacheWrite',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
],
|
||||
},
|
||||
releasedAt: '2025-12-17',
|
||||
settings: {
|
||||
extendParams: ['thinkingLevel', 'urlContext'],
|
||||
searchImpl: 'params',
|
||||
|
|
@ -182,7 +217,7 @@ const googleChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 131_072 + 32_768,
|
||||
description:
|
||||
"Gemini 3 Pro Image (Nano Banana Pro) is Google’s image generation model and also supports multimodal chat.",
|
||||
'Gemini 3 Pro Image (Nano Banana Pro) is Google’s image generation model and also supports multimodal chat.',
|
||||
displayName: 'Nano Banana Pro',
|
||||
enabled: true,
|
||||
id: 'gemini-3-pro-image-preview',
|
||||
|
|
@ -213,9 +248,8 @@ const googleChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description:
|
||||
"Gemini 2.5 Pro is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.",
|
||||
'Gemini 2.5 Pro is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.',
|
||||
displayName: 'Gemini 2.5 Pro',
|
||||
enabled: true,
|
||||
id: 'gemini-2.5-pro',
|
||||
maxOutput: 65_536,
|
||||
pricing: {
|
||||
|
|
@ -273,7 +307,7 @@ const googleChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description:
|
||||
"Gemini 2.5 Pro Preview is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.",
|
||||
'Gemini 2.5 Pro Preview is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.',
|
||||
displayName: 'Gemini 2.5 Pro Preview 06-05',
|
||||
id: 'gemini-2.5-pro-preview-06-05',
|
||||
maxOutput: 65_536,
|
||||
|
|
@ -326,7 +360,7 @@ const googleChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description:
|
||||
"Gemini 2.5 Pro Preview is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.",
|
||||
'Gemini 2.5 Pro Preview is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.',
|
||||
displayName: 'Gemini 2.5 Pro Preview 05-06',
|
||||
id: 'gemini-2.5-pro-preview-05-06',
|
||||
maxOutput: 65_536,
|
||||
|
|
@ -377,9 +411,8 @@ const googleChatModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description: "Gemini 2.5 Flash is Google’s best-value model with full capabilities.",
|
||||
description: 'Gemini 2.5 Flash is Google’s best-value model with full capabilities.',
|
||||
displayName: 'Gemini 2.5 Flash',
|
||||
enabled: true,
|
||||
id: 'gemini-2.5-flash',
|
||||
maxOutput: 65_536,
|
||||
pricing: {
|
||||
|
|
@ -432,9 +465,8 @@ const googleChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 32_768 + 8192,
|
||||
description:
|
||||
"Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.",
|
||||
'Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.',
|
||||
displayName: 'Nano Banana',
|
||||
enabled: true,
|
||||
id: 'gemini-2.5-flash-image',
|
||||
maxOutput: 8192,
|
||||
pricing: {
|
||||
|
|
@ -459,7 +491,7 @@ const googleChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 32_768 + 8192,
|
||||
description:
|
||||
"Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.",
|
||||
'Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.',
|
||||
displayName: 'Nano Banana (Preview)',
|
||||
id: 'gemini-2.5-flash-image-preview',
|
||||
maxOutput: 8192,
|
||||
|
|
@ -488,7 +520,7 @@ const googleChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description:
|
||||
"Gemini 2.5 Flash-Lite is Google’s smallest, best-value model, designed for large-scale use.",
|
||||
'Gemini 2.5 Flash-Lite is Google’s smallest, best-value model, designed for large-scale use.',
|
||||
displayName: 'Gemini 2.5 Flash-Lite',
|
||||
id: 'gemini-2.5-flash-lite',
|
||||
maxOutput: 65_536,
|
||||
|
|
@ -706,7 +738,8 @@ const googleChatModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_008_192,
|
||||
description: 'Gemini 1.5 Flash 002 is an efficient multimodal model built for broad deployment.',
|
||||
description:
|
||||
'Gemini 1.5 Flash 002 is an efficient multimodal model built for broad deployment.',
|
||||
displayName: 'Gemini 1.5 Flash 002',
|
||||
id: 'gemini-1.5-flash-002', // Deprecated on 2025-09-24
|
||||
maxOutput: 8192,
|
||||
|
|
@ -903,7 +936,7 @@ const googleImageModels: AIImageModelCard[] = [
|
|||
type: 'image',
|
||||
enabled: true,
|
||||
description:
|
||||
"Gemini 3 Pro Image (Nano Banana Pro) is Google’s image generation model and also supports multimodal chat.",
|
||||
'Gemini 3 Pro Image (Nano Banana Pro) is Google’s image generation model and also supports multimodal chat.',
|
||||
releasedAt: '2025-11-18',
|
||||
parameters: nanoBananaProParameters,
|
||||
pricing: {
|
||||
|
|
@ -918,10 +951,9 @@ const googleImageModels: AIImageModelCard[] = [
|
|||
{
|
||||
displayName: 'Nano Banana',
|
||||
id: 'gemini-2.5-flash-image:image',
|
||||
enabled: true,
|
||||
type: 'image',
|
||||
description:
|
||||
"Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.",
|
||||
'Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.',
|
||||
releasedAt: '2025-08-26',
|
||||
parameters: nanoBananaParameters,
|
||||
pricing: {
|
||||
|
|
@ -938,7 +970,7 @@ const googleImageModels: AIImageModelCard[] = [
|
|||
id: 'gemini-2.5-flash-image-preview:image',
|
||||
type: 'image',
|
||||
description:
|
||||
"Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.",
|
||||
'Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.',
|
||||
releasedAt: '2025-08-26',
|
||||
parameters: CHAT_MODEL_IMAGE_GENERATION_PARAMS,
|
||||
pricing: {
|
||||
|
|
|
|||
|
|
@ -446,6 +446,26 @@ const hunyuanChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 24_000,
|
||||
description:
|
||||
'基于文本 TurboS 基座生产的图生文快思考模型,相比上一版本在图像基础识别、图像分析推理等维度都有明显的效果提升。',
|
||||
displayName: '混元图生文',
|
||||
id: 'hunyuan-vision-1.5-instruct',
|
||||
maxOutput: 16_000,
|
||||
pricing: {
|
||||
currency: 'CNY',
|
||||
units: [
|
||||
{ name: 'textInput', rate: 3, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textOutput', rate: 9, strategy: 'fixed', unit: 'millionTokens' },
|
||||
],
|
||||
},
|
||||
releasedAt: '2025-12-17',
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
vision: true,
|
||||
|
|
|
|||
|
|
@ -51,9 +51,29 @@ const infiniaiChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 200_000,
|
||||
description:
|
||||
'MiniMax-M2 is a MoE language model optimized for coding and agent workflows, with about 230B total parameters and around 10B active parameters. It strengthens developer scenarios such as multi-file editing, code-run-fix loops, and test verification/repair, while delivering stable, efficient performance in real environments like terminals, IDEs, and CI.',
|
||||
displayName: 'MiniMax M2',
|
||||
'MiniMax-M2.1 是 MiniMax 系列的最新版本,专为多语言编程和真实世界复杂任务优化。作为一款 AI 原生模型,MiniMax-M2.1 在模型性能、智能体框架支持以及多场景适配方面实现了显著提升,旨在帮助企业和个人更快地找到 AI 原生的工作与生活方式。',
|
||||
displayName: 'MiniMax M2.1',
|
||||
enabled: true,
|
||||
id: 'minimax-m2.1',
|
||||
maxOutput: 200_000,
|
||||
pricing: {
|
||||
currency: 'CNY',
|
||||
units: [
|
||||
{ name: 'textInput', rate: 2.1, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textOutput', rate: 8.4, strategy: 'fixed', unit: 'millionTokens' },
|
||||
],
|
||||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 200_000,
|
||||
description:
|
||||
'MiniMax-M2 是一款专为编码与智能体工作流优化的专家混合(MoE)语言模型,具有约 230B 总参数与约 10B 活跃参数。它在保持强通用智能的同时,针对多文件编辑、代码-运行-修复闭环、测试校验修复等开发者场景进行深度增强,在终端、IDE 与 CI 等真实环境中表现稳定、高效。',
|
||||
displayName: 'MiniMax M2',
|
||||
id: 'minimax-m2',
|
||||
maxOutput: 200_000,
|
||||
pricing: {
|
||||
|
|
@ -71,16 +91,38 @@ const infiniaiChatModels: AIChatModelCard[] = [
|
|||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 131_072,
|
||||
description: 'GLM-4.6 is Zhipu AI’s latest LLM, with stronger reasoning and generation.',
|
||||
displayName: 'GLM-4.6',
|
||||
description: 'GLM-4.7 是智谱AI推出的最新大语言模型,具备更强的推理和生成能力。',
|
||||
displayName: 'GLM-4.7',
|
||||
enabled: true,
|
||||
id: 'glm-4.7',
|
||||
maxOutput: 4096,
|
||||
pricing: {
|
||||
currency: 'CNY',
|
||||
units: [
|
||||
{ name: 'textInput', rate: 3, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textOutput', rate: 14, strategy: 'fixed', unit: 'millionTokens' },
|
||||
],
|
||||
},
|
||||
settings: {
|
||||
extendParams: ['enableReasoning'],
|
||||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 131_072,
|
||||
description: 'GLM-4.6 是智谱AI推出的最新大语言模型,具备更强的推理和生成能力。',
|
||||
displayName: 'GLM-4.6',
|
||||
id: 'glm-4.6',
|
||||
maxOutput: 4096,
|
||||
pricing: {
|
||||
currency: 'CNY',
|
||||
units: [
|
||||
{ name: 'textInput', rate: 4, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textOutput', rate: 16, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textInput', rate: 3, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textOutput', rate: 14, strategy: 'fixed', unit: 'millionTokens' },
|
||||
],
|
||||
},
|
||||
settings: {
|
||||
|
|
@ -96,7 +138,6 @@ const infiniaiChatModels: AIChatModelCard[] = [
|
|||
contextWindowTokens: 131_072,
|
||||
description: 'DeepSeek-V3.2-Exp is an experimental DeepSeek LLM with stronger reasoning and generation.',
|
||||
displayName: 'DeepSeek V3.2 Exp',
|
||||
enabled: true,
|
||||
id: 'deepseek-v3.2-exp',
|
||||
maxOutput: 65_536,
|
||||
pricing: {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,8 @@ const lobehubChatModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 400_000,
|
||||
description: "GPT-5.2 — OpenAI's flagship model optimized for coding and agent tasks across industries.",
|
||||
description:
|
||||
"GPT-5.2 — OpenAI's flagship model optimized for coding and agent tasks across industries.",
|
||||
displayName: 'GPT-5.2',
|
||||
enabled: true,
|
||||
id: 'gpt-5.2',
|
||||
|
|
@ -26,7 +27,7 @@ const lobehubChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
releasedAt: '2025-12-11',
|
||||
settings: {
|
||||
extendParams: ['gpt5_1ReasoningEffort', 'textVerbosity'],
|
||||
extendParams: ['gpt5_2ReasoningEffort', 'textVerbosity'],
|
||||
searchImpl: 'params',
|
||||
},
|
||||
type: 'chat',
|
||||
|
|
@ -164,7 +165,8 @@ const lobehubChatModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_047_576,
|
||||
description: 'GPT-4.1 is our flagship model for complex tasks and cross-domain problem solving.',
|
||||
description:
|
||||
'GPT-4.1 is our flagship model for complex tasks and cross-domain problem solving.',
|
||||
displayName: 'GPT-4.1',
|
||||
enabled: true,
|
||||
id: 'gpt-4.1',
|
||||
|
|
@ -628,7 +630,7 @@ const lobehubChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description:
|
||||
"Gemini 3 Pro is Google’s most powerful agent and vibe-coding model, delivering richer visuals and deeper interaction on top of state-of-the-art reasoning.",
|
||||
'Gemini 3 Pro is Google’s most powerful agent and vibe-coding model, delivering richer visuals and deeper interaction on top of state-of-the-art reasoning.',
|
||||
displayName: 'Gemini 3 Pro Preview',
|
||||
enabled: true,
|
||||
id: 'gemini-3-pro-preview',
|
||||
|
|
@ -672,7 +674,7 @@ const lobehubChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
releasedAt: '2025-11-18',
|
||||
settings: {
|
||||
extendParams: ['thinkingLevel', 'urlContext'],
|
||||
extendParams: ['thinkingLevel2', 'urlContext'],
|
||||
searchImpl: 'params',
|
||||
searchProvider: 'google',
|
||||
},
|
||||
|
|
@ -728,7 +730,7 @@ const lobehubChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description:
|
||||
"Gemini 2.5 Pro is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.",
|
||||
'Gemini 2.5 Pro is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.',
|
||||
displayName: 'Gemini 2.5 Pro',
|
||||
enabled: true,
|
||||
id: 'gemini-2.5-pro',
|
||||
|
|
@ -780,7 +782,7 @@ const lobehubChatModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description: "Gemini 2.5 Flash is Google’s best-value model with full capabilities.",
|
||||
description: 'Gemini 2.5 Flash is Google’s best-value model with full capabilities.',
|
||||
displayName: 'Gemini 2.5 Flash',
|
||||
enabled: true,
|
||||
id: 'gemini-2.5-flash',
|
||||
|
|
@ -819,7 +821,7 @@ const lobehubChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 131_072 + 32_768,
|
||||
description:
|
||||
"Gemini 3 Pro Image (Nano Banana Pro) is Google’s image generation model and also supports multimodal chat.",
|
||||
'Gemini 3 Pro Image (Nano Banana Pro) is Google’s image generation model and also supports multimodal chat.',
|
||||
displayName: 'Nano Banana Pro',
|
||||
enabled: true,
|
||||
id: 'gemini-3-pro-image-preview',
|
||||
|
|
@ -845,7 +847,7 @@ const lobehubChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 32_768 + 32_768,
|
||||
description:
|
||||
"Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.",
|
||||
'Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.',
|
||||
displayName: 'Nano Banana',
|
||||
enabled: true,
|
||||
id: 'gemini-2.5-flash-image-preview',
|
||||
|
|
@ -1039,7 +1041,7 @@ export const nanoBananaProParameters: ModelParamsSchema = {
|
|||
const lobehubImageModels: AIImageModelCard[] = [
|
||||
{
|
||||
description:
|
||||
"Gemini 3 Pro Image (Nano Banana Pro) is Google’s image generation model and also supports multimodal chat.",
|
||||
'Gemini 3 Pro Image (Nano Banana Pro) is Google’s image generation model and also supports multimodal chat.',
|
||||
displayName: 'Nano Banana Pro',
|
||||
enabled: true,
|
||||
id: 'gemini-3-pro-image-preview:image',
|
||||
|
|
@ -1057,7 +1059,7 @@ const lobehubImageModels: AIImageModelCard[] = [
|
|||
},
|
||||
{
|
||||
description:
|
||||
"Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.",
|
||||
'Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.',
|
||||
displayName: 'Nano Banana',
|
||||
enabled: true,
|
||||
id: 'gemini-2.5-flash-image-preview:image',
|
||||
|
|
|
|||
|
|
@ -7,9 +7,53 @@ const minimaxChatModels: AIChatModelCard[] = [
|
|||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 204_800,
|
||||
description: 'Built for efficient coding and agent workflows.',
|
||||
displayName: 'MiniMax M2',
|
||||
description: '强大多语言编程实力,全面升级编程体验',
|
||||
displayName: 'MiniMax M2.1',
|
||||
enabled: true,
|
||||
id: 'MiniMax-M2.1',
|
||||
maxOutput: 131_072,
|
||||
pricing: {
|
||||
currency: 'CNY',
|
||||
units: [
|
||||
{ name: 'textInput_cacheRead', rate: 0.21, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textInput_cacheWrite', rate: 2.625, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textInput', rate: 2.1, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textOutput', rate: 8.4, strategy: 'fixed', unit: 'millionTokens' },
|
||||
],
|
||||
},
|
||||
releasedAt: '2025-12-23',
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 204_800,
|
||||
description: '强大多语言编程实力,全面升级编程体验。更快,更高效。',
|
||||
displayName: 'MiniMax M2.1 Lightning',
|
||||
id: 'MiniMax-M2.1-Lightning',
|
||||
maxOutput: 131_072,
|
||||
pricing: {
|
||||
currency: 'CNY',
|
||||
units: [
|
||||
{ name: 'textInput_cacheRead', rate: 0.21, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textInput_cacheWrite', rate: 2.625, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textInput', rate: 2.1, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textOutput', rate: 16.8, strategy: 'fixed', unit: 'millionTokens' },
|
||||
],
|
||||
},
|
||||
releasedAt: '2025-12-23',
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 204_800,
|
||||
description: '专为高效编码与Agent工作流而生',
|
||||
displayName: 'MiniMax M2',
|
||||
id: 'MiniMax-M2',
|
||||
maxOutput: 131_072,
|
||||
pricing: {
|
||||
|
|
|
|||
|
|
@ -42,11 +42,34 @@ const ollamaCloudModels: AIChatModelCard[] = [
|
|||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 200_000,
|
||||
description: 'MiniMax M2 is an efficient LLM built for coding and agent workflows.',
|
||||
displayName: 'MiniMax M2',
|
||||
contextWindowTokens: 1_048_576,
|
||||
description: 'Gemini 3 Flash 是为速度而打造的最智能的模型,将前沿智能与卓越的搜索接地相结合。',
|
||||
displayName: 'Gemini 3 Flash Preview',
|
||||
id: 'gemini-3-flash-preview',
|
||||
releasedAt: '2025-12-17',
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 204_800,
|
||||
displayName: 'MiniMax M2.1',
|
||||
enabled: true,
|
||||
id: 'minimax-m2.1',
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 204_800,
|
||||
description: 'MiniMax M2 是专为编码和代理工作流程构建的高效大型语言模型。',
|
||||
displayName: 'MiniMax M2',
|
||||
id: 'minimax-m2',
|
||||
type: 'chat',
|
||||
},
|
||||
|
|
@ -57,9 +80,21 @@ const ollamaCloudModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 200_000,
|
||||
description:
|
||||
'Zhipu’s latest flagship GLM-4.6 (355B) surpasses prior versions in advanced coding, long-text handling, reasoning, and agent capabilities, aligning with Claude Sonnet 4 in programming performance and ranking among the top coding models in China.',
|
||||
displayName: 'GLM-4.6',
|
||||
'GLM-4.7 是智谱最新旗舰模型,面向 Agentic Coding 场景强化了编码能力、长程任务规划与工具协同,并在多个公开基准的当期榜单中取得开源模型中的领先表现。通用能力提升,回复更简洁自然,写作更具沉浸感。在执行复杂智能体任务,在工具调用时指令遵循更强,Artifacts 与 Agentic Coding 的前端美感和长程任务完成效率进一步提升。',
|
||||
displayName: 'GLM-4.7',
|
||||
enabled: true,
|
||||
id: 'glm-4.7',
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 200_000,
|
||||
description:
|
||||
'智谱旗舰模型 GLM-4.6 (355B) 在高级编码、长文本处理、推理与智能体能力上全面超越前代,尤其在编程能力上对齐 Claude Sonnet 4,成为国内顶尖的 Coding 模型。',
|
||||
displayName: 'GLM-4.6',
|
||||
id: 'glm-4.6',
|
||||
type: 'chat',
|
||||
},
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ export const openaiChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
releasedAt: '2025-12-11',
|
||||
settings: {
|
||||
extendParams: ['gpt5_1ReasoningEffort', 'textVerbosity'],
|
||||
extendParams: ['gpt5_2ReasoningEffort', 'textVerbosity'],
|
||||
searchImpl: 'params',
|
||||
},
|
||||
type: 'chat',
|
||||
|
|
@ -68,6 +68,7 @@ export const openaiChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
releasedAt: '2025-12-11',
|
||||
settings: {
|
||||
extendParams: ['gpt5_2ProReasoningEffort'],
|
||||
searchImpl: 'params',
|
||||
},
|
||||
type: 'chat',
|
||||
|
|
@ -203,7 +204,8 @@ export const openaiChatModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 400_000,
|
||||
description: 'GPT-5 pro uses more compute to think deeper and consistently deliver better answers.',
|
||||
description:
|
||||
'GPT-5 pro uses more compute to think deeper and consistently deliver better answers.',
|
||||
displayName: 'GPT-5 pro',
|
||||
id: 'gpt-5-pro',
|
||||
maxOutput: 272_000,
|
||||
|
|
@ -563,7 +565,8 @@ export const openaiChatModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_047_576,
|
||||
description: 'GPT-4.1 is our flagship model for complex tasks and cross-domain problem solving.',
|
||||
description:
|
||||
'GPT-4.1 is our flagship model for complex tasks and cross-domain problem solving.',
|
||||
displayName: 'GPT-4.1',
|
||||
id: 'gpt-4.1',
|
||||
maxOutput: 32_768,
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ const qwenChatModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
config: {
|
||||
deploymentName: 'qwen3-vl-plus',
|
||||
deploymentName: 'qwen3-vl-plus-2025-12-19',
|
||||
},
|
||||
contextWindowTokens: 262_144,
|
||||
description:
|
||||
|
|
|
|||
|
|
@ -2,6 +2,66 @@ import { AIChatModelCard, AIImageModelCard } from '../types/aiModel';
|
|||
|
||||
// https://siliconflow.cn/zh-cn/models
|
||||
const siliconcloudChatModels: AIChatModelCard[] = [
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 200_000,
|
||||
description:
|
||||
'GLM-4.7 是智谱新一代旗舰模型,总参数量 355B,激活参数量 32B,在通用对话、推理和智能体能力方面全面升级。GLM-4.7 增强了 Interleaved Thinking(交错思考),并引入了 Preserved Thinking(保留思考)和 Turn-level Thinking(轮级思考)。',
|
||||
displayName: 'GLM-4.7 (Pro)',
|
||||
id: 'Pro/zai-org/glm-4.7',
|
||||
pricing: {
|
||||
currency: 'CNY',
|
||||
units: [
|
||||
{
|
||||
lookup: {
|
||||
prices: {
|
||||
'[0, 0.032]_[0, 0.0002]': 0.4,
|
||||
'[0, 0.032]_[0.0002, infinity]': 0.6,
|
||||
'[0.032, infinity]_[0, infinity]': 0.8,
|
||||
},
|
||||
pricingParams: ['textInput', 'textOutput'],
|
||||
},
|
||||
name: 'textInput_cacheRead',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
{
|
||||
lookup: {
|
||||
prices: {
|
||||
'[0, 0.032]_[0, 0.0002]': 2,
|
||||
'[0, 0.032]_[0.0002, infinity]': 3,
|
||||
'[0.032, infinity]_[0, infinity]': 4,
|
||||
},
|
||||
pricingParams: ['textInput', 'textOutput'],
|
||||
},
|
||||
name: 'textInput',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
{
|
||||
lookup: {
|
||||
prices: {
|
||||
'[0, 0.032]_[0, 0.0002]': 8,
|
||||
'[0, 0.032]_[0.0002, infinity]': 14,
|
||||
'[0.032, infinity]_[0, infinity]': 16,
|
||||
},
|
||||
pricingParams: ['textInput', 'textOutput'],
|
||||
},
|
||||
name: 'textOutput',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
],
|
||||
},
|
||||
releasedAt: '2025-12-22',
|
||||
settings: {
|
||||
extendParams: ['enableReasoning', 'reasoningBudgetToken'],
|
||||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
|
|
|
|||
|
|
@ -3,35 +3,6 @@ import { imagenGenParameters, nanoBananaParameters } from './google';
|
|||
|
||||
// ref: https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models
|
||||
const vertexaiChatModels: AIChatModelCard[] = [
|
||||
{
|
||||
abilities: {
|
||||
imageOutput: true,
|
||||
reasoning: true,
|
||||
search: true,
|
||||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 131_072 + 32_768,
|
||||
description:
|
||||
"Gemini 3 Pro Image (Nano Banana Pro) is Google's image generation model and also supports multimodal chat.",
|
||||
displayName: 'Nano Banana Pro',
|
||||
enabled: true,
|
||||
id: 'gemini-3-pro-image-preview',
|
||||
maxOutput: 32_768,
|
||||
pricing: {
|
||||
approximatePricePerImage: 0.134,
|
||||
units: [
|
||||
{ name: 'imageOutput', rate: 120, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textInput', rate: 2, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textOutput', rate: 12, strategy: 'fixed', unit: 'millionTokens' },
|
||||
],
|
||||
},
|
||||
releasedAt: '2025-11-20',
|
||||
settings: {
|
||||
searchImpl: 'params',
|
||||
searchProvider: 'google',
|
||||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
|
|
@ -42,7 +13,7 @@ const vertexaiChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description:
|
||||
"Gemini 3 Pro is Google’s most powerful agent and vibe-coding model, delivering richer visuals and deeper interaction on top of state-of-the-art reasoning.",
|
||||
'Gemini 3 Pro is Google’s most powerful agent and vibe-coding model, delivering richer visuals and deeper interaction on top of state-of-the-art reasoning.',
|
||||
displayName: 'Gemini 3 Pro Preview',
|
||||
enabled: true,
|
||||
id: 'gemini-3-pro-preview',
|
||||
|
|
@ -85,6 +56,41 @@ const vertexaiChatModels: AIChatModelCard[] = [
|
|||
],
|
||||
},
|
||||
releasedAt: '2025-11-18',
|
||||
settings: {
|
||||
extendParams: ['thinkingLevel2', 'urlContext'],
|
||||
searchImpl: 'params',
|
||||
searchProvider: 'google',
|
||||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
search: true,
|
||||
video: true,
|
||||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description: 'Gemini 3 Flash 是为速度而打造的最智能的模型,将前沿智能与卓越的搜索接地相结合。',
|
||||
displayName: 'Gemini 3 Flash Preview',
|
||||
enabled: true,
|
||||
id: 'gemini-3-flash-preview',
|
||||
maxOutput: 65_536,
|
||||
pricing: {
|
||||
units: [
|
||||
{ name: 'textInput_cacheRead', rate: 0.05, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textInput', rate: 0.5, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textOutput', rate: 3, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{
|
||||
lookup: { prices: { '1h': 1 }, pricingParams: ['ttl'] },
|
||||
name: 'textInput_cacheWrite',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
],
|
||||
},
|
||||
releasedAt: '2025-12-17',
|
||||
settings: {
|
||||
extendParams: ['thinkingLevel', 'urlContext'],
|
||||
searchImpl: 'params',
|
||||
|
|
@ -92,6 +98,35 @@ const vertexaiChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
imageOutput: true,
|
||||
reasoning: true,
|
||||
search: true,
|
||||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 131_072 + 32_768,
|
||||
description:
|
||||
'Gemini 3 Pro Image(Nano Banana Pro)是 Google 的图像生成模型,同时支持多模态对话。',
|
||||
displayName: 'Nano Banana Pro',
|
||||
enabled: true,
|
||||
id: 'gemini-3-pro-image-preview',
|
||||
maxOutput: 32_768,
|
||||
pricing: {
|
||||
approximatePricePerImage: 0.134,
|
||||
units: [
|
||||
{ name: 'imageOutput', rate: 120, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textInput', rate: 2, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textOutput', rate: 12, strategy: 'fixed', unit: 'millionTokens' },
|
||||
],
|
||||
},
|
||||
releasedAt: '2025-11-20',
|
||||
settings: {
|
||||
searchImpl: 'params',
|
||||
searchProvider: 'google',
|
||||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
|
|
@ -101,9 +136,8 @@ const vertexaiChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description:
|
||||
"Gemini 2.5 Pro is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.",
|
||||
'Gemini 2.5 Pro is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.',
|
||||
displayName: 'Gemini 2.5 Pro',
|
||||
enabled: true,
|
||||
id: 'gemini-2.5-pro',
|
||||
maxOutput: 65_536,
|
||||
pricing: {
|
||||
|
|
@ -129,7 +163,7 @@ const vertexaiChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description:
|
||||
"Gemini 2.5 Pro Preview is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.",
|
||||
'Gemini 2.5 Pro Preview is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.',
|
||||
displayName: 'Gemini 2.5 Pro Preview 05-06',
|
||||
id: 'gemini-2.5-pro-preview-05-06',
|
||||
maxOutput: 65_536,
|
||||
|
|
@ -150,7 +184,7 @@ const vertexaiChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description:
|
||||
"Gemini 2.5 Pro Preview is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.",
|
||||
'Gemini 2.5 Pro Preview is Google’s most advanced reasoning model, able to reason over code, math, and STEM problems and analyze large datasets, codebases, and documents with long context.',
|
||||
displayName: 'Gemini 2.5 Pro Preview 03-25',
|
||||
id: 'gemini-2.5-pro-preview-03-25',
|
||||
maxOutput: 65_536,
|
||||
|
|
@ -171,9 +205,8 @@ const vertexaiChatModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description: "Gemini 2.5 Flash is Google’s best-value model with full capabilities.",
|
||||
description: 'Gemini 2.5 Flash is Google’s best-value model with full capabilities.',
|
||||
displayName: 'Gemini 2.5 Flash',
|
||||
enabled: true,
|
||||
id: 'gemini-2.5-flash',
|
||||
maxOutput: 65_536,
|
||||
pricing: {
|
||||
|
|
@ -198,7 +231,7 @@ const vertexaiChatModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_048_576 + 65_536,
|
||||
description: "Gemini 2.5 Flash Preview is Google’s best-value model with full capabilities.",
|
||||
description: 'Gemini 2.5 Flash Preview is Google’s best-value model with full capabilities.',
|
||||
displayName: 'Gemini 2.5 Flash Preview 04-17',
|
||||
id: 'gemini-2.5-flash-preview-04-17',
|
||||
maxOutput: 65_536,
|
||||
|
|
@ -218,7 +251,7 @@ const vertexaiChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 32_768 + 8192,
|
||||
description:
|
||||
"Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.",
|
||||
'Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.',
|
||||
displayName: 'Nano Banana',
|
||||
enabled: true,
|
||||
id: 'gemini-2.5-flash-image',
|
||||
|
|
@ -243,7 +276,7 @@ const vertexaiChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_000_000 + 64_000,
|
||||
description:
|
||||
"Gemini 2.5 Flash-Lite is Google’s smallest, best-value model, designed for large-scale use.",
|
||||
'Gemini 2.5 Flash-Lite is Google’s smallest, best-value model, designed for large-scale use.',
|
||||
displayName: 'Gemini 2.5 Flash-Lite',
|
||||
id: 'gemini-2.5-flash-lite',
|
||||
maxOutput: 64_000,
|
||||
|
|
@ -270,7 +303,7 @@ const vertexaiChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_000_000 + 64_000,
|
||||
description:
|
||||
"Gemini 2.5 Flash-Lite Preview is Google’s smallest, best-value model, designed for large-scale use.",
|
||||
'Gemini 2.5 Flash-Lite Preview is Google’s smallest, best-value model, designed for large-scale use.',
|
||||
displayName: 'Gemini 2.5 Flash-Lite Preview 06-17',
|
||||
id: 'gemini-2.5-flash-lite-preview-06-17',
|
||||
maxOutput: 64_000,
|
||||
|
|
@ -315,8 +348,7 @@ const vertexaiChatModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_048_576 + 8192,
|
||||
description:
|
||||
'A Gemini 2.0 Flash variant optimized for cost efficiency and low latency.',
|
||||
description: 'A Gemini 2.0 Flash variant optimized for cost efficiency and low latency.',
|
||||
displayName: 'Gemini 2.0 Flash-Lite',
|
||||
id: 'gemini-2.0-flash-lite',
|
||||
maxOutput: 8192,
|
||||
|
|
@ -336,7 +368,8 @@ const vertexaiChatModels: AIChatModelCard[] = [
|
|||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_000_000 + 8192,
|
||||
description: 'Gemini 1.5 Flash 002 is an efficient multimodal model built for broad deployment.',
|
||||
description:
|
||||
'Gemini 1.5 Flash 002 is an efficient multimodal model built for broad deployment.',
|
||||
displayName: 'Gemini 1.5 Flash 002',
|
||||
id: 'gemini-1.5-flash-002',
|
||||
maxOutput: 8192,
|
||||
|
|
@ -379,7 +412,7 @@ const vertexaiImageModels: AIImageModelCard[] = [
|
|||
enabled: true,
|
||||
type: 'image',
|
||||
description:
|
||||
"Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.",
|
||||
'Nano Banana is Google’s newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.',
|
||||
releasedAt: '2025-08-26',
|
||||
parameters: nanoBananaParameters,
|
||||
pricing: {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,66 @@ import { AIChatModelCard, AIImageModelCard } from '../types/aiModel';
|
|||
// https://www.volcengine.com/docs/82379/1330310
|
||||
|
||||
const doubaoChatModels: AIChatModelCard[] = [
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
vision: true,
|
||||
},
|
||||
config: {
|
||||
deploymentName: 'doubao-seed-1-8-251215',
|
||||
},
|
||||
contextWindowTokens: 256_000,
|
||||
description:
|
||||
'Doubao-Seed-1.8 有着更强的多模态理解能力和 Agent 能力,支持文本/图片/视频输入与上下文缓存,可在复杂任务中提供更出色的表现。',
|
||||
displayName: 'Doubao Seed 1.8',
|
||||
id: 'doubao-seed-1.8',
|
||||
maxOutput: 64_000,
|
||||
pricing: {
|
||||
currency: 'CNY',
|
||||
units: [
|
||||
{
|
||||
lookup: {
|
||||
prices: {
|
||||
'[0, 0.032]': 0.8,
|
||||
'[0.032, 0.128]': 1.2,
|
||||
'[0.128, 0.256]': 2.4,
|
||||
},
|
||||
pricingParams: ['textInputRange'],
|
||||
},
|
||||
name: 'textInput',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
{
|
||||
lookup: {
|
||||
prices: {
|
||||
'[0, 0.032]_[0, 0.0002]': 2,
|
||||
'[0, 0.032]_[0.0002, infinity]': 8,
|
||||
'[0.032, 0.128]_[0, infinity]': 16,
|
||||
'[0.128, 0.256]_[0, infinity]': 24,
|
||||
},
|
||||
pricingParams: ['textInputRange', 'textOutputRange'],
|
||||
},
|
||||
name: 'textOutput',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
{ name: 'textInput_cacheRead', rate: 0.16, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{
|
||||
lookup: { prices: { '1h': 0.017 }, pricingParams: ['ttl'] },
|
||||
name: 'textInput_cacheWrite',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
],
|
||||
},
|
||||
releasedAt: '2025-12-18',
|
||||
settings: {
|
||||
extendParams: ['gpt5ReasoningEffort'],
|
||||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
|
|
@ -56,6 +116,57 @@ const doubaoChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
},
|
||||
config: {
|
||||
deploymentName: 'deepseek-v3-2-251201',
|
||||
},
|
||||
contextWindowTokens: 131_072,
|
||||
description:
|
||||
'DeepSeek-V3.2 是深度求索推出的首个将思考融入工具使用的混合推理模型,用高效架构省算力、大规模强化学习提能力、大规模合成任务数据强泛化,三者结合性能媲美 GPT-5-High,输出长度大幅降低,显著减少了计算开销与用户等待时间。',
|
||||
displayName: 'DeepSeek V3.2',
|
||||
enabled: true,
|
||||
id: 'deepseek-v3.2',
|
||||
maxOutput: 32_768,
|
||||
pricing: {
|
||||
currency: 'CNY',
|
||||
units: [
|
||||
{
|
||||
lookup: {
|
||||
prices: {
|
||||
'[0, 0.032]': 2,
|
||||
'[0.032, 0.128]': 4,
|
||||
},
|
||||
pricingParams: ['textInputRange'],
|
||||
},
|
||||
name: 'textInput',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
{
|
||||
lookup: {
|
||||
prices: {
|
||||
'[0, 0.032]': 3,
|
||||
'[0.032, 0.128]': 6,
|
||||
},
|
||||
pricingParams: ['textInputRange'],
|
||||
},
|
||||
name: 'textOutput',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
{ name: 'textInput_cacheRead', rate: 0.4, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textInput_cacheWrite', rate: 0.017, strategy: 'fixed', unit: 'millionTokens' },
|
||||
],
|
||||
},
|
||||
settings: {
|
||||
extendParams: ['enableReasoning'],
|
||||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
|
|
@ -171,7 +282,6 @@ const doubaoChatModels: AIChatModelCard[] = [
|
|||
description:
|
||||
'Doubao-Seed-1.6-thinking significantly strengthens reasoning, further improving core abilities in coding, math, and logical reasoning over Doubao-1.5-thinking-pro, while adding vision understanding. It supports a 256k context window and up to 16k output tokens.',
|
||||
displayName: 'Doubao Seed 1.6 Thinking',
|
||||
enabled: true,
|
||||
id: 'doubao-seed-1.6-thinking',
|
||||
maxOutput: 32_000,
|
||||
pricing: {
|
||||
|
|
@ -221,7 +331,6 @@ const doubaoChatModels: AIChatModelCard[] = [
|
|||
description:
|
||||
'Doubao-Seed-1.6 is a new multimodal deep-reasoning model with auto, thinking, and non-thinking modes. In non-thinking mode, it significantly outperforms Doubao-1.5-pro/250115. It supports a 256k context window and up to 16k output tokens.',
|
||||
displayName: 'Doubao Seed 1.6',
|
||||
enabled: true,
|
||||
id: 'doubao-seed-1.6',
|
||||
maxOutput: 32_000,
|
||||
pricing: {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ const zenmuxChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
releasedAt: '2025-12-11',
|
||||
settings: {
|
||||
extendParams: ['gpt5_1ReasoningEffort', 'textVerbosity'],
|
||||
extendParams: ['gpt5_2ReasoningEffort', 'textVerbosity'],
|
||||
searchImpl: 'params',
|
||||
},
|
||||
type: 'chat',
|
||||
|
|
@ -147,6 +147,11 @@ const zenmuxChatModels: AIChatModelCard[] = [
|
|||
],
|
||||
},
|
||||
releasedAt: '2025-11-20',
|
||||
settings: {
|
||||
extendParams: ['thinkingLevel2', 'urlContext'],
|
||||
searchImpl: 'params',
|
||||
searchProvider: 'google',
|
||||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
|
|
@ -170,7 +175,7 @@ const zenmuxChatModels: AIChatModelCard[] = [
|
|||
],
|
||||
},
|
||||
settings: {
|
||||
extendParams: ['thinkingLevel', 'urlContext'],
|
||||
extendParams: ['thinkingLevel2', 'urlContext'],
|
||||
searchImpl: 'params',
|
||||
searchProvider: 'google',
|
||||
},
|
||||
|
|
@ -348,7 +353,8 @@ const zenmuxChatModels: AIChatModelCard[] = [
|
|||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 256_000,
|
||||
description: "Grok 4 is xAI's flagship reasoning model with strong reasoning and multimodal capability.",
|
||||
description:
|
||||
"Grok 4 is xAI's flagship reasoning model with strong reasoning and multimodal capability.",
|
||||
displayName: 'Grok 4',
|
||||
id: 'x-ai/grok-4',
|
||||
maxOutput: 256_000,
|
||||
|
|
@ -707,7 +713,7 @@ const zenmuxChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_050_000,
|
||||
description:
|
||||
"Gemini 2.5 Pro is Google’s flagship reasoning model with long context support for complex tasks.",
|
||||
'Gemini 2.5 Pro is Google’s flagship reasoning model with long context support for complex tasks.',
|
||||
displayName: 'Gemini 2.5 Pro',
|
||||
id: 'google/gemini-2.5-pro',
|
||||
maxOutput: 65_530,
|
||||
|
|
@ -759,7 +765,7 @@ const zenmuxChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 1_050_000,
|
||||
description:
|
||||
"Gemini 2.5 Flash (Lite/Pro/Flash) is Google’s family spanning low latency to high-performance reasoning.",
|
||||
'Gemini 2.5 Flash (Lite/Pro/Flash) is Google’s family spanning low latency to high-performance reasoning.',
|
||||
displayName: 'Gemini 2.5 Flash',
|
||||
id: 'google/gemini-2.5-flash',
|
||||
maxOutput: 65_530,
|
||||
|
|
@ -931,8 +937,7 @@ const zenmuxChatModels: AIChatModelCard[] = [
|
|||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 1_050_000,
|
||||
description:
|
||||
'GPT-4.1 Mini offers lower latency and better value for mid-context workloads.',
|
||||
description: 'GPT-4.1 Mini offers lower latency and better value for mid-context workloads.',
|
||||
displayName: 'GPT-4.1 Mini',
|
||||
id: 'openai/gpt-4.1-mini',
|
||||
maxOutput: 32_770,
|
||||
|
|
@ -1076,7 +1081,8 @@ const zenmuxChatModels: AIChatModelCard[] = [
|
|||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 200_000,
|
||||
description: "GLM 4.6 is Z.AI's flagship model with extended context length and coding capability.",
|
||||
description:
|
||||
"GLM 4.6 is Z.AI's flagship model with extended context length and coding capability.",
|
||||
displayName: 'GLM 4.6',
|
||||
id: 'z-ai/glm-4.6',
|
||||
maxOutput: 128_000,
|
||||
|
|
@ -1125,7 +1131,7 @@ const zenmuxChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 200_000,
|
||||
description:
|
||||
"Opus 4.1 is Anthropic’s high-end model optimized for programming, complex reasoning, and long-running tasks.",
|
||||
'Opus 4.1 is Anthropic’s high-end model optimized for programming, complex reasoning, and long-running tasks.',
|
||||
displayName: 'Claude Opus 4.1',
|
||||
id: 'anthropic/claude-opus-4.1',
|
||||
maxOutput: 32_000,
|
||||
|
|
@ -1150,7 +1156,7 @@ const zenmuxChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 200_000,
|
||||
description:
|
||||
"Opus 4 is Anthropic’s flagship model designed for complex tasks and enterprise applications.",
|
||||
'Opus 4 is Anthropic’s flagship model designed for complex tasks and enterprise applications.',
|
||||
displayName: 'Claude Opus 4',
|
||||
id: 'anthropic/claude-opus-4',
|
||||
maxOutput: 32_000,
|
||||
|
|
@ -1218,7 +1224,7 @@ const zenmuxChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 200_000,
|
||||
description:
|
||||
"Claude Sonnet 4.5 is Anthropic’s latest hybrid reasoning model optimized for complex reasoning and coding.",
|
||||
'Claude Sonnet 4.5 is Anthropic’s latest hybrid reasoning model optimized for complex reasoning and coding.',
|
||||
displayName: 'Claude Sonnet 4.5',
|
||||
id: 'anthropic/claude-sonnet-4.5',
|
||||
maxOutput: 64_000,
|
||||
|
|
@ -1259,7 +1265,7 @@ const zenmuxChatModels: AIChatModelCard[] = [
|
|||
reasoning: true,
|
||||
},
|
||||
contextWindowTokens: 200_000,
|
||||
description: "OpenAI o4-mini is a small, efficient reasoning model for low-latency scenarios.",
|
||||
description: 'OpenAI o4-mini is a small, efficient reasoning model for low-latency scenarios.',
|
||||
displayName: 'o4 Mini',
|
||||
id: 'openai/o4-mini',
|
||||
maxOutput: 100_000,
|
||||
|
|
@ -1542,7 +1548,7 @@ const zenmuxChatModels: AIChatModelCard[] = [
|
|||
abilities: { reasoning: true },
|
||||
contextWindowTokens: 128_000,
|
||||
description:
|
||||
"GLM 4.5 is Z.AI’s flagship model with hybrid reasoning optimized for engineering and long-context tasks.",
|
||||
'GLM 4.5 is Z.AI’s flagship model with hybrid reasoning optimized for engineering and long-context tasks.',
|
||||
displayName: 'GLM 4.5',
|
||||
id: 'z-ai/glm-4.5',
|
||||
maxOutput: 96_000,
|
||||
|
|
|
|||
|
|
@ -12,9 +12,71 @@ const zhipuChatModels: AIChatModelCard[] = [
|
|||
},
|
||||
contextWindowTokens: 200_000,
|
||||
description:
|
||||
'Zhipu’s latest flagship GLM-4.6 (355B) surpasses the prior generation in advanced coding, long-context handling, reasoning, and agent capabilities. Its coding performance is on par with Claude Sonnet 4, making it a top-tier coding model in China.',
|
||||
displayName: 'GLM-4.6',
|
||||
'GLM-4.7 是智谱最新旗舰模型,面向 Agentic Coding 场景强化了编码能力、长程任务规划与工具协同,并在多个公开基准的当期榜单中取得开源模型中的领先表现。通用能力提升,回复更简洁自然,写作更具沉浸感。在执行复杂智能体任务,在工具调用时指令遵循更强,Artifacts 与 Agentic Coding 的前端美感和长程任务完成效率进一步提升。',
|
||||
displayName: 'GLM-4.7',
|
||||
enabled: true,
|
||||
id: 'glm-4.7',
|
||||
maxOutput: 131_072,
|
||||
pricing: {
|
||||
currency: 'CNY',
|
||||
units: [
|
||||
{
|
||||
lookup: {
|
||||
prices: {
|
||||
'[0, 0.032]_[0, 0.0002]': 0.4,
|
||||
'[0, 0.032]_[0.0002, infinity]': 0.6,
|
||||
'[0.032, 0.2]': 0.8,
|
||||
},
|
||||
pricingParams: ['textInput', 'textOutput'],
|
||||
},
|
||||
name: 'textInput_cacheRead',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
{
|
||||
lookup: {
|
||||
prices: {
|
||||
'[0, 0.032]_[0, 0.0002]': 2,
|
||||
'[0, 0.032]_[0.0002, infinity]': 3,
|
||||
'[0.032, 0.2]': 4,
|
||||
},
|
||||
pricingParams: ['textInput', 'textOutput'],
|
||||
},
|
||||
name: 'textInput',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
{
|
||||
lookup: {
|
||||
prices: {
|
||||
'[0, 0.032]_[0, 0.0002]': 8,
|
||||
'[0, 0.032]_[0.0002, infinity]': 14,
|
||||
'[0.032, 0.2]': 16,
|
||||
},
|
||||
pricingParams: ['textInput', 'textOutput'],
|
||||
},
|
||||
name: 'textOutput',
|
||||
strategy: 'lookup',
|
||||
unit: 'millionTokens',
|
||||
},
|
||||
],
|
||||
},
|
||||
settings: {
|
||||
extendParams: ['enableReasoning'],
|
||||
searchImpl: 'params',
|
||||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
search: true,
|
||||
},
|
||||
contextWindowTokens: 200_000,
|
||||
description:
|
||||
'智谱最新旗舰模型 GLM-4.6 (355B) 在高级编码、长文本处理、推理与智能体能力上全面超越前代,尤其在编程能力上对齐 Claude Sonnet 4,成为国内顶尖的 Coding 模型。',
|
||||
displayName: 'GLM-4.6',
|
||||
id: 'glm-4.6',
|
||||
maxOutput: 131_072,
|
||||
pricing: {
|
||||
|
|
|
|||
|
|
@ -239,10 +239,13 @@ export type ExtendParamsType =
|
|||
| 'reasoningEffort'
|
||||
| 'gpt5ReasoningEffort'
|
||||
| 'gpt5_1ReasoningEffort'
|
||||
| 'gpt5_2ReasoningEffort'
|
||||
| 'gpt5_2ProReasoningEffort'
|
||||
| 'textVerbosity'
|
||||
| 'thinking'
|
||||
| 'thinkingBudget'
|
||||
| 'thinkingLevel'
|
||||
| 'thinkingLevel2'
|
||||
| 'imageAspectRatio'
|
||||
| 'imageResolution'
|
||||
| 'urlContext';
|
||||
|
|
|
|||
|
|
@ -7,12 +7,13 @@ export const LobeVolcengineAI = createOpenAICompatibleRuntime({
|
|||
baseURL: 'https://ark.cn-beijing.volces.com/api/v3',
|
||||
chatCompletion: {
|
||||
handlePayload: (payload) => {
|
||||
const { model, thinking, ...rest } = payload;
|
||||
const { model, thinking, reasoning_effort, ...rest } = payload;
|
||||
|
||||
return {
|
||||
...rest,
|
||||
model,
|
||||
...(thinking?.type && { thinking: { type: thinking.type } }),
|
||||
...(reasoning_effort && { reasoning_effort }),
|
||||
} as any;
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -382,33 +382,6 @@ describe('LobeZhipuAI - custom features', () => {
|
|||
expect.anything(),
|
||||
);
|
||||
});
|
||||
|
||||
it('should not include thinking for non-4.5 models', async () => {
|
||||
await instance.chat({
|
||||
messages: [{ content: 'Hello', role: 'user' }],
|
||||
model: 'glm-4',
|
||||
temperature: 0.5,
|
||||
thinking: { type: 'enabled', budget_tokens: 1000 },
|
||||
});
|
||||
|
||||
const callArgs = (instance['client'].chat.completions.create as any).mock.calls[0][0];
|
||||
expect(callArgs.thinking).toBeUndefined();
|
||||
});
|
||||
|
||||
it('should handle undefined thinking gracefully for 4.5 models', async () => {
|
||||
await instance.chat({
|
||||
messages: [{ content: 'Hello', role: 'user' }],
|
||||
model: 'glm-4.5',
|
||||
temperature: 0.5,
|
||||
});
|
||||
|
||||
expect(instance['client'].chat.completions.create).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
thinking: { type: undefined },
|
||||
}),
|
||||
expect.anything(),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Stream parameter', () => {
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ export const params = {
|
|||
...resolvedParams,
|
||||
model,
|
||||
stream: true,
|
||||
thinking: model.includes('-4.5') ? { type: thinking?.type } : undefined,
|
||||
thinking: thinking ? { type: thinking.type } : undefined,
|
||||
tools: zhipuTools,
|
||||
} as any;
|
||||
},
|
||||
|
|
|
|||
|
|
@ -38,9 +38,9 @@ export const MODEL_LIST_CONFIGS = {
|
|||
excludeKeywords: ['tts'],
|
||||
functionCallKeywords: ['gemini', '!-image-'],
|
||||
imageOutputKeywords: ['-image-'],
|
||||
reasoningKeywords: ['thinking', '-2.5-', '!-image-'],
|
||||
reasoningKeywords: ['thinking', '-2.5-', '!-image-', '-3-'],
|
||||
searchKeywords: ['-search', '!-image-'],
|
||||
videoKeywords: ['-2.5-', '!-image-'],
|
||||
videoKeywords: ['-2.5-', '!-image-', '-3-'],
|
||||
visionKeywords: ['gemini', 'learnlm'],
|
||||
},
|
||||
inclusionai: {
|
||||
|
|
@ -126,8 +126,8 @@ export const MODEL_LIST_CONFIGS = {
|
|||
},
|
||||
zhipu: {
|
||||
functionCallKeywords: ['glm-4', 'glm-z1'],
|
||||
reasoningKeywords: ['glm-zero', 'glm-z1', 'glm-4.5'],
|
||||
visionKeywords: ['glm-4v', 'glm-4.1v', 'glm-4.5v'],
|
||||
reasoningKeywords: ['glm-zero', 'glm-z1', 'glm-4.'],
|
||||
visionKeywords: ['re:glm-4(\\.\\d)?v'],
|
||||
},
|
||||
} as const;
|
||||
|
||||
|
|
@ -183,36 +183,41 @@ export const EMBEDDING_MODEL_KEYWORDS = ['embedding', 'embed', 'bge', 'm3e'] as
|
|||
* @param keywords 关键词列表,支持以下前缀:
|
||||
* - ^ 开头:只在模型ID开头匹配
|
||||
* - ! 开头:排除匹配,优先级最高
|
||||
* - re: 开头:正则表达式匹配(支持 !re: 正则排除)
|
||||
* - 无前缀:包含匹配(默认行为)
|
||||
* @returns 是否匹配(排除逻辑优先)
|
||||
*/
|
||||
const isKeywordListMatch = (modelId: string, keywords: readonly string[]): boolean => {
|
||||
// 先检查排除规则(感叹号开头)
|
||||
const matchKeyword = (keyword: string): boolean => {
|
||||
const rawKeyword = keyword.startsWith('!') ? keyword.slice(1) : keyword;
|
||||
|
||||
if (rawKeyword.startsWith('re:')) {
|
||||
try {
|
||||
return new RegExp(rawKeyword.slice(3)).test(modelId);
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (rawKeyword.startsWith('^')) {
|
||||
return modelId.startsWith(rawKeyword.slice(1));
|
||||
}
|
||||
|
||||
return modelId.includes(rawKeyword);
|
||||
};
|
||||
|
||||
// 先检查排除规则(感叹号开头,包括 !re:)
|
||||
const excludeKeywords = keywords.filter((keyword) => keyword.startsWith('!'));
|
||||
const includeKeywords = keywords.filter((keyword) => !keyword.startsWith('!'));
|
||||
|
||||
// 如果匹配任何排除规则,直接返回 false
|
||||
for (const excludeKeyword of excludeKeywords) {
|
||||
const keywordWithoutPrefix = excludeKeyword.slice(1);
|
||||
const isMatch = keywordWithoutPrefix.startsWith('^')
|
||||
? modelId.startsWith(keywordWithoutPrefix.slice(1))
|
||||
: modelId.includes(keywordWithoutPrefix);
|
||||
|
||||
if (isMatch) {
|
||||
if (matchKeyword(excludeKeyword)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 检查包含规则
|
||||
return includeKeywords.some((keyword) => {
|
||||
if (keyword.startsWith('^')) {
|
||||
// ^ 开头则只在开头匹配
|
||||
const keywordWithoutPrefix = keyword.slice(1);
|
||||
return modelId.startsWith(keywordWithoutPrefix);
|
||||
}
|
||||
// 默认行为:包含匹配
|
||||
return modelId.includes(keyword);
|
||||
});
|
||||
return includeKeywords.some((keyword) => matchKeyword(keyword));
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -31,12 +31,14 @@ export interface LobeAgentChatConfig {
|
|||
reasoningEffort?: 'low' | 'medium' | 'high';
|
||||
gpt5ReasoningEffort?: 'minimal' | 'low' | 'medium' | 'high';
|
||||
gpt5_1ReasoningEffort?: 'none' | 'low' | 'medium' | 'high';
|
||||
gpt5_2ReasoningEffort?: 'none' | 'low' | 'medium' | 'high' | 'xhigh';
|
||||
gpt5_2ProReasoningEffort?: 'medium' | 'high' | 'xhigh';
|
||||
/**
|
||||
* Output text verbosity control
|
||||
*/
|
||||
textVerbosity?: 'low' | 'medium' | 'high';
|
||||
thinking?: 'disabled' | 'auto' | 'enabled';
|
||||
thinkingLevel?: 'low' | 'high';
|
||||
thinkingLevel?: 'minimal' | 'low' | 'medium' | 'high';
|
||||
thinkingBudget?: number;
|
||||
/**
|
||||
* Image aspect ratio for image generation models
|
||||
|
|
@ -84,6 +86,8 @@ export const AgentChatConfigSchema = z.object({
|
|||
enableStreaming: z.boolean().optional(),
|
||||
gpt5ReasoningEffort: z.enum(['minimal', 'low', 'medium', 'high']).optional(),
|
||||
gpt5_1ReasoningEffort: z.enum(['none', 'low', 'medium', 'high']).optional(),
|
||||
gpt5_2ProReasoningEffort: z.enum(['medium', 'high', 'xhigh']).optional(),
|
||||
gpt5_2ReasoningEffort: z.enum(['none', 'low', 'medium', 'high', 'xhigh']).optional(),
|
||||
historyCount: z.number().optional(),
|
||||
imageAspectRatio: z.string().optional(),
|
||||
imageResolution: z.enum(['1K', '2K', '4K']).optional(),
|
||||
|
|
@ -99,7 +103,7 @@ export const AgentChatConfigSchema = z.object({
|
|||
textVerbosity: z.enum(['low', 'medium', 'high']).optional(),
|
||||
thinking: z.enum(['disabled', 'auto', 'enabled']).optional(),
|
||||
thinkingBudget: z.number().optional(),
|
||||
thinkingLevel: z.enum(['low', 'high']).optional(),
|
||||
thinkingLevel: z.enum(['minimal', 'low', 'medium', 'high']).optional(),
|
||||
urlContext: z.boolean().optional(),
|
||||
useModelBuiltinSearch: z.boolean().optional(),
|
||||
});
|
||||
|
|
|
|||
|
|
@ -15,12 +15,15 @@ import { useUpdateAgentConfig } from '../../hooks/useUpdateAgentConfig';
|
|||
import ContextCachingSwitch from './ContextCachingSwitch';
|
||||
import GPT5ReasoningEffortSlider from './GPT5ReasoningEffortSlider';
|
||||
import GPT51ReasoningEffortSlider from './GPT51ReasoningEffortSlider';
|
||||
import GPT52ProReasoningEffortSlider from './GPT52ProReasoningEffortSlider';
|
||||
import GPT52ReasoningEffortSlider from './GPT52ReasoningEffortSlider';
|
||||
import ImageAspectRatioSelect from './ImageAspectRatioSelect';
|
||||
import ImageResolutionSlider from './ImageResolutionSlider';
|
||||
import ReasoningEffortSlider from './ReasoningEffortSlider';
|
||||
import ReasoningTokenSlider from './ReasoningTokenSlider';
|
||||
import TextVerbositySlider from './TextVerbositySlider';
|
||||
import ThinkingBudgetSlider from './ThinkingBudgetSlider';
|
||||
import ThinkingLevel2Slider from './ThinkingLevel2Slider';
|
||||
import ThinkingLevelSlider from './ThinkingLevelSlider';
|
||||
import ThinkingSlider from './ThinkingSlider';
|
||||
|
||||
|
|
@ -140,6 +143,28 @@ const ControlsForm = memo(() => {
|
|||
paddingBottom: 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
children: <GPT52ReasoningEffortSlider />,
|
||||
desc: 'reasoning_effort',
|
||||
label: t('extendParams.reasoningEffort.title'),
|
||||
layout: 'horizontal',
|
||||
minWidth: undefined,
|
||||
name: 'gpt5_2ReasoningEffort',
|
||||
style: {
|
||||
paddingBottom: 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
children: <GPT52ProReasoningEffortSlider />,
|
||||
desc: 'reasoning_effort',
|
||||
label: t('extendParams.reasoningEffort.title'),
|
||||
layout: 'horizontal',
|
||||
minWidth: undefined,
|
||||
name: 'gpt5_2ProReasoningEffort',
|
||||
style: {
|
||||
paddingBottom: 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
children: <TextVerbositySlider />,
|
||||
desc: 'text_verbosity',
|
||||
|
|
@ -173,7 +198,7 @@ const ControlsForm = memo(() => {
|
|||
layout: isNarrow ? 'vertical' : 'horizontal',
|
||||
minWidth: undefined,
|
||||
name: 'urlContext',
|
||||
style: isNarrow ? undefined : { width: 445 },
|
||||
style: isNarrow ? undefined : { minWidth: 360 },
|
||||
tag: 'urlContext',
|
||||
},
|
||||
{
|
||||
|
|
@ -193,8 +218,22 @@ const ControlsForm = memo(() => {
|
|||
minWidth: undefined,
|
||||
name: 'thinkingLevel',
|
||||
style: {
|
||||
minWidth: 400,
|
||||
paddingBottom: 0,
|
||||
},
|
||||
tag: 'thinkingLevel',
|
||||
},
|
||||
{
|
||||
children: <ThinkingLevel2Slider />,
|
||||
label: t('extendParams.thinkingLevel.title'),
|
||||
layout: 'horizontal',
|
||||
minWidth: undefined,
|
||||
name: 'thinkingLevel2',
|
||||
style: {
|
||||
minWidth: 400,
|
||||
paddingBottom: 0,
|
||||
},
|
||||
tag: 'thinkingLevel',
|
||||
},
|
||||
{
|
||||
children: <ImageAspectRatioSelect />,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,59 @@
|
|||
import { Flexbox } from '@lobehub/ui';
|
||||
import { Slider } from 'antd';
|
||||
import { memo, useCallback } from 'react';
|
||||
|
||||
import { useAgentStore } from '@/store/agent';
|
||||
import { chatConfigByIdSelectors } from '@/store/agent/selectors';
|
||||
|
||||
import { useAgentId } from '../../hooks/useAgentId';
|
||||
import { useUpdateAgentConfig } from '../../hooks/useUpdateAgentConfig';
|
||||
|
||||
const GPT52ProReasoningEffortSlider = memo(() => {
|
||||
const agentId = useAgentId();
|
||||
const { updateAgentChatConfig } = useUpdateAgentConfig();
|
||||
const config = useAgentStore((s) => chatConfigByIdSelectors.getChatConfigById(agentId)(s));
|
||||
|
||||
const gpt5_2ProReasoningEffort = config.gpt5_2ProReasoningEffort || 'medium';
|
||||
|
||||
const marks = {
|
||||
0: 'medium',
|
||||
1: 'high',
|
||||
2: 'xhigh',
|
||||
};
|
||||
|
||||
const effortValues = ['medium', 'high', 'xhigh'];
|
||||
const indexValue = effortValues.indexOf(gpt5_2ProReasoningEffort);
|
||||
const currentValue = indexValue === -1 ? 0 : indexValue;
|
||||
|
||||
const updateGPT52ProReasoningEffort = useCallback(
|
||||
(value: number) => {
|
||||
const effort = effortValues[value] as 'medium' | 'high' | 'xhigh';
|
||||
updateAgentChatConfig({ gpt5_2ProReasoningEffort: effort });
|
||||
},
|
||||
[updateAgentChatConfig],
|
||||
);
|
||||
|
||||
return (
|
||||
<Flexbox
|
||||
align={'center'}
|
||||
gap={12}
|
||||
horizontal
|
||||
paddingInline={'0 20px'}
|
||||
style={{ minWidth: 160, width: '100%' }}
|
||||
>
|
||||
<Flexbox flex={1}>
|
||||
<Slider
|
||||
marks={marks}
|
||||
max={2}
|
||||
min={0}
|
||||
onChange={updateGPT52ProReasoningEffort}
|
||||
step={1}
|
||||
tooltip={{ open: false }}
|
||||
value={currentValue}
|
||||
/>
|
||||
</Flexbox>
|
||||
</Flexbox>
|
||||
);
|
||||
});
|
||||
|
||||
export default GPT52ProReasoningEffortSlider;
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
import { Flexbox } from '@lobehub/ui';
|
||||
import { Slider } from 'antd';
|
||||
import { memo, useCallback } from 'react';
|
||||
|
||||
import { useAgentStore } from '@/store/agent';
|
||||
import { chatConfigByIdSelectors } from '@/store/agent/selectors';
|
||||
|
||||
import { useAgentId } from '../../hooks/useAgentId';
|
||||
import { useUpdateAgentConfig } from '../../hooks/useUpdateAgentConfig';
|
||||
|
||||
const GPT52ReasoningEffortSlider = memo(() => {
|
||||
const agentId = useAgentId();
|
||||
const { updateAgentChatConfig } = useUpdateAgentConfig();
|
||||
const config = useAgentStore((s) => chatConfigByIdSelectors.getChatConfigById(agentId)(s));
|
||||
|
||||
const gpt5_2ReasoningEffort = config.gpt5_2ReasoningEffort || 'none';
|
||||
|
||||
const marks = {
|
||||
0: 'none',
|
||||
1: 'low',
|
||||
2: 'medium',
|
||||
3: 'high',
|
||||
4: 'xhigh',
|
||||
};
|
||||
|
||||
const effortValues = ['none', 'low', 'medium', 'high', 'xhigh'];
|
||||
const indexValue = effortValues.indexOf(gpt5_2ReasoningEffort);
|
||||
const currentValue = indexValue === -1 ? 0 : indexValue;
|
||||
|
||||
const updateGPT52ReasoningEffort = useCallback(
|
||||
(value: number) => {
|
||||
const effort = effortValues[value] as 'none' | 'low' | 'medium' | 'high' | 'xhigh';
|
||||
updateAgentChatConfig({ gpt5_2ReasoningEffort: effort });
|
||||
},
|
||||
[updateAgentChatConfig],
|
||||
);
|
||||
|
||||
return (
|
||||
<Flexbox
|
||||
align={'center'}
|
||||
gap={12}
|
||||
horizontal
|
||||
paddingInline={'0 20px'}
|
||||
style={{ minWidth: 230, width: '100%' }}
|
||||
>
|
||||
<Flexbox flex={1}>
|
||||
<Slider
|
||||
marks={marks}
|
||||
max={4}
|
||||
min={0}
|
||||
onChange={updateGPT52ReasoningEffort}
|
||||
step={1}
|
||||
tooltip={{ open: false }}
|
||||
value={currentValue}
|
||||
/>
|
||||
</Flexbox>
|
||||
</Flexbox>
|
||||
);
|
||||
});
|
||||
|
||||
export default GPT52ReasoningEffortSlider;
|
||||
|
|
@ -39,7 +39,7 @@ const TextVerbositySlider = memo(() => {
|
|||
gap={12}
|
||||
horizontal
|
||||
paddingInline={'0 20px'}
|
||||
style={{ minWidth: 200, width: '100%' }}
|
||||
style={{ minWidth: 160, width: '100%' }}
|
||||
>
|
||||
<Flexbox flex={1}>
|
||||
<Slider
|
||||
|
|
|
|||
|
|
@ -0,0 +1,58 @@
|
|||
import { Flexbox } from '@lobehub/ui';
|
||||
import { Slider } from 'antd';
|
||||
import { memo, useCallback } from 'react';
|
||||
|
||||
import { useAgentStore } from '@/store/agent';
|
||||
import { chatConfigByIdSelectors } from '@/store/agent/selectors';
|
||||
|
||||
import { useAgentId } from '../../hooks/useAgentId';
|
||||
import { useUpdateAgentConfig } from '../../hooks/useUpdateAgentConfig';
|
||||
|
||||
const ThinkingLevel2Slider = memo(() => {
|
||||
const agentId = useAgentId();
|
||||
const { updateAgentChatConfig } = useUpdateAgentConfig();
|
||||
const config = useAgentStore((s) => chatConfigByIdSelectors.getChatConfigById(agentId)(s));
|
||||
|
||||
const thinkingLevel = config.thinkingLevel || 'high'; // Default to 'high' if not set
|
||||
|
||||
const marks = {
|
||||
0: 'low',
|
||||
1: 'high',
|
||||
};
|
||||
|
||||
const levelValues = ['low', 'high'];
|
||||
const indexValue = levelValues.indexOf(thinkingLevel as any);
|
||||
const currentValue = indexValue === -1 ? 1 : indexValue;
|
||||
|
||||
const updateThinkingLevel = useCallback(
|
||||
(value: number) => {
|
||||
const level = levelValues[value] as 'low' | 'high';
|
||||
updateAgentChatConfig({ thinkingLevel: level });
|
||||
},
|
||||
[updateAgentChatConfig],
|
||||
);
|
||||
|
||||
return (
|
||||
<Flexbox
|
||||
align={'center'}
|
||||
gap={12}
|
||||
horizontal
|
||||
paddingInline={'0 20px'}
|
||||
style={{ minWidth: 110, width: '100%' }}
|
||||
>
|
||||
<Flexbox flex={1}>
|
||||
<Slider
|
||||
marks={marks}
|
||||
max={1}
|
||||
min={0}
|
||||
onChange={updateThinkingLevel}
|
||||
step={1}
|
||||
tooltip={{ open: false }}
|
||||
value={currentValue}
|
||||
/>
|
||||
</Flexbox>
|
||||
</Flexbox>
|
||||
);
|
||||
});
|
||||
|
||||
export default ThinkingLevel2Slider;
|
||||
|
|
@ -16,17 +16,19 @@ const ThinkingLevelSlider = memo(() => {
|
|||
const thinkingLevel = config.thinkingLevel || 'high'; // Default to 'high' if not set
|
||||
|
||||
const marks = {
|
||||
0: 'low',
|
||||
1: 'high',
|
||||
0: 'minimal',
|
||||
1: 'low',
|
||||
2: 'medium',
|
||||
3: 'high',
|
||||
};
|
||||
|
||||
const levelValues = ['low', 'high'];
|
||||
const indexValue = levelValues.indexOf(thinkingLevel);
|
||||
const currentValue = indexValue === -1 ? 1 : indexValue;
|
||||
const levelValues = ['minimal', 'low', 'medium', 'high'];
|
||||
const indexValue = levelValues.indexOf(thinkingLevel as any);
|
||||
const currentValue = indexValue === -1 ? 3 : indexValue;
|
||||
|
||||
const updateThinkingLevel = useCallback(
|
||||
(value: number) => {
|
||||
const level = levelValues[value] as 'low' | 'high';
|
||||
const level = levelValues[value] as 'minimal' | 'low' | 'medium' | 'high';
|
||||
updateAgentChatConfig({ thinkingLevel: level });
|
||||
},
|
||||
[updateAgentChatConfig],
|
||||
|
|
@ -38,12 +40,12 @@ const ThinkingLevelSlider = memo(() => {
|
|||
gap={12}
|
||||
horizontal
|
||||
paddingInline={'0 20px'}
|
||||
style={{ minWidth: 130, width: '100%' }} // 三项时宽度需改回 200
|
||||
style={{ minWidth: 200, width: '100%' }}
|
||||
>
|
||||
<Flexbox flex={1}>
|
||||
<Slider
|
||||
marks={marks}
|
||||
max={1}
|
||||
max={3}
|
||||
min={0}
|
||||
onChange={updateThinkingLevel}
|
||||
step={1}
|
||||
|
|
|
|||
|
|
@ -95,6 +95,17 @@ export const resolveModelExtendParams = (ctx: ModelParamsContext): ModelExtendPa
|
|||
extendParams.reasoning_effort = chatConfig.gpt5_1ReasoningEffort;
|
||||
}
|
||||
|
||||
if (modelExtendParams.includes('gpt5_2ReasoningEffort') && chatConfig.gpt5_2ReasoningEffort) {
|
||||
extendParams.reasoning_effort = chatConfig.gpt5_2ReasoningEffort;
|
||||
}
|
||||
|
||||
if (
|
||||
modelExtendParams.includes('gpt5_2ProReasoningEffort') &&
|
||||
chatConfig.gpt5_2ProReasoningEffort
|
||||
) {
|
||||
extendParams.reasoning_effort = chatConfig.gpt5_2ProReasoningEffort;
|
||||
}
|
||||
|
||||
// Text verbosity
|
||||
if (modelExtendParams.includes('textVerbosity') && chatConfig.textVerbosity) {
|
||||
extendParams.verbosity = chatConfig.textVerbosity;
|
||||
|
|
|
|||
Loading…
Reference in a new issue