{
setEditingModel((prev) =>
prev ? { ...prev, name: e.target.value } : null
)
if (formErrors.name) {
setFormErrors((prev) => ({ ...prev, name: undefined }))
}
}}
placeholder="例如: qwen3-30b"
className={formErrors.name ? 'border-destructive focus-visible:ring-destructive' : ''}
/>
{formErrors.name ? (
{formErrors.name}
) : (
用于在任务配置中引用此模型
)}
{formErrors.api_provider && (
{formErrors.api_provider}
)}
{matchedTemplate?.modelFetcher && (
{matchedTemplate.display_name}
)}
{/* 模型标识符 Combobox */}
{matchedTemplate?.modelFetcher ? (
{modelFetchError ? (
{modelFetchError}
{!modelFetchError.includes('API Key') && (
)}
) : (
'未找到匹配的模型'
)}
{availableModels.map((model) => (
{
setEditingModel((prev) =>
prev ? { ...prev, model_identifier: model.id } : null
)
setModelComboboxOpen(false)
}}
>
{model.id}
{model.name !== model.id && (
{model.name}
)}
))}
{
setModelComboboxOpen(false)
// 聚焦到手动输入框(如果需要的话可以实现)
}}
>
手动输入模型标识符...
) : (
{
setEditingModel((prev) =>
prev ? { ...prev, model_identifier: e.target.value } : null
)
if (formErrors.model_identifier) {
setFormErrors((prev) => ({ ...prev, model_identifier: undefined }))
}
}}
placeholder="Qwen/Qwen3-30B-A3B-Instruct-2507"
className={formErrors.model_identifier ? 'border-destructive focus-visible:ring-destructive' : ''}
/>
)}
{/* 表单验证错误提示 */}
{formErrors.model_identifier && (
{formErrors.model_identifier}
)}
{/* 模型获取错误提示 */}
{modelFetchError && matchedTemplate?.modelFetcher && !formErrors.model_identifier && (
{modelFetchError}
)}
{/* 手动输入区域 - 当使用 Combobox 时也显示一个可编辑的输入框 */}
{matchedTemplate?.modelFetcher && (
{
setEditingModel((prev) =>
prev ? { ...prev, model_identifier: e.target.value } : null
)
if (formErrors.model_identifier) {
setFormErrors((prev) => ({ ...prev, model_identifier: undefined }))
}
}}
placeholder="或手动输入模型标识符"
className={`mt-2 ${formErrors.model_identifier ? 'border-destructive focus-visible:ring-destructive' : ''}`}
/>
)}
{!formErrors.model_identifier && (
{modelFetchError
? '请手动输入模型标识符,或前往"模型提供商配置"检查 API Key'
: matchedTemplate?.modelFetcher
? `已识别为 ${matchedTemplate.display_name},支持自动获取模型列表`
: 'API 提供商提供的模型 ID'}
)}
{/* 模型级别温度 */}
什么是温度(Temperature)?
温度控制模型输出的随机性和创造性:
- 低温度(0.1-0.3):更确定、更保守的输出,适合事实性任务
- 中温度(0.5-0.7):平衡创造性与可控性
- 高温度(0.8-1.0):更有创意、更多样化的输出
- 极高温度(1.0-2.0):极度随机,可能产生不可预测的结果
}
side="right"
maxWidth="400px"
/>
启用后将覆盖「为模型分配功能」中的任务温度配置
{
if (checked) {
setEditingModel((prev) => prev ? { ...prev, temperature: 0.5 } : null)
} else {
setEditingModel((prev) => prev ? { ...prev, temperature: null } : null)
}
}}
/>
{editingModel?.temperature != null && (
0
setEditingModel((prev) =>
prev ? { ...prev, temperature: values[0] } : null
)
}
min={0}
max={advancedTemperatureMode ? 2 : 1}
step={advancedTemperatureMode ? 0.05 : 0.1}
className="flex-1"
/>
{advancedTemperatureMode ? '2' : '1'}
{advancedTemperatureMode && (
高级模式:温度 > 1 会产生更随机、更不可预测的输出,请谨慎使用
)}
{advancedTemperatureMode
? "较低(0.1-0.5)产生确定输出,中等(0.5-1.0)平衡创造性,较高(1.0-2.0)产生极度随机输出"
: "较低的温度(0.1-0.3)产生更确定的输出,较高的温度(0.7-1.0)产生更多样化的输出"
}
)}
{/* 模型级别最大 Token */}
)}