promptTemplates.py
概述
answerGeneration/promptTemplates.py 内部维护了一组针对大模型问答预设立场的字符串语境字典模板。通过把针对在如“提取关键词”、“RAG参考阅读后回答问题”,“意图推断重写”等各个项目不同阶段需要的各类专家扮演人设或规约的限制逻辑(又称 System Prompts / Few-shot Cues)做集中常量管理与剥离。
此模块可使得研发过程的 prompt 实验调优脱离繁杂繁复的底层数据流业务代码中解耦独立,提供如占位符支持(例如 {context} ,{query} )。它能够通过配置参数表对外按需加载各种变种逻辑版本的大段上下文。
模块主要内容和变量导出
核心模板集合字典字典如(PROMPT_REGISTRY)
一套把各类场景需求抽象分组好的全局配置引用地图映射。包含如:
"RAG_STRICT_QA": 最严苛的回答模板版(只依赖参考文本,不可有任何拓展),适用于答案对精准出处敏感的考核类项目。"RAG_HYBRID_MATH_QA": 面向理科解答或者复杂证明推理的一种模板配置,通常会含有大量系统提示词说明如何通过推演以及格式化返回如必须具备 LaTeX 公式的说明约束。"KEYWORD_EXTRACT": 为前置组件“意图推测”设置的模型模板格式化文本。
<|模板示例文本片段(示意)|>
python
MATH_RAG_BASE_TEMPLATE = """
你是一个高级数学专家助手机器人。我将提供一组参考段落和用户的问题。
你的任务是仅根据我提供的特定参考段落,不含主观臆断地详细解答用户的提问并给出相关的计算公式如存在的话。
这是参考的片段内容:
[Context Start]
{context}
[Context End]
你如果有部分问题或概念在这里找不到原文参考支持,坦诚说明“由于给定参考文档内缺失...信息,因此不便提供具体的论述步骤”。所有呈现出来的回答文字必须遵循以下的回复指导准则以及其标记符:
1. 你的答案必须包含详细论证推导的数学说明段...
(更多的指导细则与规范...)
下面是用户提问的问题:
用户问题:{query}
请准备给出你的完整严谨解答分析:
"""get_prompt_template(template_name_or_key: str) -> str
公共 API 工具方法。用来基于传递进去的一个意图或配置里的场景字典键名获取原始的基础多行大字断模板副本。
format_prompt(template_key: str, **kwargs_to_inject) -> str
公共 API 方法提供一层简单轻便的安全内插参数的 .format 包裹并异常捕获兜底层。它可以捕捉在传入如 query 或者是 context 等模板必须得参数遗落等导致的渲染崩溃以便项目系统不致因此宕去并在日志报警相关字段。