diff --git a/.idea/deployment.xml b/.idea/deployment.xml
index 558914d..abd8859 100644
--- a/.idea/deployment.xml
+++ b/.idea/deployment.xml
@@ -1,6 +1,6 @@
-
+
@@ -10,6 +10,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -384,7 +398,7 @@
-
+
@@ -580,6 +594,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -592,6 +634,5 @@
-
\ No newline at end of file
diff --git a/.idea/generate_articles_directory.iml b/.idea/generate_articles_directory.iml
index 9a47304..12ca792 100644
--- a/.idea/generate_articles_directory.iml
+++ b/.idea/generate_articles_directory.iml
@@ -5,7 +5,7 @@
-
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 4577e59..5cf0187 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/articles_directory_predict.py b/articles_directory_predict.py
index fb9274f..2a6f44c 100644
--- a/articles_directory_predict.py
+++ b/articles_directory_predict.py
@@ -1,3 +1,4 @@
+import os
from flask import Flask, jsonify
from flask import request
import time
@@ -20,6 +21,25 @@ def get_host_ip():
return ip
+class log:
+ def __init__(self):
+ pass
+
+ def log(*args, **kwargs):
+ format = '%Y/%m/%d-%H:%M:%S'
+ format_h = '%Y-%m-%d'
+ value = time.localtime(int(time.time()))
+ dt = time.strftime(format, value)
+ dt_log_file = time.strftime(format_h, value)
+ log_file = 'log_file/access-%s' % dt_log_file + ".log"
+ if not os.path.exists(log_file):
+ with open(os.path.join(log_file), 'w', encoding='utf-8') as f:
+ print(dt, *args, file=f, **kwargs)
+ else:
+ with open(os.path.join(log_file), 'a+', encoding='utf-8') as f:
+ print(dt, *args, file=f, **kwargs)
+
+
chatgpt_url_predict = "http://{}:12000/predict".format(str(get_host_ip()))
chatgpt_url_search = "http://{}:12000/search".format(str(get_host_ip()))
# prompt = "<|role|>user<|says|>{}<|end|>\n<|role|>assistant<|says|>"
@@ -166,7 +186,7 @@ def get_multiple_urls(urls):
def articles_directory():
text = request.json["texts"] # 获取用户query中的文本 例如"I love you"
nums = request.json["nums"]
- text = qwen_think_prompt.format(text)
+ text = qwen_prompt.format(text)
nums = int(nums)
input_data = []
@@ -176,6 +196,10 @@ def articles_directory():
results = get_multiple_urls(input_data)
+ log.log('start at',
+ 'text:{},results:{}'.format(
+ text, str(results)))
+
return jsonify(results) # 返回结果
if __name__ == "__main__":
diff --git a/articles_directory_predict_detection_word.py b/articles_directory_predict_detection_word.py
index d7623f1..6fd049c 100644
--- a/articles_directory_predict_detection_word.py
+++ b/articles_directory_predict_detection_word.py
@@ -93,7 +93,9 @@ def articles_directory():
"min_word": results[0],
"max_word": results[1],
}
- # log.log('text:{},'.format(prompt))
+ log.log('start at',
+ 'text:{},results:{}'.format(
+ mulu, str(results)))
return jsonify(data) # 返回结果
# @app.route("/detection_word", methods=["POST"])
diff --git a/articles_directory_predict_qikan_word.py b/articles_directory_predict_qikan_word.py
index a784e6d..272fad6 100644
--- a/articles_directory_predict_qikan_word.py
+++ b/articles_directory_predict_qikan_word.py
@@ -52,28 +52,37 @@ prompt = {
"mulu_title_Level_3_1": "任务:生成目录\n请帮我生成一个期刊论文的目录,论文题目是“%s”,要求只有一级标题,二级标题和三级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;三级标题使用阿拉伯数字 例如1.1.2 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题;三级标题个数适中",
}
+prompt_main_content = {
+ "mulu_title_Level_2_1": "任务:生成目录\n请帮我生成一个期刊论文的目录,论文题目是“%s”,生成目录需要参考一些关键内容:“%s”,要求只有一级标题,二级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题",
+ "mulu_title_Level_3_1": "任务:生成目录\n请帮我生成一个期刊论文的目录,论文题目是“%s”,生成目录需要参考一些关键内容:“%s”,要求只有一级标题,二级标题和三级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;三级标题使用阿拉伯数字 例如1.1.2 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题;三级标题个数适中",
+}
+
nums_word_dict = {
"3000": {
- "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_2_nums": ["0","3"],
"title_small_nums": ["3", "0","3"]
},
"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": "4",
"title_2_nums": ["0","5"],
"title_small_nums": ["4", "0","5"]
},
"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": "5",
"title_2_nums": ["0", "6"],
"title_small_nums": ["5", "0", "6"]
},
"10000": {
- "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_2_nums": ["0", "5"],
"title_small_nums": ["6", "0", "5"],
@@ -125,7 +134,7 @@ def request_api_chatgpt(prompt):
"content": prompt,
"model": "gpt-4-turbo",
"top_p": 0.95,
- "temperature": 0.7
+ "temperature": 0.6
}
response = requests.post(
chatgpt_url_predict,
@@ -217,19 +226,26 @@ def get_multiple_urls(urls):
@app.route("/articles_directory", methods=["POST"])
def articles_directory():
- title = request.json["title"] # 获取用户query中的文本 例如"I love you"
+ title = request.json["title"]
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")
nums_catalogue = int(nums_catalogue)
- keyword = tuple([title] + nums_word_dict[nums_word]["title_small_nums"])
- prompt = nums_word_dict[nums_word]["prompt"]%keyword
- print(prompt)
+ if not main_content:
+ 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
input_data = []
for i in range(nums_catalogue):
input_data.append([i, prompt])
results = get_multiple_urls(input_data)
- log.log('text:{},'.format(prompt))
+ log.log('start at',
+ 'text:{},results:{}'.format(
+ prompt, str(results)))
+ # log.log('text:{},'.format(prompt))
return jsonify(results) # 返回结果
if __name__ == "__main__":
diff --git a/articles_directory_predict_qikan_word_online.py b/articles_directory_predict_qikan_word_online.py
index 8460a0b..ae7c585 100644
--- a/articles_directory_predict_qikan_word_online.py
+++ b/articles_directory_predict_qikan_word_online.py
@@ -49,35 +49,42 @@ prompt = {
"mulu_title_Level_3_1": "任务:生成目录\n请帮我生成一个期刊论文的目录,论文题目是“%s”,要求只有一级标题,二级标题和三级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;三级标题使用阿拉伯数字 例如1.1.2 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题;三级标题个数适中",
}
+prompt_main_content = {
+ "mulu_title_Level_2_1": "任务:生成目录\n请帮我生成一个期刊论文的目录,论文题目是“%s”,生成目录需要参考一些关键内容:“%s”,要求只有一级标题,二级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题",
+ "mulu_title_Level_3_1": "任务:生成目录\n请帮我生成一个期刊论文的目录,论文题目是“%s”,生成目录需要参考一些关键内容:“%s”,要求只有一级标题,二级标题和三级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;三级标题使用阿拉伯数字 例如1.1.2 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题;三级标题个数适中",
+}
nums_word_dict = {
"3000": {
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_2_1"]),
+ "prompt_main_content": qwen_think_prompt.format(prompt_main_content["mulu_title_Level_2_1"]),
"title_1_nums": "3",
"title_2_nums": ["0","3"],
"title_small_nums": ["3", "0","3"]
},
"5000": {
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_2_1"]),
+ "prompt_main_content": qwen_think_prompt.format(prompt_main_content["mulu_title_Level_2_1"]),
"title_1_nums": "4",
"title_2_nums": ["0","5"],
"title_small_nums": ["4", "0","5"]
},
"8000": {
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_2_1"]),
+ "prompt_main_content": qwen_think_prompt.format(prompt_main_content["mulu_title_Level_2_1"]),
"title_1_nums": "5",
"title_2_nums": ["0", "6"],
"title_small_nums": ["5", "0", "6"]
},
"10000": {
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_3_1"]),
+ "prompt_main_content": qwen_think_prompt.format(prompt_main_content["mulu_title_Level_3_1"]),
"title_1_nums": "6",
"title_2_nums": ["0", "5"],
"title_small_nums": ["6", "0", "5"],
}
}
-
app = Flask(__name__)
app.config["JSON_AS_ASCII"] = False
@@ -122,7 +129,7 @@ def request_api_chatgpt(prompt):
"content": prompt,
"model": "gpt-4-turbo",
"top_p": 0.95,
- "temperature": 0.7
+ "temperature": 0.6
}
response = requests.post(
chatgpt_url_predict,
@@ -217,16 +224,23 @@ def articles_directory():
title = request.json["title"] # 获取用户query中的文本 例如"I love you"
nums_catalogue = request.json["nums_catalogue"]
nums_word = request.json["nums_word"] # 获取用户query中的文本 例如"I love you"
+ main_content = request.json.get("main_content")
nums_catalogue = int(nums_catalogue)
- keyword = tuple([title] + nums_word_dict[nums_word]["title_small_nums"])
- prompt = nums_word_dict[nums_word]["prompt"]%keyword
+ if not main_content:
+ 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)
input_data = []
for i in range(nums_catalogue):
input_data.append([i, prompt])
results = get_multiple_urls(input_data)
- log.log('text:{},'.format(prompt))
+ log.log('start at',
+ 'text:{},results:{}'.format(
+ prompt, str(results)))
return jsonify(results) # 返回结果
if __name__ == "__main__":
diff --git a/articles_directory_predict_qikan_word_table_formula_kongzhi.py b/articles_directory_predict_qikan_word_table_formula_kongzhi.py
index a936c72..23ad35a 100644
--- a/articles_directory_predict_qikan_word_table_formula_kongzhi.py
+++ b/articles_directory_predict_qikan_word_table_formula_kongzhi.py
@@ -53,34 +53,43 @@ prompt = {
"mulu_title_Level_3_1": "任务:生成目录\n请帮我生成一个期刊论文的目录,论文题目是“%s”,要求只有一级标题,二级标题和三级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;三级标题使用阿拉伯数字 例如1.1.2 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题;三级标题个数适中",
}
+prompt_main_content = {
+ "mulu_title_Level_2_1": "任务:生成目录\n请帮我生成一个期刊论文的目录,论文题目是“%s”,生成目录需要参考一些关键内容:“%s”,要求只有一级标题,二级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题",
+ "mulu_title_Level_3_1": "任务:生成目录\n请帮我生成一个期刊论文的目录,论文题目是“%s”,生成目录需要参考一些关键内容:“%s”,要求只有一级标题,二级标题和三级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;三级标题使用阿拉伯数字 例如1.1.2 xxx;一级标题生成%s个;每个一级标题包含%s-%s个二级标题;三级标题个数适中",
+}
nums_word_dict = {
"3000": {
- "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_2_nums": ["0","3"],
"title_small_nums": ["3", "0","3"]
},
"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": "4",
"title_2_nums": ["0","5"],
"title_small_nums": ["4", "0","5"]
},
"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": "5",
"title_2_nums": ["0", "6"],
"title_small_nums": ["5", "0", "6"]
},
"10000": {
- "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_2_nums": ["0", "5"],
"title_small_nums": ["6", "0", "5"],
}
}
+
prompt_biaogekongzhi = {
"prompt_1":"背景:我是一名博士生,我想写一篇论文。论文题目《{}》,目录是“{}”,我现在需要论文中有{},请根据这些信息告诉我",
"prompt_1_form":"哪些小标题生成的内容需要包含表格",
@@ -155,7 +164,7 @@ def request_api_chatgpt(prompt):
"content": prompt,
"model": "gpt-4-turbo",
"top_p": 0.95,
- "temperature": 0.9
+ "temperature": 0.6
}
response = requests.post(
chatgpt_url_predict,
@@ -428,21 +437,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 = "任务:公式和表格生成控制\n{}".format(prompt)
- prompt = qwen_think_prompt.format(prompt)
+ prompt = qwen_prompt.format(prompt)
prompt_list.append(prompt)
return prompt_list
@app.route("/articles_directory", methods=["POST"])
def articles_directory():
- title = request.json["title"] # 获取用户query中的文本 例如"I love you"
+ title = request.json["title"]
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_list = str(table_and_formulas).split(",")
nums_catalogue = int(nums_catalogue)
- keyword = tuple([title] + nums_word_dict[nums_word]["title_small_nums"])
- prompt = nums_word_dict[nums_word]["prompt"]%keyword
+ if not main_content:
+ 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)
input_data = []
for i in range(nums_catalogue):
@@ -474,7 +488,9 @@ def articles_directory():
"catalog_list": mulu_list,
"catalog_dict": results
}
- # log.log('text:{},'.format(prompt))
+ log.log('start at',
+ 'text:{},results:{}'.format(
+ prompt, str(results)))
return jsonify(data) # 返回结果
if __name__ == "__main__":
diff --git a/articles_directory_predict_word.py b/articles_directory_predict_word.py
index 9aa631d..1477e0e 100644
--- a/articles_directory_predict_word.py
+++ b/articles_directory_predict_word.py
@@ -53,51 +53,67 @@ prompt = {
"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个二级标题;三级标题个数越多越好"
+}
+
nums_word_dict = {
"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_2_nums": ["2"],
"title_small_nums": ["3", "2"]
},
"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_2_nums": ["2","4"],
"title_small_nums": ["3", "2","4"]
},
"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_2_nums": ["2", "4"],
"title_small_nums": ["4", "2", "4"],
},
"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_2_nums": ["2", "5"],
"title_small_nums": ["6", "2", "5"],
},
"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_2_nums": ["2", "3"],
"title_small_nums": ["5", "2", "3"],
},
"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_2_nums": ["2", "4"],
"title_small_nums": ["6", "2", "4"],
},
"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_2_nums": ["3", "5"],
"title_small_nums": ["7", "3", "5"],
},
"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_2_nums": ["3", "8"],
"title_small_nums": ["8", "3", "8"],
@@ -149,7 +165,7 @@ def request_api_chatgpt(prompt):
"content": prompt,
"model": "gpt-4-turbo",
"top_p": 0.95,
- "temperature": 0.7
+ "temperature": 0.6
}
response = requests.post(
chatgpt_url_predict,
@@ -241,19 +257,31 @@ def get_multiple_urls(urls):
@app.route("/articles_directory", methods=["POST"])
def articles_directory():
- title = request.json["title"] # 获取用户query中的文本 例如"I love you"
+ title = request.json["title"]
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")
+ print(title)
+ print(nums_catalogue)
+ print(nums_word)
+ print("main_content", main_content)
nums_catalogue = int(nums_catalogue)
- keyword = tuple([title] + nums_word_dict[nums_word]["title_small_nums"])
- prompt = nums_word_dict[nums_word]["prompt"]%keyword
+ if not main_content:
+ 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)
+
input_data = []
for i in range(nums_catalogue):
input_data.append([i, prompt])
results = get_multiple_urls(input_data)
- log.log('text:{},'.format(prompt))
+ log.log('start at',
+ 'text:{},results:{}'.format(
+ prompt, str(results)))
return jsonify(results) # 返回结果
if __name__ == "__main__":
diff --git a/articles_directory_predict_word_online.py b/articles_directory_predict_word_online.py
index a0227a3..add0428 100644
--- a/articles_directory_predict_word_online.py
+++ b/articles_directory_predict_word_online.py
@@ -53,51 +53,67 @@ prompt = {
"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个二级标题;三级标题个数越多越好"
+}
+
nums_word_dict = {
"3000": {
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_2"]),
+ "prompt_main_content": qwen_think_prompt.format(prompt_main_content["mulu_title_Level_2"]),
"title_1_nums": "3",
"title_2_nums": ["2"],
"title_small_nums": ["3", "2"]
},
"5000": {
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_2_1"]),
+ "prompt_main_content": qwen_think_prompt.format(prompt_main_content["mulu_title_Level_2_1"]),
"title_1_nums": "3",
"title_2_nums": ["2","4"],
"title_small_nums": ["3", "2","4"]
},
"8000": {
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_2_1"]),
+ "prompt_main_content": qwen_think_prompt.format(prompt_main_content["mulu_title_Level_2_1"]),
"title_1_nums": "4",
"title_2_nums": ["2", "4"],
"title_small_nums": ["4", "2", "4"],
},
"10000": {
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_2_1"]),
+ "prompt_main_content": qwen_think_prompt.format(prompt_main_content["mulu_title_Level_2_1"]),
"title_1_nums": "6",
"title_2_nums": ["2", "5"],
"title_small_nums": ["6", "2", "5"],
},
"15000": {
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_3_1"]),
+ "prompt_main_content": qwen_think_prompt.format(prompt_main_content["mulu_title_Level_3_1"]),
"title_1_nums": "5",
"title_2_nums": ["2", "3"],
"title_small_nums": ["5", "2", "3"],
},
"20000": {
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_3_1"]),
+ "prompt_main_content": qwen_think_prompt.format(prompt_main_content["mulu_title_Level_3_1"]),
"title_1_nums": "6",
"title_2_nums": ["2", "4"],
"title_small_nums": ["6", "2", "4"],
},
"30000": {
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_3_1"]),
+ "prompt_main_content": qwen_think_prompt.format(prompt_main_content["mulu_title_Level_3_1"]),
"title_1_nums": "7",
"title_2_nums": ["3", "5"],
"title_small_nums": ["7", "3", "5"],
},
"50000": {
"prompt": qwen_think_prompt.format(prompt["mulu_title_Level_3_2"]),
+ "prompt_main_content": qwen_think_prompt.format(prompt_main_content["mulu_title_Level_3_1"]),
"title_1_nums": "8",
"title_2_nums": ["3", "8"],
"title_small_nums": ["8", "3", "8"],
@@ -148,7 +164,7 @@ def request_api_chatgpt(prompt):
"content": prompt,
"model": "gpt-4-turbo",
"top_p": 0.95,
- "temperature": 0.7
+ "temperature": 0.6
}
response = requests.post(
chatgpt_url_predict,
@@ -243,16 +259,23 @@ def articles_directory():
title = request.json["title"] # 获取用户query中的文本 例如"I love you"
nums_catalogue = request.json["nums_catalogue"]
nums_word = request.json["nums_word"] # 获取用户query中的文本 例如"I love you"
+ main_content = request.json.get("main_content")
nums_catalogue = int(nums_catalogue)
- keyword = tuple([title] + nums_word_dict[nums_word]["title_small_nums"])
- prompt = nums_word_dict[nums_word]["prompt"]%keyword
+ if not main_content:
+ 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)
input_data = []
for i in range(nums_catalogue):
input_data.append([i, prompt])
results = get_multiple_urls(input_data)
- log.log('text:{},'.format(prompt))
+ log.log('start at',
+ 'text:{},results:{}'.format(
+ prompt, str(results)))
return jsonify(results) # 返回结果
if __name__ == "__main__":
diff --git a/articles_directory_predict_word_table_formula_kongzhi.py b/articles_directory_predict_word_table_formula_kongzhi.py
index 2d602f2..ec8414e 100644
--- a/articles_directory_predict_word_table_formula_kongzhi.py
+++ b/articles_directory_predict_word_table_formula_kongzhi.py
@@ -42,10 +42,10 @@ def get_host_ip():
return 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_predict = "http://{}:12000/predict".format("192.168.31.149")
-chatgpt_url_search = "http://{}:12000/search".format("192.168.31.149")
+chatgpt_url_predict = "http://{}:12000/predict".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_search = "http://{}:12000/search".format("192.168.31.149")
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\n\n\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个二级标题;三级标题个数越多越好"
}
+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_1":"背景:我是一名博士生,我想写一篇论文。论文题目《{}》,目录是“{}”,我现在需要论文中有{},请根据这些信息告诉我",
"prompt_1_form":"哪些小标题生成的内容需要包含表格",
@@ -89,49 +97,57 @@ id_to_lable = {
nums_word_dict = {
"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_2_nums": ["2"],
"title_small_nums": ["3", "2"]
},
"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_2_nums": ["2","4"],
"title_small_nums": ["3", "2","4"]
},
"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_2_nums": ["2", "4"],
"title_small_nums": ["4", "2", "4"],
},
"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_2_nums": ["2", "5"],
"title_small_nums": ["6", "2", "5"],
},
"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_2_nums": ["2", "3"],
"title_small_nums": ["5", "2", "3"],
},
"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_2_nums": ["2", "4"],
"title_small_nums": ["6", "2", "4"],
},
"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_2_nums": ["3", "5"],
"title_small_nums": ["7", "3", "5"],
},
"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_2_nums": ["3", "8"],
"title_small_nums": ["8", "3", "8"],
@@ -183,7 +199,7 @@ def request_api_chatgpt(prompt):
"content": prompt,
"model": "gpt-4-turbo",
"top_p": 0.95,
- "temperature": 0.7
+ "temperature": 0.6
}
response = requests.post(
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 = "任务:公式和表格生成控制\n{}".format(prompt)
- prompt = qwen_think_prompt.format(prompt)
+ prompt = qwen_prompt.format(prompt)
prompt_list.append(prompt)
return prompt_list
@app.route("/articles_directory", methods=["POST"])
def articles_directory():
- title = request.json["title"] # 获取用户query中的文本 例如"I love you"
+ title = request.json["title"]
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_list = str(table_and_formulas).split(",")
nums_catalogue = int(nums_catalogue)
- keyword = tuple([title] + nums_word_dict[nums_word]["title_small_nums"])
- prompt = nums_word_dict[nums_word]["prompt"]%keyword
+ if not main_content:
+ 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)
input_data = []
for i in range(nums_catalogue):
@@ -492,7 +513,9 @@ def articles_directory():
"catalog_list": mulu_list,
"catalog_dict": results
}
- # log.log('text:{},'.format(prompt))
+ log.log('start at',
+ 'text:{},results:{}'.format(
+ prompt, str(results)))
return jsonify(data) # 返回结果
if __name__ == "__main__":