from __future__ import annotations """ AI Prompt 集中管理 所有 AI 相关 prompt 模板放在此处,避免在 services 中硬编码。 使用 .format() 或 f-string 时需保证占位符与调用处一致。 """ from .ai_prompts_catalog import ( PROMPT_IMPACT_ANALYSIS, PROMPT_TASK_BREAKDOWN, PROMPT_STRATEGIC_ANALYSIS_HEADER, PROMPT_RAG_CONTEXT_HEADER, PROMPT_RAG_CONTEXT_ITEM, PROMPT_CODE_AUDIT, PROMPT_CONTEXT_INSIGHTS, PROMPT_FEISHU_REQUIREMENT_ANALYSIS, PROMPT_FEISHU_HUMANIZED_REPLY, PROMPT_FEISHU_PROJECT_SIGNAL_CLASSIFICATION, PROMPT_FEISHU_LEVEL_CLASSIFICATION, PROMPT_FEISHU_SIGNAL_EXTRACTION, PROMPT_FEISHU_PROJECT_PREFILL, PROMPT_FEISHU_TASK_ORCHESTRATION, PROMPT_SIGNAL_SOURCE_ONBOARDING, PROMPT_AI_WORKER_SIGNAL_SOURCE_EXECUTION, PROMPT_AI_PMO_INTENT_CLASSIFICATION, PROMPT_AI_PMO_SIGNAL_BATCH_ANALYSIS, PROMPT_DRAFT_GENERATOR, PROMPT_RAG_INTENT_CLASSIFICATION, PROMPT_RAG_ANSWER, PROMPT_DECISION_QA, PROMPT_RAG_DB_PROJECT_QA, PROMPT_GENERATE_CHARTER, PROMPT_DECOMPOSE_TASKS, PROMPT_RECOMMEND_ASSIGNEES, PROMPT_ALIGNMENT_SCORE, PROMPT_COGNITIVE_CONFLICTS, PROMPT_EVALUATE_MODEL_REQUIREMENT, PROMPT_ANALYZE_CAPABILITY_GAP, PROMPT_ANALYZE_COST_ROI, PROMPT_ANALYZE_COST_OPTIMIZATION, PROMPT_ASSESS_MODEL_UPDATE_IMPACT, PROMPT_EXPERIMENT_SYNC_DECISION, PROMPT_SKILL_SCORE_UPDATE, PROMPT_WORKLOAD_OPTIMIZATION, PROMPT_ANALYZE_FOOD_CALORIES, PROMPT_SIGNAL_PLANNER, PROMPT_FEISHU_DIRECT_QA, PROMPT_FEISHU_MIXED_QA, PROMPT_PROJECT_STATUS_QA, PROMPT_MEMBER_WORKLOAD_QA, PROMPT_AI_PMO_QA, PROMPT_EXTERNAL_TREND_QA, PROMPT_INDUSTRY_TREND_QA, ) from .ai_prompt_registry import ( PROMPT_REGISTRY, PROMPT_REGISTRY_MAP, get_prompt_registry, get_prompt_registry_entry, iter_prompt_registry_keys, ) def build_default_role_prompt_bundle() -> dict: """返回默认角色 Prompt 配置(每次调用返回新对象)。""" return { "version": 1, "active_role_key": "pm_dispatcher", "roles": [ { "role_key": "pm_dispatcher", "role_name": "产品经理(立项评审)", "role_description": "负责查重、评审、起草立项建议并给出确认前的产品方案", "enabled": True, "system_prompt": """ 你是 PMFlow 的产品经理助手。 职责定位: 1. 先判断是否已有同名或相似项目,再给出是否复用、合并或新建的建议。 2. 先输出产品评审结论,再展开项目定位、MVP、前景、需求清单、风险与负责人建议。 3. 回复风格要专业、清晰、像真实产品经理评审,允许给出取舍与备选方案。 4. 只有在用户明确确认后,才进入写入或继续执行流程。 输出要求: 1. 先用 1-2 句话复述需求并判断立项方向。 2. 再给出是否有同名/相似项目的判断。 3. 再展开项目定位、MVP、前景、需求清单、风险与待补充信息。 4. 如果信息不足,只提关键澄清问题(最多 3 个),不要臆测。 5. 如果涉及风险、依赖、排期冲突或重复建设,要明确提醒。 禁止项: - 不要输出与项目无关的泛化建议。 - 不要只给机械化模板,不要把评审写成简单入库文案。 - 不要使用命令式生硬语气。 - 不要编造不存在的数据或结论。 """.strip(), }, { "role_key": "tech_architect", "role_name": "技术架构师", "role_description": "负责技术方案约束、风险评估与实现边界", "enabled": True, "system_prompt": """ 你是 PMFlow 的技术架构师。 你需要基于需求识别实现边界、关键风险和技术依赖,给出可执行的技术建议。 输出要点: 1. 先给结论(可行/有风险/需拆分)。 2. 给出技术风险与约束(性能、安全、兼容、成本)。 3. 提供建议的实现路径与最小可行步骤。 4. 结尾给出是否建议立即进入开发。 风格:简洁、严谨、可执行,不讲空话。 """.strip(), }, { "role_key": "delivery_coach", "role_name": "交付推进官", "role_description": "负责推进节奏、协调分工与交付闭环", "enabled": True, "system_prompt": """ 你是 PMFlow 的交付推进官。 你要把需求转成可执行的交付动作,强调优先级、负责人和时间边界。 输出格式: 1. 当前状态判断(一句话)。 2. 建议动作(不超过 3 条,动词开头)。 3. 风险提示(如有)。 风格:明确、友好、推动协作,避免过度技术细节。 """.strip(), }, ], } __all__ = [ "PROMPT_IMPACT_ANALYSIS", "PROMPT_TASK_BREAKDOWN", "PROMPT_STRATEGIC_ANALYSIS_HEADER", "PROMPT_RAG_CONTEXT_HEADER", "PROMPT_RAG_CONTEXT_ITEM", "PROMPT_CODE_AUDIT", "PROMPT_CONTEXT_INSIGHTS", "PROMPT_FEISHU_REQUIREMENT_ANALYSIS", "PROMPT_FEISHU_HUMANIZED_REPLY", "PROMPT_FEISHU_PROJECT_SIGNAL_CLASSIFICATION", "PROMPT_FEISHU_LEVEL_CLASSIFICATION", "PROMPT_FEISHU_SIGNAL_EXTRACTION", "PROMPT_FEISHU_PROJECT_PREFILL", "PROMPT_FEISHU_TASK_ORCHESTRATION", "PROMPT_SIGNAL_SOURCE_ONBOARDING", "PROMPT_AI_WORKER_SIGNAL_SOURCE_EXECUTION", "PROMPT_AI_PMO_INTENT_CLASSIFICATION", "PROMPT_AI_PMO_SIGNAL_BATCH_ANALYSIS", "PROMPT_DRAFT_GENERATOR", "PROMPT_RAG_INTENT_CLASSIFICATION", "PROMPT_RAG_ANSWER", "PROMPT_DECISION_QA", "PROMPT_RAG_DB_PROJECT_QA", "PROMPT_GENERATE_CHARTER", "PROMPT_DECOMPOSE_TASKS", "PROMPT_RECOMMEND_ASSIGNEES", "PROMPT_ALIGNMENT_SCORE", "PROMPT_COGNITIVE_CONFLICTS", "PROMPT_EVALUATE_MODEL_REQUIREMENT", "PROMPT_ANALYZE_CAPABILITY_GAP", "PROMPT_ANALYZE_COST_ROI", "PROMPT_ANALYZE_COST_OPTIMIZATION", "PROMPT_ASSESS_MODEL_UPDATE_IMPACT", "PROMPT_EXPERIMENT_SYNC_DECISION", "PROMPT_SKILL_SCORE_UPDATE", "PROMPT_WORKLOAD_OPTIMIZATION", "PROMPT_ANALYZE_FOOD_CALORIES", "PROMPT_SIGNAL_PLANNER", "PROMPT_FEISHU_DIRECT_QA", "PROMPT_FEISHU_MIXED_QA", "PROMPT_PROJECT_STATUS_QA", "PROMPT_MEMBER_WORKLOAD_QA", "PROMPT_AI_PMO_QA", "PROMPT_EXTERNAL_TREND_QA", "PROMPT_INDUSTRY_TREND_QA", "PROMPT_REGISTRY", "PROMPT_REGISTRY_MAP", "get_prompt_registry", "get_prompt_registry_entry", "iter_prompt_registry_keys", "build_default_role_prompt_bundle", ]