tengxunyun_server.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import hashlib
  2. from fastapi import APIRouter
  3. from routers.asr_client import send_asr_request, send_task_request
  4. from routers.database import insert, update, query, Task
  5. router = APIRouter(prefix='/asr/task',
  6. tags=['tengxunyun_script_server'])
  7. @router.post('/submit')
  8. def task_submit(signature: str, url: str):
  9. json = send_asr_request(url)
  10. task = Task(signature=signature, task_id=json.Data.TaskId, task_result=json.to_json_string(), task_status=1)
  11. insert(task)
  12. return {'code': 0, 'taskId': json.Data.TaskId}
  13. @router.post('/result')
  14. def task_submit(task_id: int):
  15. json = send_task_request(task_id)
  16. task = query(None, None, task_id)[0]
  17. task.task_status = json.Data.Status
  18. task.task_result = json.to_json_string()
  19. try:
  20. if json.Data.Status == 2:
  21. task.word_text = json.Data.ResultDetail[0].FinalSentence
  22. task.word_split = json.Data.ResultDetail[0].SliceSentence
  23. task.word_text_md5 = hashlib.md5(task.word_text.encode('utf-8')).hexdigest()
  24. except:
  25. # 提取原始文本内容和分词内容发生异常,把 task_status 置为 -1
  26. task.task_status = -1
  27. update(task)
  28. return {'code': 0, 'status': json.Data.StatusStr}
  29. @router.post('/list')
  30. def task_submit(task_status: int):
  31. task = query(None, task_status, None)
  32. return {'code': 0, 'data': task}