"""意图节点的判断定义""" from app.schemas.decision import ChoiceDecision def build_intent_question() -> ChoiceDecision: return ChoiceDecision( # 区分意图模糊与修改细节缺失,后者交给需求理解 instructions=( "Classify the user's primary intent. " "Read `prompt` together with `clarification_history`; later answers clarify or correct earlier requests. " "Choose modify_screen only when the user explicitly requests an actual edit. " "Choose qa for clear requests for a textual answer or general conversation, including information, explanation, diagnosis, advice, and assistant identity or capabilities. " "Requests need not be phrased as questions; being unrelated to screens does not make an intent unclear. " "A vague complaint or evaluation without a requested next step is unclear, not automatically qa. " "An explicit edit request remains modify_screen even when edit details are missing. " "Do not infer intent solely from selected nodes or an empty screen." ), criteria={ # 创建新的大屏 "create_screen": "Create a new screen", # 明确要求修改、增加、删除或重新设计已有大屏 "modify_screen": "Explicitly request modifying, adding, deleting, or redesigning an existing screen, including requests lacking details such as 帮我修改这个图", # 明确的文字回答或交流请求,包括助手身份和能力,但没有要求实际操作大屏 "qa": "Clearly request a textual answer or general conversation without requesting screen creation or an actual edit; includes assistant identity and capabilities, information, reasons, diagnosis, and suggestions, e.g. 这个图为什么没有数据 or 这个图怎么优化", # 语义上没有明确表达要问什么或做什么,不等同于模型分数低 "unclear": "The user's desired response or action cannot be determined from the request and clarification history, so clarification is needed to decide what to do; includes vague feedback, references, or an unspecified request to look, e.g. 这个图不太对, 这个有点问题, 帮我看看这个", }, )