|
|
@@ -4,18 +4,21 @@ import uuid
|
|
|
from fastapi import FastAPI, HTTPException, Request
|
|
|
from fastapi.responses import JSONResponse
|
|
|
from pydantic import BaseModel
|
|
|
-from utils.params import TaskStatusParam, DecodeListParam,EvaluateListParam,EvaluateStatusParam
|
|
|
+from utils.params import TaskStatusParam, DecodeListParam,TopicListParam,EvaluateListParam,EvaluateStatusParam,DecodeWorkflowParam
|
|
|
from dotenv import load_dotenv, find_dotenv
|
|
|
|
|
|
|
|
|
from decode_task.decodeTask import get_decode_result_by_id as get_decode_result_by_id_db
|
|
|
from decode_task.evaluateTask import get_evaluate_result_by_id as get_evaluate_result_by_id_db
|
|
|
+from decode_task.topicTask import get_topic_result_by_id as get_topic_result_by_id_db
|
|
|
+from decode_task.topicTask import update_topic_result_by_id as update_topic_result_by_id_db
|
|
|
|
|
|
|
|
|
|
|
|
from typing import List
|
|
|
from models.decode_record import DecodeRecord
|
|
|
from models.evaluate_record import EvaluateRecord
|
|
|
+from models.decode_workflow import DecodeWorkflow
|
|
|
|
|
|
from task_schedule import TaskScheduler
|
|
|
|
|
|
@@ -43,8 +46,88 @@ def startup_event():
|
|
|
|
|
|
|
|
|
|
|
|
+@app.post("/decodeWorkflow/create")
|
|
|
+def decode_topic(param:TopicListParam):
|
|
|
+ video_list = param.video_list
|
|
|
+ logger.info(f"数据池数据 = {video_list}")
|
|
|
+ data_list = []
|
|
|
+ for video in video_list:
|
|
|
+ video_id = video.channel_content_id
|
|
|
+ video_url = video.video
|
|
|
+ video_title = video.title
|
|
|
+ task_id = str(uuid.uuid4())
|
|
|
+ DecodeWorkflow(
|
|
|
+ task_id=task_id,
|
|
|
+ video_id=video_id,
|
|
|
+ video_url=video_url,
|
|
|
+ title=video_title,
|
|
|
+ type=param.type,
|
|
|
+ result=None,
|
|
|
+ task_status = 0
|
|
|
+ ).save()
|
|
|
+ data_list.append({
|
|
|
+ "task_id": task_id,
|
|
|
+ "video_id": video_id,
|
|
|
+ "video_url": video_url,
|
|
|
+ "title": video_title,
|
|
|
+
|
|
|
+ })
|
|
|
+ return {
|
|
|
+ "code": 0,
|
|
|
+ "message": "success",
|
|
|
+ "data":{
|
|
|
+ "type": param.type,
|
|
|
+ "tasks": data_list
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+@app.post("/decodeWorkflow/update")
|
|
|
+def update_topic_result(param: DecodeWorkflowParam):
|
|
|
+ db_res = update_topic_result_by_id_db(param)
|
|
|
+ logger.info(f"\n查询结构结果的task_id = {param.task_id}")
|
|
|
+
|
|
|
+ if not db_res:
|
|
|
+ return {
|
|
|
+ "code": -1,
|
|
|
+ "message": '任务不存在',
|
|
|
+ "data": None
|
|
|
+ }
|
|
|
+ result, status,error_reason,video_url,title = db_res
|
|
|
+ return {
|
|
|
+ "code": 0,
|
|
|
+ "message": status == 2 and "success" or error_reason,
|
|
|
+ "data": {
|
|
|
+ "result": result,
|
|
|
+ "status": status,
|
|
|
+ "error":error_reason,
|
|
|
+ "video_url":video_url,
|
|
|
+ "title":title,
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+@app.post("/decodeWorkflow/result")
|
|
|
+def get_topic_result(param: TaskStatusParam):
|
|
|
+ db_res = get_topic_result_by_id_db(param.task_id)
|
|
|
+ logger.info(f"\n查询结构结果的task_id = {param.task_id}")
|
|
|
+
|
|
|
+ if not db_res:
|
|
|
+ return {
|
|
|
+ "code": -1,
|
|
|
+ "message": '任务不存在',
|
|
|
+ "data": None
|
|
|
+ }
|
|
|
+ result, status,error_reason = db_res
|
|
|
+ return {
|
|
|
+ "code": 0,
|
|
|
+ "message": status == 2 and "success" or error_reason,
|
|
|
+ "data": {
|
|
|
+ "result": result,
|
|
|
+ "status": status,
|
|
|
+ "error":error_reason,
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
@app.post("/decodeVideo/create")
|
|
|
@@ -73,9 +156,6 @@ def decode_video(param:DecodeListParam):
|
|
|
"data": data_list
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
@app.post("/decode/result")
|
|
|
def get_decode_result(param: TaskStatusParam):
|
|
|
db_res = get_decode_result_by_id_db(param.task_id)
|
|
|
@@ -99,7 +179,6 @@ def get_decode_result(param: TaskStatusParam):
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
@app.post("/evaluate/create")
|
|
|
def evaluate_video(param:EvaluateListParam):
|
|
|
|