本章导读
垂直行业是AI应用落地的重要领域,不同行业有其独特的专业术语、业务流程和合规要求。本章将系统介绍医疗健康、法律、金融、客服支持以及教育培训等五大重点行业的提示词工程解决方案,帮助读者掌握如何针对特定行业需求设计高效、准确的AI应用提示词。
24.1 医疗健康:医学咨询、病历整理、文献分析
24.1.1 医学咨询提示词框架
class MedicalConsultationPrompts:
"""医学咨询提示词框架"""
@staticmethod
def generate_symptom_analysis_prompt(
symptoms: str,
patient_info: dict = None,
include_differential: bool = True
) -> str:
"""
生成症状分析提示词
Args:
symptoms: 患者描述的症状
patient_info: 患者基本信息(年龄、性别、既往史等)
include_differential: 是否包含鉴别诊断
"""
patient_context = ""
if patient_info:
patient_context = f"""
【患者信息】
- 年龄: {patient_info.get('age', '未提供')}
- 性别: {patient_info.get('gender', '未提供')}
- 既往病史: {patient_info.get('medical_history', '无')}
- 过敏史: {patient_info.get('allergies', '无')}
- 当前用药: {patient_info.get('medications', '无')}
"""
differential_section = ""
if include_differential:
differential_section = """
【鉴别诊断】
针对每种可能的诊断:
1. 诊断名称
2. 支持点(与症状的关联性)
3. 排除理由
4. 建议的进一步检查"""
template = f"""你是一位专业的全科医生,正在为患者进行症状分析和诊断。请严格按照以下格式输出分析结果。
【患者主诉】
{symptoms}
{patient_context}
【分析要求】
1. 首先进行症状分类(系统归类)
2. 分析症状特点(持续时间、频率、严重程度、诱发因素)
3. 识别关键体征和红旗症状(警示信号)
{differential_section}
4. 给出初步建议(需线下就医/可自行观察/紧急就医)
5. 提供健康指导
【重要声明】
⚠️ 本分析仅供辅助参考,不能替代专业医生的面诊和诊断。如有严重不适,请立即就医。
【输出格式】
## 症状分类
[系统分类结果]
## 症状分析
[详细分析]
## 可能诊断
[列出可能的诊断及依据]
## 红旗症状评估
[是否有需要紧急处理的警示信号]
## 建议与指导
[具体建议]
"""
return template
@staticmethod
def generate_health_education_prompt(
topic: str,
audience_level: str = "general"
) -> str:
"""
生成健康教育提示词
Args:
topic: 健康主题
audience_level: 受众理解水平 (general/medical_professional/child)
"""
level_instructions = {
"general": "使用通俗易懂的语言,避免过多专业术语,必要时用比喻解释复杂概念。",
"medical_professional": "可使用专业医学术语,侧重最新研究进展和临床应用。",
"child": "使用简单有趣的语言,配合可爱的比喻,适合儿童理解。"
}
template = f"""请为以下健康主题生成一份科普教育内容。
【主题】
{topic}
【受众群体】
{audience_level}
【内容要求】
{level_instructions.get(audience_level, level_instructions['general'])}
【内容结构】
1. 主题介绍(为什么这个主题重要)
2. 核心知识要点(3-5个关键点)
3. 日常预防/保健建议
4. 常见误区澄清
5. 何时需要就医
【注意事项】
- 语言亲切专业,易于理解
- 提供可操作的建议
- 不夸大效果,不制造恐慌
- 包含实用的自我监测方法
【输出格式】
## 标题
[吸引人的标题]
## 正文内容
[完整内容]
## 小贴士
[实用小建议]
"""
return template
class MedicalLiteratureAnalyzer:
"""医学文献分析提示词"""
@staticmethod
def generate_literature_review_prompt(
research_topic: str,
inclusion_criteria: list = None,
max_articles: int = 10
) -> str:
"""生成文献综述提示词"""
criteria_text = ""
if inclusion_criteria:
criteria_text = "【纳入标准】\n" + "\n".join(f"- {c}" for c in inclusion_criteria)
template = f"""请为以下研究主题生成文献综述框架。
【研究主题】
{research_topic}
{criteria_text}
【文献数量】
建议纳入约{max_articles}篇相关文献。
【综述结构要求】
1. 研究背景与意义
2. 核心概念定义
3. 主要研究发现(分类整理)
4. 研究方法分析
5. 争议与共识
6. 研究局限性与未来方向
7. 临床实践启示
【文献评估要点】
对每篇重要文献,请评估:
- 研究设计类型
- 样本量与代表性
- 主要结局指标
- 关键结论
- 证据等级
【输出格式】
请使用结构化格式输出,确保逻辑清晰、论证充分。
"""
return template
@staticmethod
def generate_clinical_guideline_summary_prompt(
guideline_title: str,
key_recommendations: int = 5
) -> str:
"""生成临床指南摘要提示词"""
template = f"""请分析以下临床指南并提取关键信息。
【指南名称】
{guideline_title}
【摘要要求】
请提取{key_recommendations}条核心推荐意见,并按以下格式整理:
【输出格式】
## 指南概述
- 发布时间
- 适用范围
- 适用人群
## 核心推荐
针对每条推荐:
1. 推荐内容
2. 推荐强度(如:强推荐/弱推荐)
3. 证据质量
4. 实践要点
## 关键更新
与上一版本相比的主要变化
## 临床应用流程
简化的实践决策流程
## 注意事项
实施该指南时的特别提醒
"""
return template
# 使用示例
if __name__ == "__main__":
# 症状分析
symptom_prompt = MedicalConsultationPrompts.generate_symptom_analysis_prompt(
symptoms="患者男性,45岁,近一周出现持续性头痛,以额部为主,伴有视力模糊。无发热、呕吐。近一个月工作压力大,经常熬夜。",
patient_info={
"age": "45岁",
"gender": "男",
"medical_history": "高血压病史5年,服药控制中",
"allergies": "无",
"medications": "降压药"
},
include_differential=True
)
print("=== 症状分析提示词 ===")
print(symptom_prompt)
# 健康教育
health_prompt = MedicalConsultationPrompts.generate_health_education_prompt(
topic="高血糖的饮食管理",
audience_level="general"
)
print("\n=== 健康教育提示词 ===")
print(health_prompt)
# 文献综述
lit_review = MedicalLiteratureAnalyzer.generate_literature_review_prompt(
research_topic="人工智能在医学影像诊断中的应用",
inclusion_criteria=["2019年后的研究", "包含对照组", "样本量>100"],
max_articles=15
)
print("\n=== 文献综述提示词 ===")
print(lit_review)
24.1.2 病历整理提示词框架
class MedicalRecordProcessor:
"""病历整理与结构化提示词"""
@staticmethod
def generate_soap_note_prompt(
patient_visit: str,
note_type: str = "general"
) -> str:
"""
生成SOAP病历格式提示词
Args:
patient_visit: 患者就诊记录(可以是原始对话或检查报告)
note_type: 病历类型 (general/emergency/followup/specialist)
"""
soap_instructions = {
"general": "标准门诊病历",
"emergency": "急诊病历(需突出时间节点和紧急处理)",
"followup": "复诊病历(需与前次就诊对比)",
"specialist": "专科病历(需详细的专业检查和分析)"
}
template = f"""请将以下患者就诊信息整理为标准的SOAP病历格式。
【病历类型】
{soap_instructions.get(note_type, soap_instructions['general'])}
【原始记录】
{patient_visit}
【SOAP格式说明】
- S (Subjective): 主观资料 - 患者主诉、病史、感受
- O (Objective): 客观资料 - 体格检查、实验室检查、影像学发现
- A (Assessment): 评估 - 诊断、鉴别诊断、病情评估
- P (Plan): 计划 - 治疗方案、用药计划、健康教育、随访安排
【整理要求】
1. 信息完整:无遗漏重要病史和检查结果
2. 语言规范:使用标准医学术语
3. 逻辑清晰:按SOAP结构组织信息
4. 重点突出:标注关键阳性和阴性体征
【输出格式】
## 主诉
## 病史
- 现病史
- 既往史
- 过敏史
- 个人史
- 家族史
## 体格检查
[系统完整的检查结果]
## 辅助检查
[实验室、影像等检查结果]
## SOAP评估
### S (主观资料)
### O (客观资料)
### A (评估)
### P (计划)
## 医师签名
[签名位置]
"""
return template
@staticmethod
def generate_discharge_summary_prompt(
admission_info: str,
hospital_course: str,
discharge_status: str
) -> str:
"""生成出院小结提示词"""
template = f"""请根据以下信息生成规范的出院小结。
【入院信息】
{admission_info}
【住院经过】
{hospital_course}
【出院情况】
{discharge_status}
【出院小结结构】
1. 患者基本信息
2. 入院诊断
3. 住院经过摘要
4. 出院诊断
5. 出院时情况
6. 出院医嘱(详细用药、注意事项、复查安排)
7. 随访计划
【注意事项】
- 诊断需使用ICD编码
- 医嘱需具体可执行
- 注意事项需针对患者实际情况
"""
return template
@staticmethod
def generate_medical_report_conversion_prompt(
source_format: str,
target_format: str,
raw_report: str
) -> str:
"""
医学报告格式转换提示词
Args:
source_format: 原始格式 (free_text/structured/cpoe)
target_format: 目标格式 (snomed/icd/labrpt)
raw_report: 原始报告内容
"""
template = f"""请将以下医学报告从{source_format}格式转换为{target_format}格式。
【原始格式】
{source_format}
【目标格式】
{target_format}
【原始报告内容】
{raw_report}
【转换规则】
1. 保持临床信息的完整性
2. 使用标准编码和术语
3. 保留必要的修饰词和限定词
4. 处理否定性表述
【输出要求】
- 转换后的标准化内容
- 任何无法转换或需要人工确认的内容
- 置信度评估
"""
return template
class MedicalCodeExtractor:
"""医学编码提取器"""
@staticmethod
def generate_icd_extraction_prompt(
clinical_text: str,
code_system: str = "ICD-10"
) -> str:
"""ICD编码提取提示词"""
template = f"""请从以下临床文本中提取并建议合适的{code_system}诊断编码。
【临床文本】
{clinical_text}
【编码要求】
1. 识别所有明确的诊断
2. 为每个诊断分配合适的编码
3. 确定主要诊断和次要诊断
4. 考虑编码的完整性和准确性
【输出格式】
## 主要诊断
- 编码: [ICD编码]
- 名称: [诊断名称]
- 依据: [支持该编码的临床依据]
## 次要诊断
[同上格式列出所有]
## 补充说明
[编码选择理由、需要注意的事项]
"""
return template
# 使用示例
if __name__ == "__main__":
# SOAP病历
soap_prompt = MedicalRecordProcessor.generate_soap_note_prompt(
patient_visit="""患者李女士,52岁,因"反复头晕1月余,加重3天"就诊。
患者1月前开始出现头晕,呈阵发性,与体位变化有关,无视物旋转。
曾在外院就诊,服用"银杏叶片"效果不佳。3天前头晕加重,伴恶心。
既往有颈椎病史3年,高血压病史2年。""",
note_type="general"
)
print("=== SOAP病历提示词 ===")
print(soap_prompt)
# ICD编码提取
icd_prompt = MedicalCodeExtractor.generate_icd_extraction_prompt(
clinical_text=""",
患者主诉:胸闷、心悸3天。现病史:患者3天前开始出现胸闷,
呈压榨感,伴有心悸,持续约10分钟可自行缓解。
既往有高脂血症病史。体格检查:BP 145/95mmHg,心率88次/分。
心电图示ST段压低。""",
code_system="ICD-10"
)
print("\n=== ICD编码提取提示词 ===")
print(icd_prompt)
24.1.3 医疗文献分析提示词
class MedicalResearchAnalyzer:
"""医学研究分析框架"""
@staticmethod
def generate_study_evaluation_prompt(
study_abstract: str,
evaluation_focus: list = None
) -> str:
"""
生成研究评估提示词
Args:
study_abstract: 研究摘要
evaluation_focus: 评估重点 (efficacy/safety/methodology/bias)
"""
default_focus = ["方法学质量", "结果可信度", "临床适用性"]
focus_list = evaluation_focus or default_focus
template = f"""请对以下医学研究进行批判性评估。
【研究摘要】
{study_abstract}
【评估重点】
{chr(10).join(f"- {f}" for f in focus_list)}
【评估维度】
1. 研究设计
- 设计类型是否适合研究问题
- 随机化方法
- 盲法实施
2. 样本量与统计效力
- 样本量计算
- 失访率处理
3. 结果报告
- 主要/次要结局指标
- 效应量大小
- 置信区间
4. 偏倚风险
- 选择偏倚
- 信息偏倚
- 混杂因素控制
5. 结论可靠性
- 结果与结论的一致性
- 临床意义
【输出格式】
## 研究概述
[研究基本信息]
## 方法学评估
[详细评估]
## 结果解读
[关键发现及解读]
## 偏倚风险
[各类型偏倚评估]
## 证据等级
[GRADE评分或证据等级]
## 临床启示
[对临床实践的指导意义]
## 局限性
[研究的不足之处]
"""
return template
@staticmethod
def generate_meta_analysis_prompt(
studies_summary: str,
outcome_of_interest: str
) -> str:
"""生成Meta分析综合提示词"""
template = f"""请综合分析以下研究,提取关于"{outcome_of_interest}"的数据。
【研究汇总】
{studies_summary}
【分析任务】
1. 提取效应量数据
2. 评估研究间异质性
3. 识别潜在偏倚
4. 综合估计效应值
5. 进行敏感性分析
【统计考量】
- 异质性评估(I²统计量)
- 出版偏倚分析
- 亚组分析(如适用)
【输出格式】
## 数据提取
| 研究 | 样本量 | 效应量 | 置信区间 |
|------|--------|--------|----------|
## 森林图描述
[描述性说明]
## 异质性评估
[I²值及解释]
## 敏感性分析
[主要结论的稳健性]
## 结论
[综合结论及证据等级]
"""
return template
class DrugInteractionChecker:
"""药物相互作用检查"""
@staticmethod
def generate_interaction_check_prompt(
medication_list: list,
patient_factors: dict = None
) -> str:
"""
生成药物相互作用检查提示词
Args:
medication_list: 药物列表
patient_factors: 患者因素(肝肾功能等)
"""
meds_text = "\n".join(f"- {m}" for m in medication_list)
patient_factors_text = ""
if patient_factors:
patient_factors_text = f"""
【患者特殊因素】
- 肾功能: {patient_factors.get('kidney_function', '正常')}
- 肝功能: {patient_factors.get('liver_function', '正常')}
- 年龄: {patient_factors.get('age', '未提供')}
- 体重: {patient_factors.get('weight', '未提供')}
"""
template = f"""请检查以下药物组合的相互作用和安全性。
【药物列表】
{meds_text}
{patient_factors_text}
【检查要求】
1. 药物-药物相互作用
- 药效学相互作用
- 药代动力学相互作用
- 严重程度分级(严重/中等/轻度)
2. 禁忌与警告
- 绝对禁忌
- 相对禁忌
- 特别警告
3. 剂量调整建议
- 基于肝肾功能的调整
- 给药时机建议
4. 替代方案建议
- 是否有更安全的替代药物
- 如何最小化风险
【输出格式】
## 严重相互作用
[需要立即处理的问题]
## 中度相互作用
[需要监测的问题]
## 轻度相互作用
[可接受或可优化的问题]
## 安全建议
[具体调整建议]
## 监测指标
[需要监测的临床指标]
"""
return template
# 使用示例
if __name__ == "__main__":
# 研究评估
eval_prompt = MedicalResearchAnalyzer.generate_study_evaluation_prompt(
study_abstract="""目的:评估某新药对2型糖尿病患者血糖控制的疗效。
方法:纳入300例2型糖尿病患者,随机分为试验组和对照组,
进行12周的双盲对照试验。主要结局指标为HbA1c变化。
结果:试验组HbA1c平均下降1.2%,对照组下降0.3%,差异有统计学意义(P<0.001)。
结论:新药可有效控制2型糖尿病患者的血糖水平。""",
evaluation_focus=["方法学质量", "结果可信度", "临床适用性"]
)
print("=== 研究评估提示词 ===")
print(eval_prompt)
# 药物相互作用
drug_prompt = DrugInteractionChecker.generate_interaction_check_prompt(
medication_list=[
"华法林 3mg QD",
"阿司匹林 100mg QD",
"奥美拉唑 20mg QD",
"银杏叶提取物 40mg BID"
],
patient_factors={
"kidney_function": "轻度受损",
"liver_function": "正常",
"age": "68岁",
"weight": "65kg"
}
)
print("\n=== 药物相互作用检查提示词 ===")
print(drug_prompt)
24.2 法律:合同审查、法律文书生成、案例分析
24.2.1 合同审查提示词框架
class ContractReviewPrompts:
"""合同审查提示词框架"""
@staticmethod
def generate_contract_review_prompt(
contract_text: str,
contract_type: str,
review_focus: list = None,
jurisdiction: str = "中国"
) -> str:
"""
生成合同审查提示词
Args:
contract_text: 合同全文
contract_type: 合同类型 (purchase/sale/lease/employment/collaboration/etc)
review_focus: 审查重点
jurisdiction: 适用法域
"""
focus_items = review_focus or [
"条款完整性",
"法律合规性",
"权责对等性",
"风险条款",
"争议解决机制"
]
contract_type_notes = {
"purchase": "采购合同:关注标的物规格、质量标准、交货条款、验收标准",
"sale": "销售合同:关注价格条款、交付方式、售后服务、知识产权归属",
"lease": "租赁合同:关注租赁物状态、维修责任、押金条款、续租条件",
"employment": "劳动合同:关注工作时间、薪酬福利、竞业限制、保密条款",
"collaboration": "合作协议:关注合作模式、利润分配、决策机制、退出条款"
}
template = f"""请对以下{contract_type}合同进行全面审查。
【合同类型】
{contract_type_notes.get(contract_type, contract_type)}
【适用法域】
{jurisdiction}
【合同全文】
{contract_text}
【审查重点】
{chr(10).join(f"{i+1}. {f}" for i, f in enumerate(focus_items))}
【审查要求】
1. 识别合同中的关键条款
2. 评估条款的法律效力
3. 识别对己方不利的条款
4. 发现遗漏的必要条款
5. 提出具体的修改建议
6. 评估整体合同风险等级
【风险等级标准】
- 高风险:可能导致重大损失或法律纠纷
- 中风险:存在一定隐患,需要注意
- 低风险:条款基本合理,个别细节可优化
- 提示性:建议性意见,不影响合同效力
【输出格式】
## 合同基本信息
- 合同名称
- 合同主体
- 标的/目的
- 合同金额(如有)
## 关键条款摘要
[重要条款的简要说明]
## 风险条款分析
### 高风险条款
[列出并分析]
### 中风险条款
[列出并分析]
### 低风险条款
[列出并分析]
## 缺失条款
[合同中应当包含但缺失的条款]
## 修改建议
### 必须修改
[需要修改的重要条款及建议]
### 建议修改
[可以优化的条款]
## 综合评估
### 风险等级
[总体风险评估]
### 审查结论
[是否建议签署及理由]
### 特别提示
[需要特别注意的事项]
"""
return template
@staticmethod
def generate_clause_analysis_prompt(
clause_text: str,
clause_type: str,
context: str = ""
) -> str:
"""生成合同条款分析提示词"""
template = f"""请对以下合同条款进行详细分析。
【条款类型】
{clause_type}
【条款内容】
{clause_text}
【合同背景】
{context or '无特殊背景信息'}
【分析维度】
1. 条款含义解读
- 条款的字面含义
- 可能的法律解释
2. 法律效力评估
- 是否违反强制性法律规定
- 是否存在无效或可撤销的情形
3. 实际影响分析
- 对各方权利义务的影响
- 潜在的法律后果
4. 风险评估
- 存在的风险点
- 风险发生时的后果
5. 优化建议
- 原条款的表述问题
- 建议的修改方案
【输出格式】
## 条款解读
## 法律效力
## 风险分析
## 修改建议
"""
return template
class ContractGenerator:
"""合同生成提示词"""
@staticmethod
def generate_contract_draft_prompt(
contract_type: str,
party_a: dict,
party_b: dict,
key_terms: dict,
jurisdiction: str = "中国"
) -> str:
"""
生成合同起草提示词
Args:
contract_type: 合同类型
party_a: 甲方信息
party_b: 乙方信息
key_terms: 关键条款要素
jurisdiction: 适用法域
"""
party_a_info = "\n".join(f"- {k}: {v}" for k, v in party_a.items())
party_b_info = "\n".join(f"- {k}: {v}" for k, v in party_b.items())
key_terms_info = "\n".join(f"- {k}: {v}" for k, v in key_terms.items())
template = f"""请根据以下信息起草一份{contract_type}合同。
【适用法域】
{jurisdiction}
【甲方信息】
{party_a_info}
【乙方信息】
{party_b_info}
【合同关键要素】
{key_terms_info}
【合同结构要求】
1. 合同标题与编号
2. 鉴于条款(合同背景)
3. 定义与解释
4. 双方权利义务(核心条款)
5. 合同价款与支付
6. 履行期限与方式
7. 验收标准
8. 保密条款
9. 知识产权
10. 违约责任
11. 不可抗力
12. 争议解决
13. 其他约定
14. 合同生效
【起草要求】
1. 语言准确严谨,避免歧义
2. 条款完整,逻辑严密
3. 权责对等,保护双方合法权益
4. 考虑实际操作可行性
5. 符合{jurisdiction}相关法律规定
【输出格式】
请输出完整的合同文本,使用标准法律文书格式。
"""
return template
# 使用示例
if __name__ == "__main__":
# 合同审查
review_prompt = ContractReviewPrompts.generate_contract_review_prompt(
contract_text="""
服务合同
甲方(委托方):北京XX科技有限公司
乙方(服务方):上海YY咨询公司
第一条 服务内容
乙方为甲方提供企业管理咨询服务,包括但不限于:
1. 组织架构优化建议
2. 业务流程梳理
3. 管理培训
第二条 服务费用
服务费用总计人民币50万元整。
第三条 付款方式
合同签署后5个工作日内支付50%,服务完成后支付剩余50%。
第四条 保密义务
双方应对合作过程中获知的商业秘密保密。
第五条 违约责任
如一方违约,守约方有权要求赔偿损失。
""",
contract_type="collaboration",
review_focus=["条款完整性", "权责对等性", "风险条款"],
jurisdiction="中国"
)
print("=== 合同审查提示词 ===")
print(review_prompt)
# 合同起草
draft_prompt = ContractGenerator.generate_contract_draft_prompt(
contract_type="软件开发合同",
party_a={
"name": "北京XX科技有限公司",
"address": "北京市海淀区XX路XX号",
"legal_representative": "张三",
"contact": "13800138000"
},
party_b={
"name": "杭州YY软件有限公司",
"address": "杭州市西湖区XX路XX号",
"legal_representative": "李四",
"contact": "13900139000"
},
key_terms={
"project_name": "企业管理系统开发",
"total_amount": "100万元",
"payment_terms": "3-3-4(签约30%、中期30%、验收40%)",
"duration": "6个月",
"deliverables": "需求文档、设计文档、源代码、用户手册"
},
jurisdiction="中国"
)
print("\n=== 合同起草提示词 ===")
print(draft_prompt)
24.2.2 法律文书生成提示词
class LegalDocumentGenerator:
"""法律文书生成提示词"""
@staticmethod
def generate_legal_opinion_prompt(
legal_question: str,
facts: str,
relevant_laws: list = None,
jurisdiction: str = "中国"
) -> str:
"""
生成法律意见书提示词
Args:
legal_question: 法律问题
facts: 案件事实
relevant_laws: 相关法律依据
jurisdiction: 适用法域
"""
laws_text = ""
if relevant_laws:
laws_text = "【相关法律依据】\n" + "\n".join(f"- {law}" for law in relevant_laws)
template = f"""请就以下法律问题出具法律意见书。
【法律问题】
{legal_question}
【案件事实】
{facts}
{laws_text}
【意见书结构】
1. 结论摘要
- 直接回答法律问题
- 简要说明结论依据
2. 事实概述
- 与法律问题相关的事实要点
- 事实认定的依据
3. 法律分析
- 适用法律条文
- 条文解读与本案关联
- 类似案例参考(如有)
4. 法律意见
- 具体结论
- 方案建议
- 风险提示
5. 免责声明
- 本意见书的局限性
- 具体建议
【写作要求】
1. 论证严密,逻辑清晰
2. 法律依据准确
3. 结论明确,避免模糊表述
4. 考虑实际可操作性
【输出格式】
## 法律意见书
### 结论摘要
### 事实概述
### 法律分析
### 法律意见
### 免责声明
[署名]
"""
return template
@staticmethod
def generate_legal_letter_prompt(
letter_type: str,
sender: dict,
recipient: dict,
subject: str,
key_points: list
) -> str:
"""
生成法律函件提示词
Args:
letter_type: 函件类型 (demand/response/notice/agreement)
sender: 发函方信息
recipient: 收函方信息
subject: 函件主题
key_points: 核心要点
"""
sender_info = "\n".join(f"- {k}: {v}" for k, v in sender.items())
recipient_info = "\n".join(f"- {k}: {v}" for k, v in recipient.items())
points_text = "\n".join(f"{i+1}. {p}" for i, p in enumerate(key_points))
letter_tones = {
"demand": "严肃、有力,据理力争,但保持专业",
"response": "平和、有理,澄清事实,表明立场",
"notice": "正式、规范,明确告知法律后果",
"agreement": "友好、务实,寻求协商解决"
}
template = f"""请根据以下信息起草{letter_type}。
【函件类型】
{letter_type}
语气要求:{letter_tones.get(letter_type, '专业、正式')}
【发函方】
{sender_info}
【收函方】
{recipient_info}
【函件主题】
{subject}
【核心要点】
{points_text}
【函件结构】
1. 发函日期和文号
2. 收函方称谓
3. 函件正文
- 背景说明
- 事实陈述
- 法律依据(如适用)
- 具体诉求
4. 期望回复或行动
5. 发函方署名
【写作要求】
1. 语言简洁专业
2. 事实清楚准确
3. 法律分析有据可查
4. 诉求明确具体
5. 设置合理的期限
【输出格式】
请输出正式的法律函件文本。
"""
return template
class CaseAnalyzer:
"""案例分析框架"""
@staticmethod
def generate_case_analysis_prompt(
case_description: str,
analysis_type: str = "teaching",
jurisdiction: str = "中国"
) -> str:
"""
生成案例分析提示词
Args:
case_description: 案例描述
analysis_type: 分析类型 (teaching/professional/research)
jurisdiction: 适用法域
"""
analysis_styles = {
"teaching": "教学案例分析:侧重于知识点的讲解和法律方法的训练",
"professional": "专业案例分析:侧重于实务操作和策略建议",
"research": "学术案例分析:侧重于法律原理和制度分析"
}
template = f"""请对以下案例进行全面分析。
【分析类型】
{analysis_styles.get(analysis_type, analysis_type)}
【适用法域】
{jurisdiction}
【案例描述】
{case_description}
【分析框架】
1. 案例基本信息
- 当事人
- 案件类型
- 审理程序
2. 案件事实
- 时间线梳理
- 关键事实认定
3. 争议焦点
- 主要争议点
- 双方主张
4. 法律适用
- 适用法律条文
- 法律解释方法
5. 分析与论证
- 各方观点分析
- 论证逻辑梳理
6. 结论与启示
- 裁判结果或分析结论
- 对实务的启示
- 延伸思考
【教学分析额外要求】
- 标注知识点
- 提供思考题
- 说明分析思路
【输出格式】
## 案例标题
## 一、基本信息
## 二、案件事实
## 三、争议焦点
## 四、法律适用分析
## 五、分析与论证
## 六、结论与启示
## 七、延伸思考(如适用)
"""
return template
@staticmethod
def generate_precedent_search_prompt(
current_case: str,
legal_issue: str,
jurisdiction: str = "中国"
) -> str:
"""生成类案检索提示词"""
template = f"""请为以下案件进行类案检索和分析。
【当前案件】
{current_case}
【核心法律问题】
{legal_issue}
【适用法域】
{jurisdiction}
【检索要求】
1. 找出与当前案件类似的案例
2. 分析类案的裁判要点
3. 总结类案的法律适用规律
【输出格式】
## 类案检索报告
### 一、检索概述
- 检索关键词
- 检索范围
- 检索结果概览
### 二、类案列表
| 案号 | 法院 | 裁判日期 | 核心事实 | 裁判要点 | 裁判结果 |
### 三、类案分析
- 裁判要旨归纳
- 法律适用规律
- 裁判思路总结
### 四、对当前案件的参考
- 类似点与不同点
- 借鉴意义
- 预测分析
### 五、检索结论
"""
return template
# 使用示例
if __name__ == "__main__":
# 法律意见书
opinion_prompt = LegalDocumentGenerator.generate_legal_opinion_prompt(
legal_question="公司股东能否请求法院解散公司?",
facts="""A公司成立于2015年,现有股东甲(持股40%)、乙(持股35%)、丙(持股25%)。
自2022年起,股东甲与乙之间产生严重矛盾,公司无法正常召开股东会。
公司经营状况持续恶化,已连续两年亏损。""",
relevant_laws=[
"《公司法》第182条:公司经营管理发生严重困难,继续存续会使股东利益受到重大损失,
通过其他途径不能解决的,持有公司全部股东表决权百分之十以上的股东,
可以请求人民法院解散公司。",
"《公司法》司法解释(二)第1条"
],
jurisdiction="中国"
)
print("=== 法律意见书提示词 ===")
print(opinion_prompt)
# 类案检索
precedent_prompt = CaseAnalyzer.generate_precedent_search_prompt(
current_case="买卖合同纠纷:买方主张货物质量不符合约定,要求退货并赔偿损失",
legal_issue="买卖合同中质量异议期的认定与质量问题的举证责任分配",
jurisdiction="中国"
)
print("\n=== 类案检索提示词 ===")
print(precedent_prompt)
24.3 金融:风险评估、投资分析、报告生成
24.3.1 风险评估提示词框架
class FinancialRiskAssessment:
"""金融风险评估提示词框架"""
@staticmethod
def generate_credit_risk_prompt(
borrower_info: dict,
financial_data: dict,
collateral_info: dict = None,
purpose: str = "贷款审批"
) -> str:
"""
生成信用风险评估提示词
Args:
borrower_info: 借款人基本信息
financial_data: 财务数据
collateral_info: 担保物信息
purpose: 评估目的
"""
borrower_text = "\n".join(f"- {k}: {v}" for k, v in borrower_info.items())
financial_text = "\n".join(f"- {k}: {v}" for k, v in financial_data.items())
collateral_text = "\n".join(f"- {k}: {v}" for k, v in collateral_info.items()) if collateral_info else "无"
template = f"""请对以下贷款申请进行全面的信用风险评估。
【评估目的】
{purpose}
【借款人基本信息】
{borrower_text}
【财务数据】
{financial_text}
【担保物信息】
{collateral_text}
【评估维度】
1. 还款能力分析
- 收入稳定性
- 负债比率
- 现金流状况
2. 还款意愿评估
- 信用历史
- 社会行为特征
3. 担保充足性
- 担保物价值
- 担保覆盖倍数
4. 风险等级评定
- 定量评分
- 定性分析
5. 建议措施
- 贷款条件
- 利率建议
- 风险缓释措施
【风险等级标准】
- 低风险:偿还能力强,历史信用良好
- 中低风险:偿还能力较强,有轻微负面因素
- 中等风险:偿还能力一般,需要关注
- 中高风险:偿还能力存在疑问
- 高风险:偿还能力堪忧,建议拒绝
【输出格式】
## 借款人概览
## 定量评估
### 财务比率分析
### 还款能力指标
## 定性评估
### 正面因素
### 负面因素
## 风险评估
### 主要风险点
### 风险等级
### 风险评分
## 建议
### 授信方案
### 利率建议
### 风控措施
### 综合结论
"""
return template
@staticmethod
def generate_market_risk_prompt(
asset_info: dict,
market_data: dict,
portfolio_context: str = ""
) -> str:
"""生成市场风险评估提示词"""
asset_text = "\n".join(f"- {k}: {v}" for k, v in asset_info.items())
market_text = "\n".join(f"- {k}: {v}" for k, v in market_data.items())
template = f"""请对以下资产进行市场风险评估。
【资产信息】
{asset_text}
【市场数据】
{market_text}
【组合背景】
{portfolio_context or '单一资产评估'}
【评估要求】
1. 风险因子识别
- 市场风险(价格波动、利率、汇率)
- 流动性风险
- 波动率风险
2. VaR分析
- 历史VaR
- 参数VaR
- Monte Carlo VaR
3. 压力测试
- 历史情景
- 假设情景
4. 敏感度分析
- Delta
- Vega
- 久期
5. 风险指标
- 最大回撤
- 夏普比率
- 信息比率
【输出格式】
## 资产概览
## 风险因子分析
## 风险指标计算
### VaR分析
### 压力测试结果
### 敏感度分析
## 风险评级
### 综合风险等级
### 风险来源分解
## 风险管理建议
"""
return template
class InvestmentAnalyzer:
"""投资分析框架"""
@staticmethod
def generate_fundamental_analysis_prompt(
company_name: str,
industry: str,
financial_statements: dict,
market_info: dict,
analysis_perspective: str = "买方"
) -> str:
"""
生成基本面分析提示词
Args:
company_name: 公司名称
industry: 所属行业
financial_statements: 财务报表数据
market_info: 市场信息
analysis_perspective: 分析视角 (买方/卖方/自营)
"""
financial_text = "\n".join(f"### {k}\n{v}" for k, v in financial_statements.items())
market_text = "\n".join(f"- {k}: {v}" for k, v in market_info.items())
perspective_instructions = {
"买方": "侧重于投资价值和风险识别,为投资决策服务",
"卖方": "侧重于投资亮点和增长潜力,为客户推荐服务",
"自营": "侧重于风险收益比和仓位管理,为交易服务"
}
template = f"""请对{company_name}进行全面的基本面分析。
【分析视角】
{perspective_instructions.get(analysis_perspective, analysis_perspective)}
【公司信息】
- 公司名称: {company_name}
- 所属行业: {industry}
【财务报表】
{financial_text}
【市场信息】
{market_text}
【分析框架】
1. 公司概况
- 主营业务
- 商业模式
- 行业地位
2. 财务分析
- 盈利能力(毛利率、净利率、ROE)
- 成长能力(营收增速、利润增速)
- 偿债能力(资产负债率、流动比率)
- 运营效率(存货周转、应收账款周转)
3. 估值分析
- PE、PB、PS等估值指标
- 同行对比
- 绝对估值(DCF等)
4. 投资亮点
- 竞争优势
- 增长逻辑
- 催化剂因素
5. 风险因素
- 经营风险
- 行业风险
- 财务风险
- 估值风险
6. 投资建议
- 评级(买入/持有/卖出)
- 目标价位
- 关注指标
【输出格式】
## 公司概述
## 行业分析
## 财务分析
### 盈利能力
### 成长能力
### 财务健康度
## 估值分析
### 相对估值
### 绝对估值
## 投资亮点与风险
### 投资亮点
### 主要风险
## 投资建议
### 综合评级
### 目标价位
### 关键跟踪指标
"""
return template
@staticmethod
def generate_portfolio_review_prompt(
portfolio_holdings: list,
benchmark: str,
market_view: str = "中性",
risk_tolerance: str = "中等"
) -> str:
"""生成投资组合审查提示词"""
holdings_text = "\n".join(f"- {h['name']}: 持仓{h['weight']}%, 浮盈{h.get('return', 'N/A')}" for h in portfolio_holdings)
template = f"""请对以下投资组合进行全面审查和优化建议。
【基准指数】
{benchmark}
【市场展望】
{market_view}
【风险偏好】
{risk_tolerance}
【持仓情况】
{holdings_text}
【审查维度】
1. 资产配置分析
- 大类资产分布
- 行业分布
- 地区分布
- 风格暴露
2. 风险收益分析
- 历史收益(相对于基准)
- 波动率分析
- 最大回撤
- 风险调整收益
3. 风险因子暴露
- 市场风险敞口
- 信用风险敞口
- 流动性风险敞口
4. 分散化程度
- 相关性分析
- 集中度风险
- 边际贡献分析
5. 持仓质量评估
- 各持仓基本面
- 相对吸引力
6. 优化建议
- 调仓建议
- 风险缓释建议
- 再平衡建议
【输出格式】
## 组合概览
## 资产配置分析
## 风险收益分析
## 风险因子分解
## 分散化评估
## 持仓审查
## 优化建议
### 调仓方案
### 预期效果
"""
return template
# 使用示例
if __name__ == "__main__":
# 信用风险评估
credit_prompt = FinancialRiskAssessment.generate_credit_risk_prompt(
borrower_info={
"name": "XX科技有限公司",
"industry": "软件开发",
"establish_year": "2018",
"employee_count": "120人",
"legal_representative": "张三"
},
financial_data={
"annual_revenue": "5000万元",
"net_profit": "800万元",
"total_assets": "3000万元",
"total_liabilities": "1500万元",
"operating_cash_flow": "600万元",
"accounts_receivable": "1200万元"
},
collateral_info={
"type": "房产抵押",
"value": "2000万元",
"assessment_date": "2024-01-15"
},
purpose="流动资金贷款审批"
)
print("=== 信用风险评估提示词 ===")
print(credit_prompt)
# 基本面分析
analysis_prompt = InvestmentAnalyzer.generate_fundamental_analysis_prompt(
company_name="宁德时代",
industry="新能源汽车动力电池",
financial_statements={
"利润表": """
营收: 3286亿元 (同比+152%)
净利润: 307亿元 (同比+93%)
毛利率: 22.0%
净利率: 9.3%
""",
"资产负债表": """
总资产: 6410亿元
净资产: 2010亿元
资产负债率: 68.7%
""",
"现金流量表": """
经营现金流: 613亿元
投资现金流: -890亿元
"""
},
market_info={
"最新股价": "205元",
"总市值": "9500亿元",
"PE-TTM": "31倍",
"PB": "4.7倍"
},
analysis_perspective="买方"
)
print("\n=== 基本面分析提示词 ===")
print(analysis_prompt)
24.3.2 投资报告生成提示词
class InvestmentReportGenerator:
"""投资报告生成器"""
@staticmethod
def generate_research_report_prompt(
topic: str,
report_type: str,
target_audience: str,
key_questions: list = None
) -> str:
"""
生成研究报告提示词
Args:
topic: 研究主题
report_type: 报告类型 (行业/公司/策略/宏观)
target_audience: 目标读者
key_questions: 核心问题
"""
questions_text = ""
if key_questions:
questions_text = "【核心问题】\n" + "\n".join(f"- {q}" for q in key_questions)
report_structures = {
"行业": """
1. 行业概述与产业链
2. 市场规模与增速
3. 竞争格局分析
4. 驱动因素与阻碍因素
5. 政策环境
6. 发展趋势与预测
7. 投资机会与风险
""",
"公司": """
1. 公司概述
2. 商业模式分析
3. 财务分析
4. 竞争壁垒
5. 成长逻辑
6. 风险因素
7. 估值与投资建议
""",
"策略": """
1. 市场回顾
2. 策略逻辑
3. 风险收益特征
4. 适用场景
5. 实施要点
6. 风险提示
""",
"宏观": """
1. 经济形势概述
2. 政策分析
3. 重点领域分析
4. 趋势展望
5. 投资启示
"""
}
template = f"""请撰写一份{report_type}研究报告。
【研究主题】
{topic}
【报告类型】
{report_type}
【目标读者】
{target_audience}
{questions_text}
【报告结构】
{report_structures.get(report_type, '标准研究报告结构')}
【写作要求】
1. 数据支撑:使用权威数据和来源
2. 逻辑清晰:论证严密,结论明确
3. 实用性:提供可操作的投资建议
4. 风险揭示:充分提示风险因素
5. 客观中立:避免夸大或偏见
【格式要求】
- 使用规范的金融术语
- 适当使用图表描述
- 标注数据来源
- 控制篇幅,突出重点
【输出格式】
请输出完整的报告内容,包含摘要、正文和结论。
"""
return template
@staticmethod
def generate_daily_market_summary_prompt(
market_data: dict,
significant_events: list,
sector_performance: list = None
) -> str:
"""生成每日市场摘要"""
market_text = "\n".join(f"- {k}: {v}" for k, v in market_data.items())
events_text = "\n".join(f"- {e}" for e in significant_events)
sector_text = ""
if sector_performance:
sector_text = "\n【行业表现】\n" + "\n".join(f"- {s}" for s in sector_performance)
template = f"""请生成今日市场摘要报告。
【市场概况】
{market_text}
【重要事件】
{events_text}
{sector_text}
【摘要结构】
1. 市场概览
- 主要指数涨跌幅
- 成交量
- 资金流向
2. 今日焦点
- 重要新闻事件
- 市场反应
3. 行业动态
- 涨幅前列行业
- 跌幅前列行业
4. 热点主题
- 今日热门概念
- 龙头个股
5. 明日展望
- 影响市场的主要因素
- 关注事项
【输出格式】
## 每日市场摘要 [日期]
### 市场概览
### 今日焦点
### 行业动态
### 热点主题
### 明日展望
"""
return template
class RiskManagementReport:
"""风险管理报告"""
@staticmethod
def generate_risk_report_prompt(
portfolio_metrics: dict,
risk_events: list,
limit_utilization: dict,
report_period: str
) -> str:
"""生成风险管理报告"""
metrics_text = "\n".join(f"- {k}: {v}" for k, v in portfolio_metrics.items())
limit_text = "\n".join(f"- {k}: {v}" for k, v in limit_utilization.items())
events_text = "\n".join(f"- {i+1}. {e}" for i, e in enumerate(risk_events))
template = f"""请生成{report_period}的风险管理报告。
【组合风险指标】
{metrics_text}
【风险事件】
{events_text}
【限额使用情况】
{limit_text}
【报告内容】
1. 风险管理概述
- 报告期风险状况
- 整体风险等级
2. 市场风险分析
- VaR分析
- 敏感度分析
- 压力测试结果
3. 信用风险分析
- 信用敞口
- 违约概率
- 损失率估计
4. 流动性风险
- 流动性覆盖率
- 资产变现能力
5. 操作风险
- 风险事件分析
- 内控评估
6. 限额执行情况
- 各限额使用率
- 超限情况
7. 风险缓释措施
- 已采取措施
- 建议措施
8. 风险展望
【输出格式】
## [报告期]风险管理报告
### 一、风险管理概述
### 二、市场风险
### 三、信用风险
### 四、流动性风险
### 五、操作风险
### 六、限额执行情况
### 七、风险缓释建议
### 八、风险展望
"""
return template
# 使用示例
if __name__ == "__main__":
# 行业研究报告
industry_report = InvestmentReportGenerator.generate_research_report_prompt(
topic="人工智能在金融科技领域的应用与发展",
report_type="行业",
target_audience="机构投资者、基金经理",
key_questions=[
"AI在金融领域的应用场景有哪些?",
"主要的技术路径和商业模式是什么?",
"行业竞争格局如何?",
"投资机会和风险在哪里?"
]
)
print("=== 行业研究报告提示词 ===")
print(industry_report)
# 每日市场摘要
daily_summary = InvestmentReportGenerator.generate_daily_market_summary_prompt(
market_data={
"上证指数": "+1.2% 收于3280点",
"深证成指": "+0.8% 收于10800点",
"创业板": "+0.5% 收于2100点",
"两市成交额": "1.1万亿元",
"北向资金": "净流入80亿元"
},
significant_events=[
"央行宣布定向降准0.25个百分点",
"中美经贸高级别磋商取得进展",
"科技股普遍上涨"
],
sector_performance=[
"涨幅前三:银行(+3.2%)、保险(+2.8%)、券商(+2.5%)",
"跌幅前三:房地产(-1.5%)、医药(-0.8%)、农业(-0.5%)"
]
)
print("\n=== 每日市场摘要提示词 ===")
print(daily_summary)
24.4 客服与支持:智能客服、工单处理、知识库建设
24.4.1 智能客服提示词框架
class IntelligentCustomerService:
"""智能客服提示词框架"""
@staticmethod
def generate_conversation_prompt(
customer_query: str,
customer_info: dict = None,
conversation_history: list = None,
business_context: str = ""
) -> str:
"""
生成对话式客服提示词
Args:
customer_query: 客户问题
customer_info: 客户信息
conversation_history: 对话历史
business_context: 业务背景
"""
customer_text = ""
if customer_info:
customer_text = f"""
【客户信息】
- 客户等级: {customer_info.get('level', '普通会员')}
- 历史问题数: {customer_info.get('past_issues', '0')}
- 满意度评分: {customer_info.get('satisfaction', 'N/A')}
"""
history_text = ""
if conversation_history:
history_text = "\n【对话历史】\n"
for h in conversation_history[-3:]: # 最近3轮
history_text += f"- 客户: {h.get('customer', '')}\n"
history_text += f"- 客服: {h.get('agent', '')}\n\n"
template = f"""你是一位专业的客户服务代表,请为客户提供优质的服务。
【服务准则】
1. 礼貌热情,积极回应
2. 准确理解客户问题
3. 提供清晰、实用的解决方案
4. 无法解决时及时升级
5. 保持专业和耐心
【业务背景】
{business_context or '通用客户服务'}
{customer_text}
{history_text}
【当前问题】
{customer_query}
【回复要求】
1. 首先确认理解客户问题
2. 提供具体的解决方案或步骤
3. 如需更多信息,明确告知客户
4. 无法解决时说明原因并提供替代方案
5. 询问客户是否满意
6. 结束时提供后续联系方式
【禁止事项】
- 未经授权承诺赔偿或优惠
- 泄露其他客户信息
- 过度承诺无法兑现的事项
- 使用不专业或情绪化的语言
【输出格式】
## 回复内容
[完整回复]
## 附加操作(如需要)
[如需转接、记录工单等]
"""
return template
@staticmethod
def generate_intent_classification_prompt(
user_message: str,
business_domains: list
) -> str:
"""
生成意图分类提示词
Args:
user_message: 用户消息
business_domains: 业务领域列表
"""
domains_text = "\n".join(f"- {d}" for d in business_domains)
template = f"""请分析以下用户消息的意图。
【用户消息】
{user_message}
【业务领域】
{domains_text}
【任务要求】
1. 识别用户的主要意图
2. 提取关键实体信息
3. 判断情绪倾向
4. 评估紧急程度
【意图分类体系】
- 咨询类:询问产品/服务信息
- 投诉类:表达不满或抱怨
- 办理类:申请办理业务
- 建议类:提出意见或建议
- 闲聊类:无明确业务目的
【输出格式】
## 意图分类
[主要意图: xxx]
## 关键实体
- 实体1: 值
- 实体2: 值
## 情绪分析
[正面/中性/负面]
## 紧急程度
[高/中/低]
## 置信度
[高/中/低]
## 推荐动作
[建议的处理方式]
"""
return template
class TicketProcessor:
"""工单处理提示词"""
@staticmethod
def generate_ticket_creation_prompt(
customer_description: str,
extracted_entities: dict = None,
priority_rules: list = None
) -> str:
"""生成工单创建提示词"""
entities_text = ""
if extracted_entities:
entities_text = "【提取的信息】\n" + "\n".join(f"- {k}: {v}" for k, v in extracted_entities.items())
rules_text = ""
if priority_rules:
rules_text = "\n【优先级规则】\n" + "\n".join(f"- {r}" for r in priority_rules)
template = f"""请根据以下信息创建工单。
【客户描述】
{customer_description}
{entities_text}
{rules_text}
【工单创建要素】
1. 工单标题
- 简洁明了
- 包含关键信息
- 不超过50字
2. 工单分类
- 一级分类
- 二级分类
- 问题类型
3. 优先级
- P1: 紧急(影响核心业务)
- P2: 高(影响重要功能)
- P3: 中(影响一般功能)
- P4: 低(体验性问题)
4. 工单描述
- 问题概述
- 详细描述
- 复现步骤(如适用)
- 期望结果
- 实际结果
5. 影响范围
- 影响用户数
- 影响部门
6. 关联信息
- 相关产品
- 相关客户
- 相关订单
【输出格式】
## 工单信息
### 标题
### 分类
### 优先级
### 描述
### 影响分析
### 关联信息
### 工单建议处理人
### 建议处理时限
"""
return template
@staticmethod
def generate_ticket_routing_prompt(
ticket_content: str,
available_teams: list,
sla_requirements: dict
) -> str:
"""生成工单路由提示词"""
teams_text = "\n".join(f"- {t['name']}: {t['skills']}" for t in available_teams)
sla_text = "\n".join(f"- {k}: {v}" for k, v in sla_requirements.items())
template = f"""请为以下工单确定最佳处理路由。
【工单内容】
{ticket_content}
【可用团队】
{teams_text}
【SLA要求】
{sla_text}
【路由决策要素】
1. 问题类型匹配
2. 团队技能匹配
3. 当前负载情况
4. SLA时限要求
5. 地理/时区因素
6. 客户等级
【输出格式】
## 路由建议
### 推荐团队
[团队名称及理由]
### 推荐处理人(如适用)
[人员及理由]
### 二线支持备选
[如果一线无法解决]
### 升级路径
[何时需要升级]
### SLA时限
[建议的处理时限]
"""
return template
@staticmethod
def generate_resolution_suggestion_prompt(
ticket_history: str,
similar_resolved_tickets: list,
knowledge_base_summary: str = ""
) -> str:
"""生成解决方案建议提示词"""
tickets_text = ""
if similar_resolved_tickets:
tickets_text = "【类似已解决工单】\n"
for i, t in enumerate(similar_resolved_tickets[:3], 1):
tickets_text += f"{i}. 问题: {t.get('issue', '')}\n"
tickets_text += f" 解决方案: {t.get('resolution', '')}\n\n"
kb_text = f"\n【知识库摘要】\n{knowledge_base_summary}" if knowledge_base_summary else ""
template = f"""请基于历史工单和知识库为当前工单提供解决方案建议。
【工单历史】
{ticket_history}
{tickets_text}
{kb_text}
【分析要求】
1. 问题诊断
- 根本原因分析
- 问题分类确认
2. 解决方案匹配
- 从类似工单中学习
- 结合知识库最佳实践
3. 步骤建议
- 具体的解决步骤
- 每步的预期结果
- 需要确认的关键点
4. 备选方案
- 如果首选方案无效
5. 预防建议
- 避免再次发生
- 知识库更新建议
【输出格式】
## 问题诊断
## 推荐解决方案
### 解决方案A(首选)
### 解决方案B(备选)
## 具体步骤
1. ...
2. ...
## 验证清单
[解决后需要验证的事项]
## 预防措施
"""
return template
# 使用示例
if __name__ == "__main__":
# 对话式客服
chat_prompt = IntelligentCustomerService.generate_conversation_prompt(
customer_query="我上周订的快递怎么还没到?订单号是PK20240315001",
customer_info={
"level": "VIP会员",
"past_issues": 2,
"satisfaction": "4.5/5"
},
conversation_history=[
{"customer": "我的订单什么时候发货?", "agent": "您好,请问您的订单号是多少?"}
],
business_context="电商平台快递物流服务"
)
print("=== 对话式客服提示词 ===")
print(chat_prompt)
# 意图分类
intent_prompt = IntelligentCustomerService.generate_intent_classification_prompt(
user_message="这破软件老是崩溃,我等了这么久都没人处理,气死我了!",
business_domains=["产品咨询", "技术支持", "投诉建议", "订单物流", "账户问题"]
)
print("\n=== 意图分类提示词 ===")
print(intent_prompt)
# 工单创建
ticket_prompt = TicketProcessor.generate_ticket_creation_prompt(
customer_description="",
extracted_entities={
"订单号": "PK20240315001",
"产品": "iPhone 15 Pro Max",
"问题类型": "未收到货",
"下单日期": "2024-03-10",
"期望": "尽快发货或退款"
},
priority_rules=[
"VIP客户投诉: 优先级+1",
"超过7天未发货: 自动升级为P2"
]
)
print("\n=== 工单创建提示词 ===")
print(ticket_prompt)
24.4.2 知识库建设提示词
class KnowledgeBaseBuilder:
"""知识库建设提示词"""
@staticmethod
def generate_article_outline_prompt(
topic: str,
target_reader: str,
article_purpose: str,
existing_articles: list = None
) -> str:
"""
生成知识库文章大纲提示词
Args:
topic: 文章主题
target_reader: 目标读者
article_purpose: 文章目的
existing_articles: 已有的相关文章
"""
existing_text = ""
if existing_articles:
existing_text = "【已有相关文章】\n" + "\n".join(f"- {a}" for a in existing_articles)
template = f"""请为以下主题创建知识库文章大纲。
【文章主题】
{topic}
【目标读者】
{target_reader}
【文章目的】
{article_purpose}
{existing_text}
【大纲要求】
1. 结构清晰,逻辑连贯
2. 内容完整,覆盖全面
3. 层次分明,重点突出
4. 便于检索和查阅
【文章结构建议】
1. 概述(1-2段)
- 主题简介
- 重要性说明
- 阅读收益
2. 核心内容(分点阐述)
- 每个要点有详细的解释
- 包含示例和说明
- 注意详略得当
3. 常见问题(FAQ)
- 高频问题及解答
4. 延伸阅读
- 相关主题链接
- 深入学习资源
5. 更新日志
- 版本信息
- 修改记录
【输出格式】
## 文章大纲
### 标题
### 摘要
### 1. [章节标题]
### 2. [章节标题]
...
### FAQ
### 延伸阅读
### 更新日志
"""
return template
@staticmethod
def generate_knowledge_extraction_prompt(
source_document: str,
source_type: str,
extraction_focus: list = None
) -> str:
"""从文档中提取知识"""
focus_text = ""
if extraction_focus:
focus_text = "【提取重点】\n" + "\n".join(f"- {f}" for f in extraction_focus)
template = f"""请从以下文档中提取结构化知识。
【文档类型】
{source_type}
【文档内容】
{source_document}
{focus_text}
【提取要求】
1. 实体识别
- 关键概念
- 产品/服务名称
- 人名/地名
- 专业术语
2. 关系抽取
- 概念间的关系
- 因果关系
- 包含关系
3. 规则提取
- 业务流程
- 判断条件
- 阈值标准
4. FAQ提取
- 隐含的问题
- 隐含的解答
5. 注意事项
- 特殊情况
- 常见误区
- 限制条件
【输出格式】
## 关键概念
## 关系图谱
## 流程规则
## FAQ
## 注意事项
"""
return template
@staticmethod
def generate_search_optimization_prompt(
article_content: str,
search_keywords: list
) -> str:
"""生成搜索优化建议"""
keywords_text = ", ".join(search_keywords)
template = f"""请分析以下知识库文章并提供搜索优化建议。
【文章内容】
{article_content}
【目标关键词】
{keywords_text}
【优化维度】
1. 标题优化
- 包含核心关键词
- 简洁明了
- 吸引点击
2. 摘要优化
- 包含关键词
- 概括主要内容
- 便于快速判断
3. 正文优化
- 关键词分布
- 语义相关性
- 长尾关键词
4. 元数据优化
- 标签设置
- 分类归属
- 相关链接
【输出格式】
## 标题建议
## 摘要建议
## 正文优化建议
[关键词布局建议]
## 元数据建议
[标签、分类建议]
## 预期效果
"""
return template
class FAQGenerator:
"""FAQ生成器"""
@staticmethod
def generate_faq_prompt(
topic: str,
content: str,
customer_questions: list = None
) -> str:
"""生成FAQ提示词"""
questions_text = ""
if customer_questions:
questions_text = "【用户实际提问】\n" + "\n".join(f"- {q}" for q in customer_questions)
template = f"""请基于以下内容生成常见问题(FAQ)。
【主题】
{topic}
【详细内容】
{content}
{questions_text}
【FAQ生成要求】
1. 问题覆盖全面
- 涵盖主要内容
- 覆盖常见场景
- 包含边缘情况
2. 问题表述自然
- 符合用户语言习惯
- 简洁明了
- 有针对性
3. 答案质量
- 准确完整
- 简洁易懂
- 可操作性强
4. 结构合理
- 按重要性排序
- 按主题分组
- 便于快速查找
【输出格式】
## 常见问题
### 基础问题
Q: [问题]
A: [回答]
### 进阶问题
Q: [问题]
A: [回答]
### 特殊问题
Q: [问题]
A: [回答]
"""
return template
# 使用示例
if __name__ == "__main__":
# 文章大纲
outline_prompt = KnowledgeBaseBuilder.generate_article_outline_prompt(
topic="如何申请发票",
target_reader="企业采购人员、财务人员",
article_purpose="指导用户如何在线申请发票,包括电子发票和纸质发票",
existing_articles=[
"如何查看发票历史",
"发票报销指南"
]
)
print("=== 知识库文章大纲提示词 ===")
print(outline_prompt)
# FAQ生成
faq_prompt = FAQGenerator.generate_faq_prompt(
topic="退换货政策",
content="""
退换货政策说明:
1. 自收货之日起7天内可申请无理由退货
2. 商品质量问题15天内可换货或维修
3. 定制商品不支持退换货
4. 退货时商品需保持完好,包含附件和说明书
5. 退货退款将在收到商品后3-5个工作日内处理
6. 运费承担:质量问题由商家承担,非质量问题由买家承担
""",
customer_questions=[
"我买的东西不想要了能退吗",
"商品有问题怎么申请售后",
"退货的运费谁出",
"多久能收到退款"
]
)
print("\n=== FAQ生成提示词 ===")
print(faq_prompt)
24.5 教育与培训:个性化学习、智能答疑、课程设计
24.5.1 个性化学习提示词框架
class PersonalizedLearning:
"""个性化学习提示词框架"""
@staticmethod
def generate_learning_plan_prompt(
learner_profile: dict,
learning_goal: str,
available_time: str,
learning_resources: list = None
) -> str:
"""
生成个性化学习计划提示词
Args:
learner_profile: 学习者画像
learning_goal: 学习目标
available_time: 可用时间
learning_resources: 可用资源
"""
profile_text = "\n".join(f"- {k}: {v}" for k, v in learner_profile.items())
resources_text = ""
if learning_resources:
resources_text = "\n【可用资源】\n" + "\n".join(f"- {r}" for r in learning_resources)
template = f"""请为以下学习者制定个性化的学习计划。
【学习者画像】
{profile_text}
【学习目标】
{learning_goal}
【可用时间】
{available_time}
{resources_text}
【计划制定要求】
1. 目标分解
- 将大目标分解为小目标
- 设置阶段性里程碑
- 明确的验收标准
2. 内容安排
- 学习内容顺序
- 每日/每周任务
- 难度递进设计
3. 时间分配
- 各模块时间比例
- 练习时间安排
- 复习时间安排
4. 方法建议
- 适合的学习方法
- 记忆技巧
- 练习策略
5. 评估方式
- 阶段性测试
- 成果检验
- 反馈机制
6. 激励措施
- 里程碑奖励
- 进度可视化
【输出格式】
## 学习者概览
## 学习目标
### 总体目标
### 阶段性目标
### 验收标准
## 学习计划
### 第1周/模块1
### 第2周/模块2
...
## 每日学习安排
| 日期 | 内容 | 时长 | 目标 |
## 学习资源推荐
## 评估与反馈
"""
return template
@staticmethod
def generate_adaptive_content_prompt(
topic: str,
learner_level: str,
learning_style: str = "mixed",
difficulty_adjustment: str = "适中"
) -> str:
"""
生成自适应学习内容提示词
Args:
topic: 学习主题
learner_level: 学习者水平 (beginner/intermediate/advanced)
learning_style: 学习风格 (visual/auditory/reading/kinesthetic/mixed)
difficulty_adjustment: 难度调整 (降低/保持/提高)
"""
level_descriptions = {
"beginner": "零基础或入门级,需要从基础概念讲起",
"intermediate": "有一定基础,可以较快回顾后进入核心内容",
"advanced": "基础扎实,可以深入探讨高级话题"
}
style_notes = {
"visual": "多使用图表、示意图、思维导图等视觉元素",
"auditory": "注重口头解释、案例故事、讨论交流",
"reading": "提供详细的文字材料、文档、阅读材料",
"kinesthetic": "强调实践操作、动手练习、模拟演练",
"mixed": "综合使用多种方式"
}
template = f"""请根据学习者的特点生成自适应的学习内容。
【学习主题】
{topic}
【学习者水平】
{level_descriptions.get(learner_level, learner_level)}
【学习风格】
{style_notes.get(learning_style, learning_style)}
【难度要求】
{difficulty_adjustment}
【内容设计原则】
1. 难度匹配
- 符合当前水平
- 略有挑战但可达成
- 逐步提升难度
2. 内容结构
- 概念讲解
- 示例说明
- 实践练习
- 总结回顾
3. 多层次内容
- 核心内容:必须掌握
- 扩展内容:有余力可学
- 挑战内容:深入探索
4. 交互设计
- 思考问题
- 自测练习
- 反思环节
5. 即时反馈
- 练习答案与解析
- 易错点提醒
- 学习建议
【输出格式】
## 学习内容:[主题]
### 核心概念
[讲解内容]
### 示例与案例
[例子]
### 练习题
[习题]
### 解析与反馈
### 总结
### 扩展学习
"""
return template
class SmartQASystem:
"""智能答疑系统"""
@staticmethod
def generate_question_analysis_prompt(
question: str,
subject: str,
context: str = ""
) -> str:
"""
生成问题分析提示词
Args:
question: 学生问题
subject: 学科
context: 上下文(课堂内容等)
"""
template = f"""请分析以下学生问题。
【学科】
{subject}
【学生问题】
{question}
【上下文】
{context or '无特殊上下文'}
【分析要求】
1. 问题类型识别
- 知识理解类
- 知识应用类
- 知识拓展类
- 态度情感类
2. 知识点定位
- 对应的知识点
- 相关的知识背景
- 知识点间的联系
3. 困难原因分析
- 概念混淆
- 理解偏差
- 知识盲区
- 方法缺失
4. 解答策略
- 直接回答
- 启发引导
- 补充讲解
- 推荐资源
【输出格式】
## 问题分析
### 问题类型
### 涉及知识点
### 困难原因
### 解答策略
### 推荐回复
"""
return template
@staticmethod
def generate_step_by_step_prompt(
math_problem: str,
learner_level: str,
show_hints: bool = True
) -> str:
"""生成数学问题分步解答提示词"""
template = f"""请为以下数学问题提供分步解答。
【题目】
{math_problem}
【学习者水平】
{learner_level}
【解答要求】
1. 分步讲解
- 每一步清晰明了
- 说明每步的原理
- 标注关键公式
2. 多种解法(如适用)
- 提供不同解法
- 比较解法优劣
3. 易错提示
- 常见错误
- 注意事项
4. 举一反三
- 类似题目
- 变式练习
5. 总结归纳
- 解题方法总结
- 核心知识点
【输出格式】
## 题目
## 解法一
### 第一步
### 第二步
...
## 解法二(如有)
## 易错提醒
## 变式练习
## 方法总结
"""
return template
# 使用示例
if __name__ == "__main__":
# 个性化学习计划
plan_prompt = PersonalizedLearning.generate_learning_plan_prompt(
learner_profile={
"年龄": "28岁",
"职业": "软件工程师",
"基础": "了解Python基础语法,无机器学习基础",
"学习风格": "动手实践型",
"学习时间": "每天2小时,周末4小时"
},
learning_goal="6个月内具备独立完成机器学习项目的能力",
available_time="工作日每晚2小时,周末可全天学习",
learning_resources=["在线课程", "教材", "开源项目"]
)
print("=== 个性化学习计划提示词 ===")
print(plan_prompt)
# 自适应内容
content_prompt = PersonalizedLearning.generate_adaptive_content_prompt(
topic="Python装饰器",
learner_level="intermediate",
learning_style="kinesthetic",
difficulty_adjustment="适当提高"
)
print("\n=== 自适应学习内容提示词 ===")
print(content_prompt)
# 数学问题分步解答
math_prompt = SmartQASystem.generate_step_by_step_prompt(
math_problem="求不定积分 ∫ x²sin(x) dx",
learner_level="大学一年级",
show_hints=True
)
print("\n=== 数学分步解答提示词 ===")
print(math_prompt)
24.5.2 课程设计提示词
class CourseDesigner:
"""课程设计提示词"""
@staticmethod
def generate_course_outline_prompt(
course_name: str,
target_audience: dict,
learning_objectives: list,
total_hours: int,
delivery_mode: str = "线上"
) -> str:
"""
生成课程大纲提示词
Args:
course_name: 课程名称
target_audience: 目标受众
learning_objectives: 学习目标
total_hours: 总课时
delivery_mode: 授课方式
"""
audience_text = "\n".join(f"- {k}: {v}" for k, v in target_audience.items())
objectives_text = "\n".join(f"- {i+1}. {obj}" for i, obj in enumerate(learning_objectives))
template = f"""请设计以下课程的完整大纲。
【课程名称】
{course_name}
【目标受众】
{audience_text}
【学习目标】
{objectives_text}
【总课时】
{total_hours}小时
【授课方式】
{delivery_mode}
【大纲设计要求】
1. 模块划分
- 将课程分为若干模块
- 模块之间逻辑连贯
- 难度递进
2. 课时分配
- 每个模块的课时数
- 理论vs实践比例
- 各部分时间分配
3. 内容设计
- 每个模块的学习内容
- 学习活动设计
- 评估方式
4. 资源准备
- 教学材料
- 练习题库
- 项目案例
5. 评估设计
- 形成性评估
- 总结性评估
- 评分标准
【输出格式】
## 课程基本信息
## 课程目标
## 教学大纲
### 模块一:[名称] (X小时)
### 模块二:[名称] (X小时)
...
## 详细教学设计
### 模块一
#### 学习目标
#### 内容大纲
#### 教学活动
#### 评估方式
#### 学习资源
## 评估方案
## 教学资源清单
"""
return template
@staticmethod
def generate_lesson_plan_prompt(
lesson_topic: str,
lesson_duration: int,
learner_prerequisites: list,
teaching_objectives: list
) -> str:
"""生成课时教学计划提示词"""
prereq_text = "\n".join(f"- {p}" for p in learner_prerequisites)
obj_text = "\n".join(f"- {i+1}. {o}" for i, o in enumerate(teaching_objectives))
template = f"""请为以下课时设计详细的教学计划。
【课时主题】
{lesson_topic}
【课时时长】
{lesson_duration}分钟
【学习前提】
{prereq_text}
【教学目标】
{obj_text}
【教学计划结构】
1. 导入(5-10%时间)
- 引起兴趣
- 明确目标
- 连接已知
2. 新授(40-50%时间)
- 知识讲解
- 示范演示
- 关键点强调
3. 练习(30-35%时间)
- 引导练习
- 独立练习
- 巡视指导
4. 总结(10-15%时间)
- 回顾要点
- 解答疑问
- 布置作业
5. 评估
- 学习目标达成度
- 练习情况
- 下一步建议
【输出格式】
## 课时信息
- 主题:
- 时长:
- 班级:
## 教学目标
## 教学过程
### 1. 导入(X分钟)
[具体内容]
### 2. 新授(X分钟)
[具体内容]
### 3. 练习(X分钟)
[具体内容]
### 4. 总结(X分钟)
[具体内容]
## 课堂练习
## 作业布置
## 教学反思要点
"""
return template
class AssessmentDesigner:
"""测评设计提示词"""
@staticmethod
def generate_quiz_prompt(
topic: str,
difficulty_level: str,
question_types: list,
total_questions: int,
learning_objectives: list
) -> str:
"""
生成测验题目提示词
Args:
topic: 测试主题
difficulty_level: 难度等级 (easy/medium/hard)
question_types: 题目类型 (choice/truefalse/blank/essay/practical)
total_questions: 总题数
learning_objectives: 学习目标(用于检验)
"""
objectives_text = "\n".join(f"- {o}" for o in learning_objectives)
types_text = "、".join(question_types)
difficulty_notes = {
"easy": "基础概念和简单应用,80%学生应能正确作答",
"medium": "概念理解和一般应用,60%学生应能正确作答",
"hard": "综合应用和分析,40%学生应能正确作答"
}
template = f"""请为以下主题设计测验题目。
【测试主题】
{topic}
【目标学习成果】
{objectives_text}
【难度要求】
{difficulty_notes.get(difficulty_level, difficulty_level)}
【题目要求】
- 总题数: {total_questions}
- 题型: {types_text}
- 需覆盖所有学习目标
【各题型要求】
1. 选择题
- 选项4个(正确1个,干扰项合理)
- 选项表述清晰
- 只有一个最佳答案
2. 判断题
- 陈述明确
- 避免歧义
3. 填空题
- 空的位置合理
- 答案唯一或标准
4. 简答题
- 问题明确
- 提供参考答案
- 明确评分标准
5. 实践题
- 任务清晰
- 提供评估标准
【输出格式】
## 测验信息
- 主题:
- 难度:
- 题数:
## 题目列表
### 一、选择题(X题)
1. [题目]
A. ...
B. ...
C. ...
D. ...
答案:X
解析:...
### 二、判断题(X题)
### 三、填空题(X题)
...
## 答案与评分标准
## 双向细目表
| 知识点 | 对应题号 | 难度 |
|--------|----------|------|
"""
return template
# 使用示例
if __name__ == "__main__":
# 课程大纲
course_prompt = CourseDesigner.generate_course_outline_prompt(
course_name="Python数据分析与可视化",
target_audience={
"人群": "在职数据分析师、转行者",
"基础": "具备基础编程概念",
"人数": "30人/班",
"设备": "自带笔记本电脑"
},
learning_objectives=[
"掌握Pandas数据处理核心功能",
"能够进行数据清洗和预处理",
"使用Matplotlib/Seaborn创建可视化图表",
"完成一个完整的数据分析项目"
],
total_hours=40,
delivery_mode="线上直播+录播"
)
print("=== 课程大纲设计提示词 ===")
print(course_prompt)
# 课时计划
lesson_prompt = CourseDesigner.generate_lesson_plan_prompt(
lesson_topic="数据分组聚合操作",
lesson_duration=90,
learner_prerequisites=[
"理解DataFrame基本结构",
"掌握列选择和过滤操作"
],
teaching_objectives=[
"理解groupby的工作原理",
"能够按单列和多列分组",
"掌握常用聚合函数的使用"
]
)
print("\n=== 课时教学计划提示词 ===")
print(lesson_prompt)
# 测验设计
quiz_prompt = AssessmentDesigner.generate_quiz_prompt(
topic="Python列表与元组",
difficulty_level="medium",
question_types=["choice", "truefalse", "blank", "practical"],
total_questions=20,
learning_objectives=[
"理解列表和元组的区别",
"掌握列表的增删改查操作",
"能够选择合适的数据结构"
]
)
print("\n=== 测验题目设计提示词 ===")
print(quiz_prompt)
本章小结
本章系统介绍了医疗健康、法律、金融、客服支持和教育培训五大垂直行业的提示词工程解决方案。
医疗健康领域重点关注了医学咨询、病历整理和文献分析三个方向。医学咨询提示词需要包含患者信息、严格的免责声明和专业的分析框架;病历整理提示词采用SOAP标准格式;文献分析则需要批判性评估研究质量。
法律领域涵盖了合同审查、法律文书生成和案例分析。合同审查提示词需要全面的风险评估体系;法律文书生成强调专业性和严谨性;案例分析则注重教学性和实用性。
金融领域聚焦于风险评估和投资分析。信用风险评估需要定性与定量相结合;投资分析框架强调基本面和技术面的综合考量;投资报告需要数据支撑和逻辑清晰的论证。
客服支持领域实现了智能对话、工单处理和知识库建设的完整闭环。智能客服提示词强调服务规范和用户体验;工单处理提示词关注分类准确性和路由合理性;知识库建设则注重知识的结构化和可检索性。
教育培训领域实现了从个性化学习到课程设计的完整教学支持。个性化学习提示词根据学习者画像动态调整内容;智能答疑提示词注重问题分析和启发引导;课程设计提示词则提供了从大纲到课时计划的完整工具。
这些垂直行业解决方案的核心是深入理解行业特点,将领域知识与提示词工程方法相结合,生成符合行业规范和专业要求的AI应用提示词。
参考资源
推荐阅读
- 《医学文献信息检索》
- 《合同审查与起草指南》
- 《金融风险管理》
- 《客户服务管理》
- 《教学设计原理》
工具推荐
| 行业 | 工具/平台 | 用途 |
|---|---|---|
| 医疗 | PubMed, Cochrane Library | 医学文献检索 |
| 医疗 | IBM Watson Health | 临床决策支持 |
| 法律 | Westlaw, LexisNexis | 法律数据库 |
| 金融 | Bloomberg Terminal | 金融数据分析 |
| 金融 | Wind终端 | 金融数据服务 |
| 客服 | Zendesk, Freshdesk | 客服系统 |
| 教育 | Moodle, Canvas | LMS平台 |
实践建议
- 领域知识积累:深入理解目标行业的业务流程和专业术语
- 合规性检查:确保提示词符合行业法规和伦理要求
- 持续优化:基于实际使用反馈不断迭代优化提示词
- 专家协作:与行业专家合作验证提示词的专业性
- 风险管理:对医疗、法律、金融等高风险场景设置严格的安全边界