|
@@ -1,4 +1,6 @@
|
|
|
from flask import Flask, request, jsonify
|
|
|
+
|
|
|
+from final.ByRules.commonUtil import fill_template, fill_template_auto
|
|
|
from similarity_answer_json import *
|
|
|
from util import *
|
|
|
import os
|
|
@@ -11,6 +13,7 @@ app = Flask(__name__)
|
|
|
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
|
TEMPLATE_FOLDER = os.path.join(BASE_DIR, "templatesJson")
|
|
|
DATA_FOLDER = os.path.join(BASE_DIR, "..", "Json", "json_data")
|
|
|
+MAPPING_FILE = os.path.join(BASE_DIR,"..", "Json", "省间关系映射.json")
|
|
|
|
|
|
|
|
|
@app.route('/process_query', methods=['POST'])
|
|
@@ -22,6 +25,8 @@ def process_query_route():
|
|
|
|
|
|
try:
|
|
|
result = process_query(query, template_dict, TEMPLATE_FOLDER)
|
|
|
+
|
|
|
+ # 如果没有该问题模板
|
|
|
if result['play'] == '疑问':
|
|
|
response = {
|
|
|
# "content": final_content,
|
|
@@ -32,20 +37,42 @@ def process_query_route():
|
|
|
"play": result["play"]
|
|
|
}
|
|
|
return jsonify(response)
|
|
|
- final_value = smart_find_value(DATA_FOLDER, result["dataJsonName"], result["conditions"], result["target"])
|
|
|
- final_content = result["content"].replace("&", str(final_value))
|
|
|
-
|
|
|
- response = {
|
|
|
- "content": final_content,
|
|
|
- "content_text": result["content"],
|
|
|
- "raw_result": final_value,
|
|
|
- "conditions": result["conditions"],
|
|
|
- "name": result["name"],
|
|
|
- "play": result["play"]
|
|
|
- }
|
|
|
- return jsonify(response)
|
|
|
+ # 查询类问题:
|
|
|
+ if result['type'] == 'query':
|
|
|
+ final_value = smart_find_value(DATA_FOLDER, result["dataJsonName"], result["conditions"], result["target"])
|
|
|
+ # final_content = result["content"].replace("&", str(final_value))
|
|
|
+ final_content = fill_template_auto(result['content'], final_value)
|
|
|
+ response = {
|
|
|
+ "content": final_content,
|
|
|
+ "content_text": result["content"],
|
|
|
+ "raw_result": final_value,
|
|
|
+ "conditions": result["conditions"],
|
|
|
+ "name": result["name"],
|
|
|
+ "play": result["play"]
|
|
|
+ }
|
|
|
+ return jsonify(response)
|
|
|
+ # 比较类问题
|
|
|
+ elif result['type'] == 'compare_max_min':
|
|
|
+ final_value = find_max_or_min_value(folder_path=DATA_FOLDER, file_name=result["dataJsonName"],
|
|
|
+ value_key=result['value_key'],
|
|
|
+ name_key=result['name_key'],
|
|
|
+ mapping_file=MAPPING_FILE,
|
|
|
+ conditions=result["conditions"],
|
|
|
+ find_max=result['find_max'])
|
|
|
+ keys = [result['name_key'], result['value_key']]
|
|
|
+ final_content = fill_template_auto(result['content'], final_value, keys)
|
|
|
+ response = {
|
|
|
+ "content": final_content,
|
|
|
+ "content_text": result["content"],
|
|
|
+ "raw_result": final_value,
|
|
|
+ "conditions": result["conditions"],
|
|
|
+ "name": result["name"],
|
|
|
+ "play": result["play"]
|
|
|
+ }
|
|
|
+ return jsonify(response)
|
|
|
except Exception as e:
|
|
|
return jsonify({"error": str(e)}), 500
|
|
|
|
|
|
+
|
|
|
if __name__ == "__main__":
|
|
|
app.run(debug=True)
|