| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | 
							- from typing import Optional
 
- from fastapi import FastAPI
 
- from concurrent.futures import ThreadPoolExecutor
 
- from sqlalchemy.sql.elements import Null
 
- from sqlalchemy.sql.expression import null
 
- from datetime import date
 
- import requests
 
- import uuid
 
- import os
 
- import uvicorn
 
- from asr_client import send_asr_request, send_task_request
 
- from database import insert, update, query, Task
 
- from datetime import datetime
 
- from fastapi.middleware.cors import CORSMiddleware
 
- import hashlib
 
- import traceback
 
- import json
 
- threadPool = ThreadPoolExecutor(max_workers=4)
 
- app = FastAPI()
 
- origins = [
 
-     "http://192.168.1.34",
 
-     "http://192.168.1.34:8000",
 
-     "http://192.168.1.105",
 
-     "http://192.168.1.105:3000",
 
-     "http://111.206.86.186",
 
-     "http://111.206.86.186:3000",
 
-     "http://adsp.tjyourong.com.cn",
 
-     "http://adsp.tjyourong.com.cn:3000",
 
-     "http://adsp.c-top.com.cn",
 
-     "http://adsp.c-top.com.cn:3000"
 
- ]
 
- app.add_middleware(
 
-     CORSMiddleware,
 
-     allow_origins=origins,
 
-     allow_credentials=True,
 
-     allow_methods=["*"],
 
-     allow_headers=["*"],
 
- )
 
- class QueryItem():
 
-     md5: Optional[str] = None
 
-     url: Optional[str] = None
 
- @app.get('/')
 
- def index():
 
-     return {'message': '你已经正确创建 FastApi 服务!'}
 
- @app.post('/asr/task/submit')
 
- def task_submit(md5: str, url: str):
 
-     json = send_asr_request(url)
 
-     task = Task(md5=md5, task_id=json.Data.TaskId, task_result=json.to_json_string(), task_status=1)
 
-     insert(task)
 
-     return {'code': 0, 'taskId': json.Data.TaskId}
 
- @app.post('/asr/task/result')
 
- def task_submit(task_id: int):
 
-     json = send_task_request(task_id)
 
-     task = query(None, None, task_id)[0]
 
-     task.task_status = json.Data.Status
 
-     task.task_result = json.to_json_string()
 
-     try:
 
-         if json.Data.Status == 2:
 
-             task.word_text = json.Data.ResultDetail[0].FinalSentence
 
-             task.word_split = json.Data.ResultDetail[0].SliceSentence
 
-     except:
 
-         # 提取原始文本内容和分词内容发生异常,把 task_status 置为 -1
 
-         task.task_status = -1
 
-     update(task)
 
-     return {'code': 0, 'status': json.Data.StatusStr}
 
- @app.post('/asr/task/list')
 
- def task_submit(task_status: int):
 
-     task = query(None, task_status, None)
 
-     return {'code': 0, 'data': task}
 
- # @app.post('/asr/task/result')
 
- # def retry(item:Item):
 
- #     #插入数据库
 
- #     task = query(item.taskId,None,None,None)[0]
 
- #     item.inputVideoUrl = task.input_video_url
 
- #     item.inputImageUrl = task.input_image_url
 
- #     threadPool.submit(videoSwap,item).add_done_callback(swapFinish)
 
- #     return {'code':0,'data':{'taskId': task.id}}
 
- # @app.post('/jeecg-boot/task/single')
 
- # def single(item:Item):
 
- #     #插入数据库
 
- #     old_task = query(None,item.videoMd5,item.imageMd5,None)
 
- #     if len(old_task) > 0:
 
- #         return {'code':-1,'data':old_task}
 
- #     uid = str(uuid.uuid4())
 
- #     suid = ''.join(uid.split('-'))
 
- #     video_input = item.inputVideoUrl
 
- #     image_input = item.inputImageUrl
 
- #     task = Task(input_video_url = video_input,input_image_url=image_input,status='waiting',input_video_md5=item.videoMd5,input_image_md5=item.imageMd5,create_by=item.createBy)
 
- #     task = insert(task)
 
- #     item.taskId = task.id
 
- #     threadPool.submit(videoSwap,item).add_done_callback(swapFinish)
 
- #     return {'code':0,'data':{'taskId': task.id}}
 
- if __name__ == '__main__':
 
-     uvicorn.run(app='main:app', host="0.0.0.0", port=31013, reload=True, debug=True)
 
- # gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker #线上启动命令
 
 
  |