feat:合并no_reply和wait

This commit is contained in:
SengokuCola
2026-05-07 16:48:44 +08:00
parent f41051f836
commit 2b327a31d3
14 changed files with 82 additions and 88 deletions

View File

@@ -78,6 +78,16 @@ function unwrapModelConfig(data: unknown): Record<string, unknown> {
return data as Record<string, unknown>
}
function getAdvancedTaskNames(schema: ConfigSchema | null): Set<string> {
const advancedTaskNames = new Set(
(schema?.fields ?? [])
.filter((field) => field.advanced)
.map((field) => field.name)
)
advancedTaskNames.add('learner')
return advancedTaskNames
}
// 主导出组件:包装 RestartProvider
export function ModelConfigPage() {
return (
@@ -174,10 +184,15 @@ function ModelConfigPageContent() {
})
// 检查任务配置问题
const checkTaskConfigIssues = useCallback((taskConf: ModelTaskConfig | null, modelList: ModelInfo[]) => {
const checkTaskConfigIssues = useCallback((
taskConf: ModelTaskConfig | null,
modelList: ModelInfo[],
schema: ConfigSchema | null = taskConfigSchema
) => {
if (!taskConf) return
const modelNameSet = new Set(modelList.map(m => m.name))
const advancedTaskNames = getAdvancedTaskNames(schema)
const invalidRefs: { taskName: string; invalidModels: string[] }[] = []
const emptyTaskList: string[] = []
@@ -186,7 +201,7 @@ function ModelConfigPageContent() {
// 检查是否有模型
if (!task.model_list || task.model_list.length === 0) {
if (key !== 'learner') {
if (!advancedTaskNames.has(key)) {
emptyTaskList.push(key)
}
continue
@@ -201,7 +216,7 @@ function ModelConfigPageContent() {
setInvalidModelRefs(invalidRefs)
setEmptyTasks(emptyTaskList)
}, [])
}, [taskConfigSchema])
// 加载配置
const loadConfig = useCallback(async () => {
@@ -233,13 +248,15 @@ function ModelConfigPageContent() {
resetSnapshots(modelList, taskConf)
// 解析 model_task_config 的 schema
let nextTaskConfigSchema: ConfigSchema | null = null
if (schemaResult.success && schemaResult.data) {
const schema = (schemaResult.data as unknown as Record<string, unknown>).schema as ConfigSchema
setTaskConfigSchema(schema.nested?.model_task_config ?? null)
nextTaskConfigSchema = schema.nested?.model_task_config ?? null
setTaskConfigSchema(nextTaskConfigSchema)
}
// 检查任务配置问题
checkTaskConfigIssues(taskConf, modelList)
checkTaskConfigIssues(taskConf, modelList, nextTaskConfigSchema)
// 初始化上一次的 embedding 模型列表
const embeddingModels = taskConf?.embedding?.model_list || []