Preformu / prompts /api_structure.py
Kevinshh's picture
Upload full project
aecf8ce verified
Raw
History Blame Contribute Delete
4.37 kB
"""
API Structure Analysis Prompts.
This module contains prompt templates for analyzing the molecular structure
of Active Pharmaceutical Ingredients (APIs), identifying reactive functional
groups, and assessing potential degradation pathways.
Design Philosophy:
- Prompts are structured to elicit systematic, professional analysis
- Include clear instructions for uncertainty acknowledgment
- Request both Chinese and English terminology
"""
class APIStructurePrompts:
"""
Prompt templates for API structure and reactivity analysis.
These prompts guide the LLM to:
1. Identify key functional groups from SMILES
2. Assess chemical reactivity
3. Predict potential degradation pathways
"""
@staticmethod
def get_system_prompt() -> str:
"""Get the system prompt for API structure analysis."""
return """你是一位资深的药物化学专家,擅长分析有机化合物的结构与反应活性。
你的分析应该:
1. 基于SMILES结构识别所有关键官能团
2. 评估每个官能团的化学反应性
3. 预测可能的降解途径
4. 使用中英文双语术语
重要提示:
- 明确区分"结构分析确定"和"反应性推测"
- 如有不确定性,使用"可能"、"潜在"等措辞
- 不要做出无数据支持的绝对结论"""
@staticmethod
def get_structure_analysis_prompt(smiles: str, additional_info: str = "") -> str:
"""
Generate prompt for comprehensive structure analysis.
Args:
smiles: SMILES notation of the compound
additional_info: Any additional information about the compound
"""
prompt = f"""请分析以下化合物的分子结构与反应活性基团:
SMILES: {smiles}
{f"补充信息: {additional_info}" if additional_info else ""}
请按以下格式输出分析结果:
## 1. 反应活性基团识别 (Reactive Moieties Identification)
对于识别到的每个官能团,请提供:
- 基团名称(中文/英文)
- 位置描述
- 性质类型(酸性/碱性/中性/两性)
- 潜在反应类型
## 2. 降解途径预测 (Degradation Pathway Prediction)
对于每种可能的降解途径:
- 反应类型(氧化/水解/光解等)
- 涉及的官能团
- 预期产物类型
- 风险等级评估
## 3. 稳定性敏感因素 (Stability-Sensitive Factors)
列出可能影响该化合物稳定性的关键因素:
- 对pH的敏感性
- 对氧气的敏感性
- 对光照的敏感性
- 对温度的敏感性
- 对金属离子的敏感性
请确保分析专业、克制,并明确标注任何假设或不确定性。"""
return prompt
@staticmethod
def get_reactive_groups_prompt(smiles: str) -> str:
"""
Generate prompt specifically for reactive group identification.
This is a focused prompt for quick functional group scanning.
"""
return f"""请快速识别以下SMILES结构中的反应活性官能团:
SMILES: {smiles}
请以JSON格式输出,每个官能团包含:
{{
"groups": [
{{
"name_cn": "中文名称",
"name_en": "English Name",
"property_type": "acidic/basic/neutral/amphoteric",
"potential_reactions": ["反应类型1", "反应类型2"]
}}
]
}}
只输出JSON,不要其他解释。"""
@staticmethod
def get_physicochemical_prompt(smiles: str) -> str:
"""
Generate prompt for physicochemical property estimation.
Note: These are estimations, not calculated values.
"""
return f"""基于以下SMILES结构,请估算该化合物的理化性质:
SMILES: {smiles}
请估算以下性质(如无法确定请标注"需实验测定"):
1. 酸碱性 (Acidity/Basicity)
- pKa估算范围
- 主要酸/碱性基团
2. 亲脂性 (Lipophilicity)
- LogP估算范围
- 影响因素
3. 氢键能力 (H-Bonding Capacity)
- 氢键供体数
- 氢键受体数
4. 溶解性趋势 (Solubility Trend)
- 预期溶解性特征
5. 稳定性风险概况 (Risk Profile)
- 关键风险因素总结
请以结构化格式输出,并明确标注哪些是估算值。"""