Browse Source

增加主要内容问法

master
majiahui@haimaqingfan.com 2 months ago
parent
commit
4dbd5bf0e2
  1. 47
      .idea/deployment.xml
  2. 2
      .idea/generate_articles_directory.iml
  3. 2
      .idea/misc.xml
  4. 26
      articles_directory_predict.py
  5. 4
      articles_directory_predict_detection_word.py
  6. 34
      articles_directory_predict_qikan_word.py
  7. 20
      articles_directory_predict_qikan_word_online.py
  8. 34
      articles_directory_predict_qikan_word_table_formula_kongzhi.py
  9. 52
      articles_directory_predict_word.py
  10. 27
      articles_directory_predict_word_online.py
  11. 57
      articles_directory_predict_word_table_formula_kongzhi.py

47
.idea/deployment.xml

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PublishConfigData" autoUpload="Always" serverName="majiahui@192.168.31.74:22 (83)" remoteFilesAllowedToDisappearOnAutoupload="false" confirmBeforeUploading="false">
<component name="PublishConfigData" remoteFilesAllowedToDisappearOnAutoupload="false" confirmBeforeUploading="false">
<option name="confirmBeforeUploading" value="false" />
<serverData>
<paths name="majiahui@192.168.31.149:22">
@ -10,6 +10,20 @@
</mappings>
</serverdata>
</paths>
<paths name="majiahui@192.168.31.149:22 (2)">
<serverdata>
<mappings>
<mapping local="$PROJECT_DIR$" web="/" />
</mappings>
</serverdata>
</paths>
<paths name="majiahui@192.168.31.149:22 (3)">
<serverdata>
<mappings>
<mapping deploy="/home/majiahui/project/generate_articles_directory" local="$PROJECT_DIR$" />
</mappings>
</serverdata>
</paths>
<paths name="majiahui@192.168.31.74:22">
<serverdata>
<mappings>
@ -384,7 +398,7 @@
<paths name="majiahui@192.168.31.74:22 (58)">
<serverdata>
<mappings>
<mapping deploy="/home/majiahui/project/generate_articles_directory" local="$PROJECT_DIR$" />
<mapping local="$PROJECT_DIR$" web="/" />
</mappings>
</serverdata>
</paths>
@ -580,6 +594,34 @@
<paths name="majiahui@192.168.31.74:22 (83)">
<serverdata>
<mappings>
<mapping local="$PROJECT_DIR$" web="/" />
</mappings>
</serverdata>
</paths>
<paths name="majiahui@192.168.31.74:22 (84)">
<serverdata>
<mappings>
<mapping local="$PROJECT_DIR$" web="/" />
</mappings>
</serverdata>
</paths>
<paths name="majiahui@192.168.31.74:22 (85)">
<serverdata>
<mappings>
<mapping local="$PROJECT_DIR$" web="/" />
</mappings>
</serverdata>
</paths>
<paths name="majiahui@192.168.31.74:22 (86)">
<serverdata>
<mappings>
<mapping local="$PROJECT_DIR$" web="/" />
</mappings>
</serverdata>
</paths>
<paths name="majiahui@192.168.31.74:22 (87)">
<serverdata>
<mappings>
<mapping deploy="/home/majiahui/project/generate_articles_directory" local="$PROJECT_DIR$" />
</mappings>
</serverdata>
@ -592,6 +634,5 @@
</serverdata>
</paths>
</serverData>
<option name="myAutoUpload" value="ALWAYS" />
</component>
</project>

2
.idea/generate_articles_directory.iml

@ -5,7 +5,7 @@
</component>
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Remote Python 3.8.18 (sftp://majiahui@192.168.31.74:22/home/majiahui/miniconda3/envs/llama_paper/bin/python)" jdkType="Python SDK" />
<orderEntry type="jdk" jdkName="Python 3.8 (ldm)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TemplatesService">

2
.idea/misc.xml

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Remote Python 3.8.18 (sftp://majiahui@192.168.31.74:22/home/majiahui/miniconda3/envs/llama_paper/bin/python)" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 (ldm)" project-jdk-type="Python SDK" />
</project>

26
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__":

4
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"])

34
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)
if not main_content:
keyword = tuple([title] + nums_word_dict[nums_word]["title_small_nums"])
prompt = nums_word_dict[nums_word]["prompt"] % keyword
print(prompt)
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__":

20
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)
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__":

34
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)
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__":

52
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)
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__":

27
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)
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__":

57
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<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个二级标题;三级标题个数越多越好"
}
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)
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__":

Loading…
Cancel
Save