diff --git a/internal/coordinator/context.go b/internal/coordinator/context.go index 152754e7..2fdeea94 100644 --- a/internal/coordinator/context.go +++ b/internal/coordinator/context.go @@ -256,6 +256,12 @@ func (a *ContextAssembler) AssembleFromWorkspace(workDir string, user UserInfo) ctx.Project.TargetMarket = wsMeta.TargetMarket ctx.Project.CurrentWorkflow = wsMeta.TaskKey } + } else { + // 备选:从目录名推断 + baseName := filepath.Base(workDir) + if strings.HasPrefix(baseName, "intake_") { + ctx.Project.CurrentWorkflow = "intake" + } } // 2. 尝试读取 blackboard.json @@ -275,7 +281,7 @@ func (a *ContextAssembler) AssembleFromWorkspace(workDir string, user UserInfo) } // 3. 尝试提取阶段与文档 - if strings.HasPrefix(ctx.Project.CurrentWorkflow, "V0.1") { + if strings.HasPrefix(ctx.Project.CurrentWorkflow, "V0.1") || ctx.Project.CurrentWorkflow == "intake" { ctx.Project.CurrentStage = bizdev.StageV01_Triage } else if strings.HasPrefix(ctx.Project.CurrentWorkflow, "V0.5") { ctx.Project.CurrentStage = bizdev.StageV05_Feasibility diff --git a/internal/intent/recognizer.go b/internal/intent/recognizer.go index b9641484..a1e112da 100644 --- a/internal/intent/recognizer.go +++ b/internal/intent/recognizer.go @@ -305,6 +305,7 @@ func extractFactSlots(input string) map[string]string { // 目标市场 marketPrefixes := []string{ + "目标市场不仅是", "目标市场不仅有", "目标市场还包括", "目标市场确定为", "目标市场确定是", "目标市场改成", "目标市场改为", "目标市场是", "目标市场为", "市场改成", "市场改为", "市场是", "市场为", "目标市场除了国内还想考虑", } @@ -400,8 +401,8 @@ func matchAdvanceStage(input string, currentStage bizdev.MaturityStage) *Candida func matchSupplementInfo(input string) *CandidateIntent { patterns := []string{ - "补充", "更新", "客户说", "客户反馈", "修改为", "改为", "增加", - "市场是", "参数是", "用途是", "设备是", "预算是", "时间是", "资料", "附件", + "补充", "更新", "客户说", "客户反馈", "客户确定", "修改为", "改为", "增加", + "目标市场", "市场是", "参数是", "用途是", "设备是", "预算是", "时间是", "资料", "附件", } matchedAny := false