api_get_spoken_language.py 1.1 KB

123456789101112131415161718192021222324252627282930
  1. # -*- coding: utf-8 -*-
  2. from fastapi import FastAPI, Form, HTTPException, Request, status, APIRouter, Query, Path, UploadFile, File
  3. from tools.loglog import logger, log_err_e
  4. from spoken_language.soeexample import spoken_result, make_spoken
  5. from random import randint
  6. from core.respone_format import *
  7. router = APIRouter()
  8. @router.post("/spoken_language")
  9. async def post_article(request: Request, url=Form(""), file: UploadFile = File(None), text=Form(...)):
  10. if not url and not file:
  11. logger.error("错误:请上传mp3文件url参数或者二进制文件file参数")
  12. return resp_404(message="错误:请上传mp3文件url参数或者二进制文件file参数")
  13. try:
  14. task_id = randint(10000, 99999)
  15. if file:
  16. file_content = await file.read()
  17. else:
  18. file_content = None
  19. data: dict = make_spoken(task_id, url, file_content, text)
  20. if data:
  21. logger.success(f"完成spoken_language请求:{data}")
  22. return data
  23. except Exception as e:
  24. log_err_e(e, msg="口语评测接口")
  25. return resp_500(message=f"{type(e).__name__},{e}")