|
@ -42,10 +42,10 @@ def get_host_ip(): |
|
|
|
|
|
|
|
|
return ip |
|
|
return ip |
|
|
|
|
|
|
|
|
# chatgpt_url_predict = "http://{}:12000/predict".format(str(get_host_ip())) |
|
|
chatgpt_url_predict = "http://{}:12000/predict".format(str(get_host_ip())) |
|
|
# chatgpt_url_search = "http://{}:12000/search".format(str(get_host_ip())) |
|
|
chatgpt_url_search = "http://{}:12000/search".format(str(get_host_ip())) |
|
|
chatgpt_url_predict = "http://{}:12000/predict".format("192.168.31.149") |
|
|
# chatgpt_url_predict = "http://{}:12000/predict".format("192.168.31.149") |
|
|
chatgpt_url_search = "http://{}:12000/search".format("192.168.31.149") |
|
|
# chatgpt_url_search = "http://{}:12000/search".format("192.168.31.149") |
|
|
|
|
|
|
|
|
qwen_prompt = "<|im_start|>user\n{}<|im_end|>\n<|im_start|>assistant\n" |
|
|
qwen_prompt = "<|im_start|>user\n{}<|im_end|>\n<|im_start|>assistant\n" |
|
|
qwen_think_prompt = "<|im_start|>user\n{}<|im_end|>\n<|im_start|>assistant\n<think>\n\n</think>\n\n" |
|
|
qwen_think_prompt = "<|im_start|>user\n{}<|im_end|>\n<|im_start|>assistant\n<think>\n\n</think>\n\n" |
|
@ -58,6 +58,14 @@ prompt = { |
|
|
"mulu_title_Level_3_2": "任务:生成目录\n为论文题目“%s”生成中文目录,要求只有一级标题,二级标题和三级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;三级标题使用阿拉伯数字 例如1.1.2 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题;三级标题个数越多越好" |
|
|
"mulu_title_Level_3_2": "任务:生成目录\n为论文题目“%s”生成中文目录,要求只有一级标题,二级标题和三级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;三级标题使用阿拉伯数字 例如1.1.2 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题;三级标题个数越多越好" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
prompt_main_content = { |
|
|
|
|
|
"mulu_title_Level_2": "任务:生成目录\n为论文题目“%s”生成中文目录,生成目录需要参考一些关键内容:“%s”,要求只有一级标题和二级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;一级标题生成%s个;每个一级标题包含%s个二级标题", |
|
|
|
|
|
"mulu_title_Level_2_1": "任务:生成目录\n为论文题目“%s”生成中文目录,生成目录需要参考一些关键内容:“%s”,要求只有一级标题和二级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题", |
|
|
|
|
|
"mulu_title_Level_3": "任务:生成目录\n为论文题目“%s”生成中文目录,生成目录需要参考一些关键内容:“%s”,要求只有一级标题,二级标题和三级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;三级标题使用阿拉伯数字 例如1.1.2 xxx;一级标题生成%s个;每个一级标题包含%s个二级标题;三级标题个数适中", |
|
|
|
|
|
"mulu_title_Level_3_1": "任务:生成目录\n为论文题目“%s”生成中文目录,生成目录需要参考一些关键内容:“%s”,要求只有一级标题,二级标题和三级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;三级标题使用阿拉伯数字 例如1.1.2 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题;三级标题个数适中", |
|
|
|
|
|
"mulu_title_Level_3_2": "任务:生成目录\n为论文题目“%s”生成中文目录,生成目录需要参考一些关键内容:“%s”,要求只有一级标题,二级标题和三级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;三级标题使用阿拉伯数字 例如1.1.2 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题;三级标题个数越多越好" |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
prompt_biaogekongzhi = { |
|
|
prompt_biaogekongzhi = { |
|
|
"prompt_1":"背景:我是一名博士生,我想写一篇论文。论文题目《{}》,目录是“{}”,我现在需要论文中有{},请根据这些信息告诉我", |
|
|
"prompt_1":"背景:我是一名博士生,我想写一篇论文。论文题目《{}》,目录是“{}”,我现在需要论文中有{},请根据这些信息告诉我", |
|
|
"prompt_1_form":"哪些小标题生成的内容需要包含表格", |
|
|
"prompt_1_form":"哪些小标题生成的内容需要包含表格", |
|
@ -89,49 +97,57 @@ id_to_lable = { |
|
|
|
|
|
|
|
|
nums_word_dict = { |
|
|
nums_word_dict = { |
|
|
"3000": { |
|
|
"3000": { |
|
|
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_2"]), |
|
|
"prompt": qwen_prompt.format(prompt["mulu_title_Level_2"]), |
|
|
|
|
|
"prompt_main_content": qwen_prompt.format(prompt_main_content["mulu_title_Level_2"]), |
|
|
"title_1_nums": "3", |
|
|
"title_1_nums": "3", |
|
|
"title_2_nums": ["2"], |
|
|
"title_2_nums": ["2"], |
|
|
"title_small_nums": ["3", "2"] |
|
|
"title_small_nums": ["3", "2"] |
|
|
}, |
|
|
}, |
|
|
"5000": { |
|
|
"5000": { |
|
|
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_2_1"]), |
|
|
"prompt": qwen_prompt.format(prompt["mulu_title_Level_2_1"]), |
|
|
|
|
|
"prompt_main_content": qwen_prompt.format(prompt_main_content["mulu_title_Level_2_1"]), |
|
|
"title_1_nums": "3", |
|
|
"title_1_nums": "3", |
|
|
"title_2_nums": ["2","4"], |
|
|
"title_2_nums": ["2","4"], |
|
|
"title_small_nums": ["3", "2","4"] |
|
|
"title_small_nums": ["3", "2","4"] |
|
|
}, |
|
|
}, |
|
|
"8000": { |
|
|
"8000": { |
|
|
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_2_1"]), |
|
|
"prompt": qwen_prompt.format(prompt["mulu_title_Level_2_1"]), |
|
|
|
|
|
"prompt_main_content": qwen_prompt.format(prompt_main_content["mulu_title_Level_2_1"]), |
|
|
"title_1_nums": "4", |
|
|
"title_1_nums": "4", |
|
|
"title_2_nums": ["2", "4"], |
|
|
"title_2_nums": ["2", "4"], |
|
|
"title_small_nums": ["4", "2", "4"], |
|
|
"title_small_nums": ["4", "2", "4"], |
|
|
}, |
|
|
}, |
|
|
"10000": { |
|
|
"10000": { |
|
|
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_2_1"]), |
|
|
"prompt": qwen_prompt.format(prompt["mulu_title_Level_2_1"]), |
|
|
|
|
|
"prompt_main_content": qwen_prompt.format(prompt_main_content["mulu_title_Level_2_1"]), |
|
|
"title_1_nums": "6", |
|
|
"title_1_nums": "6", |
|
|
"title_2_nums": ["2", "5"], |
|
|
"title_2_nums": ["2", "5"], |
|
|
"title_small_nums": ["6", "2", "5"], |
|
|
"title_small_nums": ["6", "2", "5"], |
|
|
}, |
|
|
}, |
|
|
"15000": { |
|
|
"15000": { |
|
|
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_3_1"]), |
|
|
"prompt": qwen_prompt.format(prompt["mulu_title_Level_3_1"]), |
|
|
|
|
|
"prompt_main_content": qwen_prompt.format(prompt_main_content["mulu_title_Level_3_1"]), |
|
|
"title_1_nums": "5", |
|
|
"title_1_nums": "5", |
|
|
"title_2_nums": ["2", "3"], |
|
|
"title_2_nums": ["2", "3"], |
|
|
"title_small_nums": ["5", "2", "3"], |
|
|
"title_small_nums": ["5", "2", "3"], |
|
|
}, |
|
|
}, |
|
|
"20000": { |
|
|
"20000": { |
|
|
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_3_1"]), |
|
|
"prompt": qwen_prompt.format(prompt["mulu_title_Level_3_1"]), |
|
|
|
|
|
"prompt_main_content": qwen_prompt.format(prompt_main_content["mulu_title_Level_3_1"]), |
|
|
"title_1_nums": "6", |
|
|
"title_1_nums": "6", |
|
|
"title_2_nums": ["2", "4"], |
|
|
"title_2_nums": ["2", "4"], |
|
|
"title_small_nums": ["6", "2", "4"], |
|
|
"title_small_nums": ["6", "2", "4"], |
|
|
}, |
|
|
}, |
|
|
"30000": { |
|
|
"30000": { |
|
|
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_3_1"]), |
|
|
"prompt": qwen_prompt.format(prompt["mulu_title_Level_3_1"]), |
|
|
|
|
|
"prompt_main_content": qwen_prompt.format(prompt_main_content["mulu_title_Level_3_1"]), |
|
|
"title_1_nums": "7", |
|
|
"title_1_nums": "7", |
|
|
"title_2_nums": ["3", "5"], |
|
|
"title_2_nums": ["3", "5"], |
|
|
"title_small_nums": ["7", "3", "5"], |
|
|
"title_small_nums": ["7", "3", "5"], |
|
|
}, |
|
|
}, |
|
|
"50000": { |
|
|
"50000": { |
|
|
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_3_2"]), |
|
|
"prompt": qwen_prompt.format(prompt["mulu_title_Level_3_2"]), |
|
|
|
|
|
"prompt_main_content": qwen_prompt.format(prompt_main_content["mulu_title_Level_3_1"]), |
|
|
"title_1_nums": "8", |
|
|
"title_1_nums": "8", |
|
|
"title_2_nums": ["3", "8"], |
|
|
"title_2_nums": ["3", "8"], |
|
|
"title_small_nums": ["8", "3", "8"], |
|
|
"title_small_nums": ["8", "3", "8"], |
|
@ -183,7 +199,7 @@ def request_api_chatgpt(prompt): |
|
|
"content": prompt, |
|
|
"content": prompt, |
|
|
"model": "gpt-4-turbo", |
|
|
"model": "gpt-4-turbo", |
|
|
"top_p": 0.95, |
|
|
"top_p": 0.95, |
|
|
"temperature": 0.7 |
|
|
"temperature": 0.6 |
|
|
} |
|
|
} |
|
|
response = requests.post( |
|
|
response = requests.post( |
|
|
chatgpt_url_predict, |
|
|
chatgpt_url_predict, |
|
@ -456,21 +472,26 @@ def biaogegongshi_kongzhi_prompt(title, mulu_list, table_and_formulas_list): |
|
|
prompt_biaogekongzhi["prompt3_multiple_tags"].format("&".join(lable_en), "&".join(lable_en)), |
|
|
prompt_biaogekongzhi["prompt3_multiple_tags"].format("&".join(lable_en), "&".join(lable_en)), |
|
|
]) |
|
|
]) |
|
|
prompt = "任务:公式和表格生成控制\n{}".format(prompt) |
|
|
prompt = "任务:公式和表格生成控制\n{}".format(prompt) |
|
|
prompt = qwen_think_prompt.format(prompt) |
|
|
prompt = qwen_prompt.format(prompt) |
|
|
prompt_list.append(prompt) |
|
|
prompt_list.append(prompt) |
|
|
return prompt_list |
|
|
return prompt_list |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route("/articles_directory", methods=["POST"]) |
|
|
@app.route("/articles_directory", methods=["POST"]) |
|
|
def articles_directory(): |
|
|
def articles_directory(): |
|
|
title = request.json["title"] # 获取用户query中的文本 例如"I love you" |
|
|
title = request.json["title"] |
|
|
nums_catalogue = request.json["nums_catalogue"] |
|
|
nums_catalogue = request.json["nums_catalogue"] |
|
|
nums_word = request.json["nums_word"] # 获取用户query中的文本 例如"I love you" |
|
|
nums_word = request.json["nums_word"] |
|
|
|
|
|
main_content = request.json.get("main_content") |
|
|
table_and_formulas = request.json["table_and_formulas"] |
|
|
table_and_formulas = request.json["table_and_formulas"] |
|
|
table_and_formulas_list = str(table_and_formulas).split(",") |
|
|
table_and_formulas_list = str(table_and_formulas).split(",") |
|
|
nums_catalogue = int(nums_catalogue) |
|
|
nums_catalogue = int(nums_catalogue) |
|
|
keyword = tuple([title] + nums_word_dict[nums_word]["title_small_nums"]) |
|
|
if not main_content: |
|
|
prompt = nums_word_dict[nums_word]["prompt"]%keyword |
|
|
keyword = tuple([title] + nums_word_dict[nums_word]["title_small_nums"]) |
|
|
|
|
|
prompt = nums_word_dict[nums_word]["prompt"] % keyword |
|
|
|
|
|
else: |
|
|
|
|
|
keyword = tuple([title, main_content] + nums_word_dict[nums_word]["title_small_nums"]) |
|
|
|
|
|
prompt = nums_word_dict[nums_word]["prompt_main_content"] % keyword |
|
|
print(prompt) |
|
|
print(prompt) |
|
|
input_data = [] |
|
|
input_data = [] |
|
|
for i in range(nums_catalogue): |
|
|
for i in range(nums_catalogue): |
|
@ -492,7 +513,9 @@ def articles_directory(): |
|
|
"catalog_list": mulu_list, |
|
|
"catalog_list": mulu_list, |
|
|
"catalog_dict": results |
|
|
"catalog_dict": results |
|
|
} |
|
|
} |
|
|
# log.log('text:{},'.format(prompt)) |
|
|
log.log('start at', |
|
|
|
|
|
'text:{},results:{}'.format( |
|
|
|
|
|
prompt, str(results))) |
|
|
return jsonify(data) # 返回结果 |
|
|
return jsonify(data) # 返回结果 |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
if __name__ == "__main__": |
|
|