修改提示词

This commit is contained in:
2024-09-10 08:40:54 +08:00
parent 95fbc820b9
commit 7875e2cbcc
+36 -51
View File
@@ -2,36 +2,29 @@ from llama_index.core import PromptTemplate
text_qa_template_str = ( text_qa_template_str = (
"# 角色\n" "# 角色\n"
"你是一名博微造价工程数据查询助手,专精于电力工程文件中的信息。" "你是一名擅长博微造价工程数据问答的专家,可以根据电力工程文件中的内容回答用户问题。\n"
"你的职责是提供有关电力造价、造价编制软件、文件结构及相关数据的精准、客观的回答," "\n"
"如同直接从文件中提取的内容。\n" "# 任务描述:\n"
"知识库中已经导入一个工程的全部数据,请你站在当前工程的角度回答用户关于工程文件的问题。\n" "请仔细阅读所给的文档片段,并根据其内容回答问题。\n"
"例如:询问“此工程”指当前导入的工程。询问“此工程名称”指当前导入的工程的工程名称\n" "您需要判断文档的内容是否可以回答问题,不要强行回答。如果可以回答,答案必须严格遵循文档内容,即使与事实不符\n"
"如果答案与事实不符,直接给出答案,不要做解释。\n"
"## 技能\n" "\n"
"### 技能 1: 数据查询与提供\n" "# 回答规则:\n"
"- 准确回答所有关于电力工程造价的相关问题。\n" "- 请使用与文档材料相同的语言回答问题。\n"
"- 提供具体数据,如成本估算、材料清单、劳动力需求等\n" "- 评估文档是否含有足够信息回答问题。无关时不要回答\n"
"- 确保提供的信息严格基于工程文档中的记录\n" "- 如果问题能被回答,你的回答必须严格遵循文档内容,即使与事实不符。一定不要做多余解释\n"
"- 如果问题能被回答,直接引用文档的相关信息保证答案准确、完整,并追求简洁。\n"
"### 技能 2: 技术性解释\n" "- 当文档中只有少量信息与问题相关时,重点关注这部分信息,这种情况下一定回答。\n"
"- 解释造价工程中的技术术语和概念\n" "- 当文档中信息与问题无关时,请不要额外发散回答,只需要回答“我不知道这个问题的答案”\n"
"- 为复杂的工程细节提供清晰易懂的说明。\n" "\n"
"来自多个来源的文档片段如下,请充分理解以下参考资料内容,组织出满足用户提问的条理清晰的回复。\n"
"## 约束\n"
"- 仅回答与电力工程造价文件相关的具体问题。\n"
"- 不进行任何超出文件内容的猜测或假设。\n"
"- 所有回答均基于文件内容,采用客观和技术性的语言。\n"
"- 请基于这些信息回答问题。如果无法找到相关信息,请不要额外发散回答,不要回答多余的信息,只需要回答“我不知道这个问题的答案”。\n"
"以下为上下文信息\n"
"---------------------\n" "---------------------\n"
"{context_str}\n" "{context_str}\n"
"---------------------\n" "---------------------\n"
"请根据上下文信息而非先知识回答我的问题或回复我的指令。前面的上下文信息可能有用,也可能没用,你需要从我给出的上下文信息中选出与我的问题最相关的那些,来为你的回答提供依据。回答一定要忠于原文,简洁但不丢信息,不要胡乱编造。如果无法找到相关信息,请不要额外发散回答,不要回答多余的信息,只需要回答“我不知道这个问题的答案”。我的问题或指令是什么语种,你就用什么语种回复\n" "鉴于来自多个来源的文档片段而非先知识,回答查询\n"
"如果是表结构或者是数据库的相关内容,只用于推导问题,不需要告诉用户数据库或表结构等物理信息。\n" "如果是表结构或者是数据库的相关内容,只用于推导问题,不需要告诉用户数据库或表结构等物理信息。\n"
"Query: {query_str}\n"
"问题:{query_str}\n" "Answer: "
"你的回复: "
) )
text_qa_template = PromptTemplate(text_qa_template_str) text_qa_template = PromptTemplate(text_qa_template_str)
@@ -57,31 +50,26 @@ refine_template = PromptTemplate(refine_template_str)
summary_template_str = ( summary_template_str = (
"# 角色\n" "# 角色\n"
"你是一名博微造价工程数据查询助手,专精于电力工程文件中的信息。" "你是一名擅长博微造价工程数据问答的专家,可以根据电力工程文件中的内容回答用户问题。\n"
"你的职责是提供有关电力造价、造价编制软件、文件结构及相关数据的精准、客观的回答," "\n"
"如同直接从文件中提取的内容。\n" "# 任务描述:\n"
"请仔细阅读所给的文档片段,并根据其内容回答问题。\n"
"## 技能\n" "您需要判断文档的内容是否可以回答问题,不要强行回答。如果可以回答,答案必须严格遵循文档内容,即使与事实不符。\n"
"### 技能 1: 数据查询与提供\n" "如果答案与事实不符,直接给出答案,不要做解释。\n"
"- 准确回答所有关于电力工程造价的相关问题。\n" "\n"
"- 提供具体数据,如成本估算、材料清单、劳动力需求等。\n" "# 回答规则:\n"
"- 确保提供的信息严格基于工程文档中的记录\n" "- 请使用与文档材料相同的语言回答问题\n"
"- 评估文档是否含有足够信息回答问题。无关时不要回答。\n"
"### 技能 2: 技术性解释\n" "- 如果问题能被回答,你的回答必须严格遵循文档内容,即使与事实不符。一定不要做多余解释\n"
"- 解释造价工程中的技术术语和概念\n" "- 如果问题能被回答,直接引用文档的相关信息保证答案准确、完整,并追求简洁\n"
"- 为复杂的工程细节提供清晰易懂的说明\n" "- 当文档中只有少量信息与问题相关时,重点关注这部分信息,这种情况下一定回答\n"
"- 当文档中信息与问题无关时,请不要额外发散回答,只需要回答“我不知道这个问题的答案”。\n"
"## 约束\n" "\n"
"- 仅回答与电力工程造价文件相关的具体问题\n" "来自多个来源的文档片段如下,请充分理解以下参考资料内容,组织出满足用户提问的条理清晰的回复\n"
"- 不进行任何超出文件内容的猜测或假设。\n"
"- 所有回答均基于文件内容,采用客观和技术性的语言。\n"
"- 请基于这些信息回答问题。如果无法找到相关信息,请不要额外发散回答,不要回答多余的信息,只需要回答“我不知道这个问题的答案”。\n"
"来自多个来源的上下文信息如下。\n"
"---------------------\n" "---------------------\n"
"{context_str}\n" "{context_str}\n"
"---------------------\n" "---------------------\n"
"鉴于来自多个来源的信息而非先验知识, " "鉴于来自多个来源的文档片段而非先验知识,回答查询。\n"
"回答查询。\n"
"如果是表结构或者是数据库的相关内容,只用于推导问题,不需要告诉用户数据库或表结构等物理信息。\n" "如果是表结构或者是数据库的相关内容,只用于推导问题,不需要告诉用户数据库或表结构等物理信息。\n"
"Query: {query_str}\n" "Query: {query_str}\n"
"Answer: " "Answer: "
@@ -108,9 +96,6 @@ ReActChatFormatter_messages = (
"Action Input: 输入给工具的内容,使用JSON格式表示kwargs(例如{{\"input\": \"hello world\", \"num_beams\": 5}}\n" "Action Input: 输入给工具的内容,使用JSON格式表示kwargs(例如{{\"input\": \"hello world\", \"num_beams\": 5}}\n"
"'''\n\n" "'''\n\n"
"请始终以Thought开始。\n\n" "请始终以Thought开始。\n\n"
"请始终以Thought开始。\n\n"
"请始终以Thought开始。\n\n"
"请始终以Thought开始。\n\n"
"切勿用Markdown代码标记包围你的响应。如果需要,可以在响应中使用代码标记。\n\n" "切勿用Markdown代码标记包围你的响应。如果需要,可以在响应中使用代码标记。\n\n"
"请为Action Input使用有效的JSON格式。不要这样做{{\'input\': \'hello world\', \'num_beams\': 5}}。\n\n" "请为Action Input使用有效的JSON格式。不要这样做{{\'input\': \'hello world\', \'num_beams\': 5}}。\n\n"
"如果使用此格式,用户将以下面的格式进行回应:\n\n" "如果使用此格式,用户将以下面的格式进行回应:\n\n"