""" AI 诊断 Prompt 模板配置。 支持三种预设模板:quick(快速)、standard(标准)、detailed(详细)。 """ from typing import Dict # Prompt 模板字典 PROMPT_TEMPLATES: Dict[str, str] = { "quick": """请快速分析这张 D-InSAR 形变图,重点关注: 1. 是否存在明显的地表形变区域(红色/蓝色异常区) 2. 形变的大致范围和强度 3. 初步的风险等级评估(低/中/高) 请用简洁的语言(3-5 句话)给出结论。""", "standard": """请分析这张 D-InSAR 地表形变监测结果图,提供以下信息: **1. 形变特征识别** - 识别图中的形变区域(红色表示远离卫星/沉降,蓝色表示靠近卫星/抬升,绿色表示稳定) - 描述形变的空间分布模式、强度范围和影响面积 - 判断形变是否连续、是否存在突变边界、是否有明显的形变中心 - 分析形变的几何形态特征(线性、圆形、不规则等) **2. 风险评估** - 根据形变幅度(参考色标 ±0.1m)、分布特征和梯度,评估风险等级 * 低风险:形变量 < 2cm,分布零散 * 中风险:形变量 2-5cm,局部集中 * 高风险:形变量 5-10cm,连续分布 * 极高风险:形变量 > 10cm,急剧变化 - 识别可能的地质灾害类型(滑坡、地面沉降、地裂缝、采空区塌陷等) - 结合已知隐患点位置,分析形变与灾害点的空间关联性 - 指出需要重点关注的区域和紧急程度 **3. 数据质量评价** - 评估图像的整体相干性(观察是否有大面积失相干区域) - 判断噪声水平(是否有明显的随机噪声或条纹状伪影) - 识别可能的误差来源(大气延迟、轨道误差、解缠错误等) - 给出结果可靠性评分(质量评分: X/10) - 说明评分依据和结果的适用性 **4. 监测建议** - 针对识别的高风险区域,建议后续监测频率 - 推荐需要补充的地面调查或其他监测手段 - 提出预警阈值建议 **输出格式要求:** - 使用 Markdown 格式,包含清晰的章节标题(使用 ### 三级标题) - 在风险评估部分明确标注:**风险等级: [低/中/高/极高]** - 在质量评价部分明确标注:**质量评分: X/10** - 如果有高置信度的判断,标注:**置信度: XX%** - 使用列表和加粗强调关键信息 - 保持专业、客观、准确的语言风格""", "detailed": """请对这张 D-InSAR 地表形变监测结果进行全面深入的专业分析: **一、形变场特征分析** 1. **形变区域识别** - 详细描述所有可识别的形变区域(位置、范围、形态) - 区分主要形变区和次要形变区 - 分析形变的空间连续性和边界特征 2. **形变量级评估** - 估算最大形变量(视线向位移) - 分析形变梯度和变化率 - 识别形变集中区和过渡区 3. **形变模式判读** - 判断形变类型(沉降、抬升、水平位移等) - 分析形变的对称性和方向性 - 识别可能的形变驱动机制 **二、地质灾害风险评估** 1. **灾害类型识别** - 根据形变特征推断可能的地质灾害类型 - 分析灾害的发育阶段和活动性 - 评估灾害的潜在影响范围 2. **风险等级评定** - 综合形变幅度、速率、分布给出风险等级(低/中/高/极高) - 指出高风险区域和需要紧急关注的位置 - 提供风险分级的依据和置信度 3. **监测建议** - 建议后续监测的重点区域 - 推荐监测频率和技术手段 - 提出需要补充的地面调查内容 **三、数据质量与可靠性评价** 1. **相干性分析** - 评估整体相干性水平 - 识别失相干区域及其原因 - 判断结果的空间覆盖完整性 2. **噪声与误差** - 识别大气延迟、轨道误差等系统性误差 - 评估随机噪声水平 - 判断是否存在解缠错误 3. **可靠性评分** - 给出数据质量综合评分(1-10 分) - 说明评分依据 - 指出结果的适用范围和局限性 **四、综合结论与建议** - 总结关键发现 - 给出明确的风险判断 - 提供决策支持建议 请以专业、严谨的语言输出完整的 Markdown 格式报告。""" } def get_prompt_template(template_name: str) -> str: """ 获取 Prompt 模板。 Args: template_name: 模板名称(quick/standard/detailed) Returns: Prompt 文本 Raises: ValueError: 模板名称不存在 """ if template_name not in PROMPT_TEMPLATES: raise ValueError( f"Unknown prompt template: {template_name}. " f"Available templates: {', '.join(PROMPT_TEMPLATES.keys())}" ) return PROMPT_TEMPLATES[template_name] def list_prompt_templates() -> Dict[str, Dict[str, str]]: """ 列出所有可用的 Prompt 模板及其描述。 Returns: 模板字典,格式:{name: {description, preview}} """ return { "quick": { "description": "快速分析(3-5 句话,适合批量筛查)", "preview": PROMPT_TEMPLATES["quick"][:100] + "..." }, "standard": { "description": "标准分析(包含形变识别、风险评估、质量评价)", "preview": PROMPT_TEMPLATES["standard"][:100] + "..." }, "detailed": { "description": "详细分析(全面深入的专业报告,适合重点区域)", "preview": PROMPT_TEMPLATES["detailed"][:100] + "..." } }