155 lines
5.5 KiB
Python
155 lines
5.5 KiB
Python
"""
|
||
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] + "..."
|
||
}
|
||
}
|