500 lines
14 KiB
Python
500 lines
14 KiB
Python
"""
|
||
AI Prompt 集中管理
|
||
|
||
所有 AI 相关 prompt 模板放在此处,避免在 services 中硬编码。
|
||
使用 .format() 或 f-string 时需保证占位符与调用处一致。
|
||
"""
|
||
|
||
# ============================================================================
|
||
# 影响分析
|
||
# ============================================================================
|
||
|
||
PROMPT_IMPACT_ANALYSIS = """
|
||
Analyze the following news/signal for an AI engineering team.
|
||
Determine its "Impact Score" (0.0 to 1.0) based on how critical it is for our RAG/LLM development.
|
||
|
||
Signal: "{signal_content}"
|
||
|
||
Rules:
|
||
- 0.9-1.0: Major SOTA model release (e.g., GPT-5, DeepSeek-V4), critical vulnerability, or massive breakthrough.
|
||
- 0.7-0.8: Important update, new useful library, or relevant research paper.
|
||
- 0.4-0.6: Interesting but not critical news.
|
||
- 0.0-0.3: Irrelevant noise.
|
||
|
||
Output ONLY the numeric score (e.g., 0.85). Do not output any text.
|
||
"""
|
||
|
||
|
||
# ============================================================================
|
||
# 任务拆解
|
||
# ============================================================================
|
||
|
||
PROMPT_TASK_BREAKDOWN = """
|
||
You are an expert AI Technical Project Manager.
|
||
Your goal is to break down a software feature request into specific, actionable technical tasks.
|
||
|
||
Feature Request: "{description}"
|
||
|
||
Required Output Format: JSON Array only.
|
||
Each item must have:
|
||
- "task_name": Concise technical task description.
|
||
- "type": One of ["frontend", "backend", "database"].
|
||
- "estimated_hours": Realistic hourly estimate (float).
|
||
|
||
Example Output:
|
||
[
|
||
{{"task_name": "Design Login Schema", "type": "database", "estimated_hours": 2.0}},
|
||
{{"task_name": "Implement Auth API", "type": "backend", "estimated_hours": 4.0}}
|
||
]
|
||
|
||
Ensure the breakdown is comprehensive (Frontend, Backend, Database) and strictly follows the JSON format.
|
||
Do not include any markdown formatting or explanation outside the JSON.
|
||
"""
|
||
|
||
|
||
# ============================================================================
|
||
# 策略分析(CTO 视角)
|
||
# ============================================================================
|
||
|
||
PROMPT_STRATEGIC_ANALYSIS_HEADER = """
|
||
You are a Chief Technology Officer (CTO) AI Assistant for our team.
|
||
|
||
=== Our Product/Team ===
|
||
{business_context}
|
||
{rag_context}
|
||
=== External Technology Signal ===
|
||
Signal: "{signal_content}"
|
||
|
||
=== Your Task ===
|
||
1. Analyze: How does this signal impact OUR product's competitiveness?
|
||
2. Decide: Is it necessary to follow up immediately? (is_strategic)
|
||
3. Proposal: If YES, generate a "Strategic Decision Proposal".
|
||
4. Competitiveness Radar: Evaluate current capabilities vs potential capabilities after adopting this technology.
|
||
- Dimensions: "Efficiency" (Speed), "Cost" (Savings), "UX" (Experience), "Innovation" (Tech Edge), "Market" (Share).
|
||
- Score 1-10.
|
||
5. Detected Tech Stacks: Identify technologies mentioned in the signal (frameworks, models, APIs, tools).
|
||
- Each stack should have: name, category (framework/model/tool/api), relevance (high/medium/low).
|
||
6. Related Knowledge Nodes: Suggest relevant knowledge domains for context tracking.
|
||
- Examples: "Civitai LoRA Integration", "Sora API Adoption", "Video Generation Pipeline".
|
||
7. Plan: Break down the strategy into specific technical tasks.
|
||
|
||
Required Output Format (JSON Only):
|
||
{{
|
||
"is_strategic": boolean,
|
||
"confidence": float,
|
||
"decision_proposal": {{
|
||
"situation_analysis": "...",
|
||
"recommendation": "...",
|
||
"expected_benefits": "..."
|
||
}},
|
||
"competitiveness_radar": {{
|
||
"current": [5, 4, 6, 5, 5],
|
||
"projected": [8, 7, 9, 9, 7]
|
||
}},
|
||
"detected_tech_stacks": [
|
||
{{"name": "Technology Name", "category": "framework|model|tool|api", "relevance": "high|medium|low"}}
|
||
],
|
||
"related_knowledge_nodes": [
|
||
{{"title": "Knowledge Node Title", "category": "tech_stack|competitor|market", "summary": "Brief summary"}}
|
||
],
|
||
"tasks": [
|
||
{{
|
||
"task_name": "Task description",
|
||
"type": "backend/frontend/database",
|
||
"estimated_hours": float
|
||
}}
|
||
]
|
||
}}
|
||
|
||
If is_strategic is false, tasks should be empty, but decision_proposal is still required to explain why.
|
||
Do not output any markdown formatting or text outside the JSON.
|
||
"""
|
||
|
||
|
||
# ============================================================================
|
||
# RAG 上下文片段
|
||
# ============================================================================
|
||
|
||
PROMPT_RAG_CONTEXT_HEADER = """
|
||
=== Related Knowledge from Our Database ===
|
||
The following relevant information was found in our knowledge base:
|
||
|
||
"""
|
||
|
||
PROMPT_RAG_CONTEXT_ITEM = "[Relevance: {similarity:.1%}]\n{content}\n\n"
|
||
|
||
|
||
# ============================================================================
|
||
# 代码审计
|
||
# ============================================================================
|
||
|
||
PROMPT_CODE_AUDIT = """
|
||
You are a Senior Tech Lead performing an automated Code Audit.
|
||
|
||
Task: "{task_name}"
|
||
Commit Message: "{commit_message}"
|
||
|
||
Code Diff:
|
||
{code_diff}
|
||
|
||
Evaluate the code change against the task requirements. Check for:
|
||
1. Security vulnerabilities
|
||
2. Performance issues
|
||
3. Code style and best practices
|
||
4. Functional correctness
|
||
|
||
Output JSON with: score (0-100), passed (boolean), issues (list of {{severity, message, suggestion}}), summary.
|
||
"""
|
||
|
||
|
||
# ============================================================================
|
||
# 知识节点洞察提取
|
||
# ============================================================================
|
||
|
||
PROMPT_CONTEXT_INSIGHTS = """
|
||
Analyze the following technical documentation/context and extract key insights.
|
||
|
||
Context: "{content}"
|
||
|
||
Output JSON:
|
||
{{
|
||
"moat": "Core competitive advantage described",
|
||
"tech_specs": "Key technical specifications"
|
||
}}
|
||
"""
|
||
|
||
|
||
# ============================================================================
|
||
# PMFlow 专属 Prompts
|
||
# ============================================================================
|
||
|
||
|
||
PROMPT_GENERATE_CHARTER = """
|
||
你是一位资深产品经理。根据以下市场/技术信号,生成一份结构化的需求宪章草案。
|
||
|
||
信号内容:
|
||
{signal_content}
|
||
|
||
请输出 JSON 格式,包含以下字段:
|
||
{{
|
||
"title": "需求宪章标题",
|
||
"summary": "一句话摘要",
|
||
"background": "背景与动机",
|
||
"objectives": ["目标1", "目标2"],
|
||
"scope": "范围说明",
|
||
"success_metrics": ["指标1", "指标2"],
|
||
"risks": ["风险1", "风险2"]
|
||
}}
|
||
|
||
只输出 JSON,不要其他文字。
|
||
"""
|
||
|
||
|
||
PROMPT_DECOMPOSE_TASKS = """
|
||
你是一位 AI 技术项目经理。根据以下需求宪章内容,拆解为可执行的任务列表。
|
||
项目 ID:{project_id}。
|
||
|
||
宪章内容:
|
||
{charter_content}
|
||
|
||
请识别每个任务所需的 AI 开发技能标签(从系统技能中匹配:Python, TypeScript, FastAPI, React, SQLAlchemy, LangChain, LLM调优, RAG构建, 向量数据库, Ollama, Docker, Git 等)。
|
||
|
||
输出 JSON 格式:
|
||
{{
|
||
"tasks": [
|
||
{{
|
||
"task_name": "任务名称",
|
||
"description": "任务描述",
|
||
"type": "frontend|backend|database|ai|devops",
|
||
"estimated_hours": 0.0,
|
||
"required_skill_names": ["技能1", "技能2"],
|
||
"priority": "high|medium|low"
|
||
}}
|
||
],
|
||
"detected_skills": ["检测到的所有技能"]
|
||
}}
|
||
|
||
只输出 JSON,不要其他文字。
|
||
"""
|
||
|
||
|
||
PROMPT_RECOMMEND_ASSIGNEES = """
|
||
你是一位项目协调员。根据以下任务内容、所需技能、以及候选人信息,推荐 Top3 最合适的负责人。
|
||
|
||
任务内容:{task_content}
|
||
|
||
所需技能标签 IDs:{required_skill_tag_ids}
|
||
|
||
候选人信息(JSON 数组,每项包含 user_id, user_name, workload, proficiency_avg, skill_match_count):
|
||
{candidates_json}
|
||
|
||
请考虑:当前负载、技能匹配度、历史表现。输出 JSON:
|
||
{{
|
||
"recommendations": [
|
||
{{
|
||
"user_id": "用户ID",
|
||
"user_name": "姓名",
|
||
"match_score": 0-100,
|
||
"reason": "推荐理由"
|
||
}}
|
||
]
|
||
}}
|
||
|
||
只输出 JSON。
|
||
"""
|
||
|
||
|
||
PROMPT_ALIGNMENT_SCORE = """
|
||
计算用户对真理节点的认知对齐度(0-100 分)。
|
||
|
||
用户 ID:{user_id}
|
||
真理节点 ID:{truth_node_id}
|
||
|
||
真理节点内容:
|
||
{truth_content}
|
||
|
||
用户相关行为/产出(如有):
|
||
{user_context}
|
||
|
||
请评估该用户对该真理节点的理解与践行程度。输出 JSON:
|
||
{{
|
||
"alignment_score": 0-100,
|
||
"explanation": "简要说明"
|
||
}}
|
||
|
||
只输出 JSON。
|
||
"""
|
||
|
||
|
||
PROMPT_COGNITIVE_CONFLICTS = """
|
||
识别真理节点下的隐性认知冲突。
|
||
|
||
真理节点 ID:{truth_node_id}
|
||
真理节点内容:
|
||
{truth_content}
|
||
|
||
相关用户的观点/产出:
|
||
{user_viewpoints}
|
||
|
||
请识别冲突类型(如 definition/定义分歧、priority/优先级冲突、scope/范围争议),输出 JSON:
|
||
{{
|
||
"conflicts": [
|
||
{{
|
||
"conflict_type": "类型",
|
||
"description": "冲突描述",
|
||
"involved_user_ids": ["用户ID"],
|
||
"involved_user_names": ["姓名"],
|
||
"severity": "low|medium|high"
|
||
}}
|
||
]
|
||
}}
|
||
|
||
只输出 JSON。
|
||
"""
|
||
|
||
|
||
PROMPT_EVALUATE_MODEL_REQUIREMENT = """
|
||
评估需求与 AI 模型的匹配度。
|
||
|
||
宪章内容:{charter_content}
|
||
模型版本 ID:{model_version_id}
|
||
模型信息(如有):{model_info}
|
||
|
||
请评估兼容性、成本、风险。输出 JSON:
|
||
{{
|
||
"compatibility_score": 0-100,
|
||
"cost_estimate_usd": 预估日成本美元,
|
||
"cost_estimate_tokens_per_day": 预估日 token 量,
|
||
"risk_hints": ["风险1", "风险2"],
|
||
"recommendations": ["建议1", "建议2"]
|
||
}}
|
||
|
||
只输出 JSON。
|
||
"""
|
||
|
||
|
||
# ============================================================================
|
||
# 模型能力矩阵专属 Prompts
|
||
# ============================================================================
|
||
|
||
PROMPT_ANALYZE_CAPABILITY_GAP = """
|
||
你是一位 AI 模型能力专家。分析以下需求与模型之间的能力差距。
|
||
|
||
需求宪章:
|
||
{charter_content}
|
||
|
||
模型信息:
|
||
{model_info}
|
||
|
||
请识别并分类能力差距,输出 JSON:
|
||
{{
|
||
"gaps": [
|
||
{{
|
||
"gap_type": "capability|cost|performance|risk",
|
||
"severity": "critical|high|medium|low",
|
||
"description": "差距描述",
|
||
"impact": "对项目的影响",
|
||
"suggestion": "改进建议"
|
||
}}
|
||
],
|
||
"overall_risk_level": "critical|high|medium|low",
|
||
"confidence": 0.0-1.0
|
||
}}
|
||
|
||
只输出 JSON。
|
||
"""
|
||
|
||
|
||
PROMPT_ANALYZE_COST_ROI = """
|
||
分析 AI 项目的成本效益。
|
||
|
||
总成本:{total_cost}
|
||
总 Token:{total_tokens}
|
||
任务数:{task_count}
|
||
项目内容:{truth_node_content}
|
||
|
||
请计算:
|
||
1. ROI 评分 (0-10)
|
||
2. 成本效率评估
|
||
3. 优化建议
|
||
|
||
输出 JSON:
|
||
{{
|
||
"roi_score": 0.0-10.0,
|
||
"cost_efficiency": "excellent|good|fair|poor",
|
||
"cost_per_task": 数值,
|
||
"optimization_suggestions": ["建议1", "建议2"],
|
||
"benchmark_comparison": "与行业标准比较"
|
||
}}
|
||
|
||
只输出 JSON。
|
||
"""
|
||
|
||
|
||
PROMPT_ANALYZE_COST_OPTIMIZATION = """
|
||
分析成本优化机会。
|
||
|
||
成本历史:{cost_history}
|
||
项目内容:{truth_node_content}
|
||
|
||
请识别优化机会,输出 JSON:
|
||
{{
|
||
"can_downgrade_model": true|false,
|
||
"downgrade_savings": 预计节省金额,
|
||
"suggested_model": "建议的替代模型",
|
||
"high_cache_potential": true|false,
|
||
"cache_savings": 预计节省金额,
|
||
"batchable_operations": true|false,
|
||
"batch_savings": 预计节省金额,
|
||
"monthly_cost": 数值,
|
||
"total_potential_savings": 数值,
|
||
"roi_after_optimization": 数值
|
||
}}
|
||
|
||
只输出 JSON。
|
||
"""
|
||
|
||
|
||
PROMPT_ASSESS_MODEL_UPDATE_IMPACT = """
|
||
评估模型升级影响。
|
||
|
||
旧模型信息:{old_model_info}
|
||
新模型信息:{new_model_info}
|
||
受影响宪章:{affected_truth_nodes}
|
||
|
||
输出 JSON:
|
||
{{
|
||
"cost_change_percentage": 数值,
|
||
"performance_change": {{
|
||
"context_window_change_percent": 数值,
|
||
"quality_change_percent": 数值
|
||
}},
|
||
"compatibility_risks": [{{"type": "风险类型", "severity": "low|medium|high"}}],
|
||
"recommendation": "immediate_upgrade|evaluate|defer"
|
||
}}
|
||
|
||
只输出 JSON。
|
||
"""
|
||
|
||
|
||
PROMPT_EXPERIMENT_SYNC_DECISION = """
|
||
评估实验结果是否可自动同步到宪章。
|
||
|
||
实验信息:{experiment_info}
|
||
宪章内容:{truth_content}
|
||
阈值:{threshold}
|
||
|
||
输出 JSON:
|
||
{{
|
||
"confidence_score": 0.0-1.0,
|
||
"auto_apply": true|false,
|
||
"reason": "原因"
|
||
}}
|
||
|
||
只输出 JSON。
|
||
"""
|
||
|
||
|
||
# ============================================================================
|
||
# Day8: 技能分更新 / 负载优化
|
||
# ============================================================================
|
||
|
||
PROMPT_SKILL_SCORE_UPDATE = """
|
||
你是 PMFlow 的技能评估引擎。
|
||
请根据任务完成结果,给每个技能标签输出质量分与效率分的增量(delta)。
|
||
|
||
输入:
|
||
- task_id: {task_id}
|
||
- priority: {priority}
|
||
- quality_score: {quality_score}
|
||
- estimated_hours: {estimated_hours}
|
||
- actual_hours: {actual_hours}
|
||
- required_skill_tag_ids: {required_skill_tag_ids}
|
||
|
||
规则:
|
||
1. quality_delta 与 efficiency_delta 范围均为 [-10, 10]。
|
||
2. quality_score 越高,quality_delta 越大。
|
||
3. estimated_hours / actual_hours > 1,表示效率高,efficiency_delta 应偏正;< 1 偏负。
|
||
4. 结果必须覆盖所有 required_skill_tag_ids。
|
||
5. 不输出解释文本,仅输出 JSON。
|
||
|
||
输出 JSON:
|
||
{{
|
||
"deltas": [
|
||
{{
|
||
"skill_tag_id": 1,
|
||
"quality_delta": 1.2,
|
||
"efficiency_delta": -0.5
|
||
}}
|
||
]
|
||
}}
|
||
"""
|
||
|
||
|
||
PROMPT_WORKLOAD_OPTIMIZATION = """
|
||
你是 PMFlow 的任务分配优化器。
|
||
请基于团队成员技能与当前负载,输出任务重分配建议。
|
||
|
||
输入:
|
||
- members_json: {members_json}
|
||
- tasks_json: {tasks_json}
|
||
|
||
约束:
|
||
1. 只对未完成任务(todo/in_progress/review/blocked)给建议。
|
||
2. 优先降低 >100% 过载成员负载。
|
||
3. 优先选择技能匹配更高且负载更低的成员。
|
||
4. 每条建议都要给 reason。
|
||
5. 不输出解释文本,仅输出 JSON。
|
||
|
||
输出 JSON:
|
||
{{
|
||
"proposals": [
|
||
{{
|
||
"task_id": 101,
|
||
"new_assignee_id": 2001,
|
||
"reason": "skill_match_high_and_lower_workload"
|
||
}}
|
||
]
|
||
}}
|
||
"""
|