|
@@ -20,6 +20,7 @@ from applications.resource import get_resource_manager
|
|
from applications.search import HybridSearch
|
|
from applications.search import HybridSearch
|
|
from applications.utils.chat import RAGChatAgent
|
|
from applications.utils.chat import RAGChatAgent
|
|
from applications.utils.mysql import Dataset, Contents, ContentChunks, ChatResult
|
|
from applications.utils.mysql import Dataset, Contents, ContentChunks, ChatResult
|
|
|
|
+from applications.utils.spider.study import study
|
|
|
|
|
|
server_bp = Blueprint("api", __name__, url_prefix="/api")
|
|
server_bp = Blueprint("api", __name__, url_prefix="/api")
|
|
server_bp = cors(server_bp, allow_origin="*")
|
|
server_bp = cors(server_bp, allow_origin="*")
|
|
@@ -385,7 +386,6 @@ async def chat():
|
|
)
|
|
)
|
|
resource = get_resource_manager()
|
|
resource = get_resource_manager()
|
|
chat_result_mapper = ChatResult(resource.mysql_client)
|
|
chat_result_mapper = ChatResult(resource.mysql_client)
|
|
- resource = get_resource_manager()
|
|
|
|
dataset_mapper = Dataset(resource.mysql_client)
|
|
dataset_mapper = Dataset(resource.mysql_client)
|
|
for result in query_results:
|
|
for result in query_results:
|
|
datasets = await dataset_mapper.select_dataset_by_id(result["datasetId"])
|
|
datasets = await dataset_mapper.select_dataset_by_id(result["datasetId"])
|
|
@@ -395,20 +395,30 @@ async def chat():
|
|
|
|
|
|
rag_chat_agent = RAGChatAgent()
|
|
rag_chat_agent = RAGChatAgent()
|
|
chat_result = await rag_chat_agent.chat_with_deepseek(query_text, query_results)
|
|
chat_result = await rag_chat_agent.chat_with_deepseek(query_text, query_results)
|
|
|
|
+ if chat_result["status"] == 0:
|
|
|
|
+ study_res = study(query_text)
|
|
|
|
+ print(study_res)
|
|
llm_search = await rag_chat_agent.llm_search(query_text)
|
|
llm_search = await rag_chat_agent.llm_search(query_text)
|
|
decision = await rag_chat_agent.make_decision(chat_result, llm_search)
|
|
decision = await rag_chat_agent.make_decision(chat_result, llm_search)
|
|
- data = {"results": query_results, "chat_res": decision["result"]}
|
|
|
|
|
|
+ data = {
|
|
|
|
+ "results": query_results,
|
|
|
|
+ "chat_res": decision["result"],
|
|
|
|
+ "rag_summary": chat_result["summary"],
|
|
|
|
+ "llm_summary": llm_search["answer"],
|
|
|
|
+ }
|
|
await chat_result_mapper.insert_chat_result(
|
|
await chat_result_mapper.insert_chat_result(
|
|
query_text,
|
|
query_text,
|
|
dataset_id_strs,
|
|
dataset_id_strs,
|
|
- json.dumps(data, ensure_ascii=False),
|
|
|
|
|
|
+ json.dumps(query_results, ensure_ascii=False),
|
|
chat_result["summary"],
|
|
chat_result["summary"],
|
|
chat_result["relevance_score"],
|
|
chat_result["relevance_score"],
|
|
chat_result["status"],
|
|
chat_result["status"],
|
|
llm_search["answer"],
|
|
llm_search["answer"],
|
|
llm_search["source"],
|
|
llm_search["source"],
|
|
llm_search["status"],
|
|
llm_search["status"],
|
|
|
|
+ is_web=1,
|
|
)
|
|
)
|
|
|
|
+ # data = {"results": query_results, "chat_res": 'chat_res', 'rag_summary': 'rag_summary', 'llm_summary': 'llm_summary'}
|
|
return jsonify({"status_code": 200, "detail": "success", "data": data})
|
|
return jsonify({"status_code": 200, "detail": "success", "data": data})
|
|
|
|
|
|
|
|
|
|
@@ -502,6 +512,8 @@ async def rag_search():
|
|
chat_result_mapper = ChatResult(resource.mysql_client)
|
|
chat_result_mapper = ChatResult(resource.mysql_client)
|
|
rag_chat_agent = RAGChatAgent()
|
|
rag_chat_agent = RAGChatAgent()
|
|
chat_result = await rag_chat_agent.chat_with_deepseek(query_text, query_results)
|
|
chat_result = await rag_chat_agent.chat_with_deepseek(query_text, query_results)
|
|
|
|
+ if chat_result["status"] == 0:
|
|
|
|
+ study(query_text)
|
|
llm_search = await rag_chat_agent.llm_search(query_text)
|
|
llm_search = await rag_chat_agent.llm_search(query_text)
|
|
decision = await rag_chat_agent.make_decision(chat_result, llm_search)
|
|
decision = await rag_chat_agent.make_decision(chat_result, llm_search)
|
|
data = {
|
|
data = {
|
|
@@ -521,3 +533,25 @@ async def rag_search():
|
|
llm_search["status"],
|
|
llm_search["status"],
|
|
)
|
|
)
|
|
return jsonify({"status_code": 200, "detail": "success", "data": data})
|
|
return jsonify({"status_code": 200, "detail": "success", "data": data})
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+@server_bp.route("/chat/history", methods=["GET"])
|
|
|
|
+async def chat_history():
|
|
|
|
+ page_num = int(request.args.get("page", 1))
|
|
|
|
+ page_size = int(request.args.get("pageSize", 10))
|
|
|
|
+ resource = get_resource_manager()
|
|
|
|
+ chat_result_mapper = ChatResult(resource.mysql_client)
|
|
|
|
+ result = await chat_result_mapper.select_chat_results(page_num, page_size)
|
|
|
|
+ return jsonify(
|
|
|
|
+ {
|
|
|
|
+ "status_code": 200,
|
|
|
|
+ "detail": "success",
|
|
|
|
+ "data": {
|
|
|
|
+ "entities": result["entities"],
|
|
|
|
+ "total_count": result["total_count"],
|
|
|
|
+ "page": result["page"],
|
|
|
|
+ "page_size": result["page_size"],
|
|
|
|
+ "total_pages": result["total_pages"],
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+ )
|