调整问题生成的提示词
This commit is contained in:
@@ -14,6 +14,9 @@ from app.api.routers.request.base import ProjectInfo
|
||||
from llama_index.core.response_synthesizers import ResponseMode
|
||||
|
||||
def getPrjFalg(params:dict=None)->str:
|
||||
if 'prjFalg' in params:
|
||||
return params.get('prjFalg')
|
||||
else:
|
||||
prjFlag = ''
|
||||
if params is not None:
|
||||
prjFlag = ProjectInfo().prjFalg(params.get('projectname'))
|
||||
|
||||
@@ -63,7 +63,7 @@ summary_template_str = (
|
||||
"- 如果问题能被回答,你的回答必须严格遵循文档内容,即使与事实不符。一定不要做多余解释。\n"
|
||||
"- 如果问题能被回答,直接引用文档的相关信息保证答案准确、完整,并追求简洁。\n"
|
||||
"- 当文档中只有少量信息与问题相关时,重点关注这部分信息,这种情况下一定回答。\n"
|
||||
"- 当文档中信息与问题无关时,请不要额外发散回答,只需要回答“我不知道这个问题的答案”。\n"
|
||||
"- 当文档中信息与问题无关时,请不要额外发散回答,只需要回答为' '"
|
||||
"\n"
|
||||
"来自多个来源的文档片段如下,请充分理解以下参考资料内容,组织出满足用户提问的条理清晰的回复。\n"
|
||||
"---------------------\n"
|
||||
|
||||
@@ -13,19 +13,31 @@ Attribute_Prompt = (
|
||||
# "你是一个电力造价工程相关的项目经理,现在给你一些上下文信息,"
|
||||
# "你需要根据现有的上下文信息,来生成{num_questions_per_chunk}个电力造价工程相关的问题和对应的回答,"
|
||||
# "现在需要你针对上下文信息中的金额或者合价进行提问和回答。"
|
||||
# "问题和回答的示例应该是这种类型的,示例:项目建设技术服务费的金额,项目建设技术服务费的金额是16855957065.4302; 架空输电线路本体工程的金额,架空输电线路本体工程的金额是55105688268.5176; 工程静态投资的金额,工程静态投资的金额是715035853336.391。"
|
||||
# "问题和回答的示例应该是这种类型的,示例:项目建设技术服务费的金额,项目建设技术服务费的金额是16855957065.4302"
|
||||
# "你生成的回答必须严格按照示例中的格式:('问题, 回答')。不允许有丝毫的变动,问题和回答应该在一个单引号内。"
|
||||
# "这种类似的问题和答案,生成的问题和答案必须一一对应,要符合文件里的内容,不要生成一些无关的问题,不要生成一些重复的问题,"
|
||||
# "不要生成一些过于简单的问题,不要生成一些过于复杂的问题。"
|
||||
# )
|
||||
|
||||
|
||||
###MarkDown格式的提示词
|
||||
Amount_Prompt = """\
|
||||
上下文信息是一张JSON格式的数据表,请根据数据表中内容进行生成{num_questions_per_chunk}个和金额有关的问题。
|
||||
生成规则推荐使用表中记录行的“代码、其他费、单位投资、合计费、安装费、序号"等字段的值来查询“金额”字段的值是多少钱的方式。 例如:
|
||||
记录行中代码字段的值是3A000000,则生成的问题为:代码为3A000000的金额是多少?
|
||||
上下文信息是一张表格数据,请根据数据表中内容进行生成{num_questions_per_chunk}个和金额有关的问题。
|
||||
生成规则推荐使用表中某行数据的某个值来查询“金额”字段值是多少钱的方式。
|
||||
你生成的回答必须严格按照指定的格式生成,格式为:xxxx的金额是多少。其中xxxx表示的是某行的某个数据的值(金额字段的值除外)。
|
||||
当文档中信息与金额无关时,请不要额外发散回答,只需要回答为' '
|
||||
不要生成一些无关的问题,不要生成一些重复的问题
|
||||
"""
|
||||
|
||||
###Json格式的提示词
|
||||
# Amount_Prompt = """\
|
||||
# 上下文信息是Json结构的数据,请根据数据表中内容进行生成{num_questions_per_chunk}个和金额有关的问题。
|
||||
# 生成规则推荐使用某个属性的值来查询“金额”属性值是多少钱的方式。
|
||||
# 你生成的回答必须严格按照指定的格式生成,格式为:xxxx的金额是多少。其中xxxx表示的是某个属性的值(金额属性的值除外)。
|
||||
# 当文档中信息与金额无关时,请不要额外发散回答,只需要回答为' '
|
||||
# 不要生成一些无关的问题,不要生成一些重复的问题
|
||||
# """
|
||||
|
||||
|
||||
Units_Prompt = (
|
||||
"你是一个电力造价工程相关的项目经理,现在给你一些上下文信息,"
|
||||
|
||||
@@ -79,7 +79,7 @@ class FileLoader:
|
||||
parser = {
|
||||
".md" : ChunkMarkdownReader(),
|
||||
}
|
||||
return parser
|
||||
return None
|
||||
|
||||
# 定义中文提示词和Python代码中提示词名称的映射
|
||||
prompt_mapping = {
|
||||
@@ -168,13 +168,13 @@ def main(documents:List[Document], table_names:List[str],num_questions_per_promp
|
||||
|
||||
# 获取命令行参数
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) != 2:
|
||||
raise ValueError("Usage: python script.py <table_names_input> <prompt_categories_input> <num_questions_per_prompt>")
|
||||
table_names_input = sys.argv[0]
|
||||
num_questions_per_prompt = int(sys.argv[1])
|
||||
# if len(sys.argv) != 2:
|
||||
# raise ValueError("Usage: python script.py <table_names_input> <prompt_categories_input> <num_questions_per_prompt>")
|
||||
# table_names_input = sys.argv[0]
|
||||
# num_questions_per_prompt = int(sys.argv[1])
|
||||
|
||||
# table_names_input = '[总算表]'
|
||||
# num_questions_per_prompt = 2
|
||||
table_names_input = '[总算表]'
|
||||
num_questions_per_prompt = 10
|
||||
|
||||
que_Dir = os.path.join(os.getcwd(),f'unit_test\\Quetions')
|
||||
loader = FileLoader()
|
||||
|
||||
Reference in New Issue
Block a user