Commits (3)
*.swp
.vscode/
__pycache__/
backup/
fastapi_service.py
logs/
nohup.out
qcloud/
tmp/
venv/
credential/credential.json
credential/oauth2.json
{
"logging": {
"log_level": "INFO",
"log_dir": "./logs",
"filename_template": "%Y%m%d.log"
"log_level": "INFO",
"log_dir": "./logs",
"filename_template": "%Y%m%d.log"
}
}
{
"oss": {
"<qcloud oss bucket name>": {
"oss-program": {
"secret_id": "<qcloud oss secret_id>",
"secret_key": "<qcloud oss secret_key>",
"description": "object-storage-all"
}
}
},
"ocr": {
"ocr-program": {
"secret_id": "<qcloud ocr secret_id>",
"secret_key": "<qcloud ocr secret_key>",
"description": "文字识别 (ocr)"
}
},
"asr": {
"asr-program": {
"app_id": "<qcloud ASR app id>",
"secret_id": "<qcloud ASR secret_id>",
"secret_key": "<qcloud ASR secret_key>",
"description": "语音识别 (asr)"
}
},
"paddle": {
"aliyun_ecs": {
"base_url": "https://xxx.xxx.xxx.xxx:xxxx",
"client_id": "<OP fastapi client_id>",
"client_secret": "<OP fastapi client_secret>"
},
"ctyun_ecs": {
"base_url": "https://xxx.xxx.xxx.xxx:xxxx",
"client_id": "<OP fastapi client_id>",
"client_secret": "<OP fastapi client_secret>"
}
},
"whisper": {
"aliyun_ecs": {
"base_url": "https://xxx.xxx.xxx.xxx:xxxx",
"client_id": "<OP fastapi client_id>",
"client_secret": "<OP fastapi client_secret>"
},
"ctyun_ecs": {
"base_url": "https://xxx.xxx.xxx.xxx:xxxx",
"client_id": "<OP fastapi client_id>",
"client_secret": "<OP fastapi client_secret>"
}
},
"gen-ai": {
"aliyun":{
"api_key": "<Gen AI api_key>",
"description": "Tongyi"
}
}
}
{
"oss": {
"<qcloud oss bucket name>": {
"oss-program": {
"secret_id": "<qcloud oss secret_id>",
"secret_key": "<qcloud oss secret_key>",
"description": "object-storage-all"
}
}
},
"ocr": {
"ocr-program": {
"secret_id": "<qcloud ocr secret_id>",
"secret_key": "<qcloud ocr secret_key>",
"description": "文字识别 (ocr)"
}
},
"asr": {
"asr-program": {
"app_id": "<qcloud ASR app id>",
"secret_id": "<qcloud ASR secret_id>",
"secret_key": "<qcloud ASR secret_key>",
"description": "语音识别 (asr)"
}
},
"paddle": {
"aliyun_ecs": {
"base_url": "https://xxx.xxx.xxx.xxx:xxxx",
"client_id": "<OP fastapi client_id>",
"client_secret": "<OP fastapi client_secret>"
},
"ctyun_ecs": {
"base_url": "https://xxx.xxx.xxx.xxx:xxxx",
"client_id": "<OP fastapi client_id>",
"client_secret": "<OP fastapi client_secret>"
}
},
"whisper": {
"aliyun_ecs": {
"base_url": "https://xxx.xxx.xxx.xxx:xxxx",
"client_id": "<OP fastapi client_id>",
"client_secret": "<OP fastapi client_secret>"
},
"ctyun_ecs": {
"base_url": "https://xxx.xxx.xxx.xxx:xxxx",
"client_id": "<OP fastapi client_id>",
"client_secret": "<OP fastapi client_secret>"
}
},
"gen-ai": {
"aliyun":{
"api_key": "<Gen AI api_key>",
"description": "Tongyi"
}
}
}
......@@ -3,6 +3,9 @@ from fastapi import FastAPI, Query
from pydantic import BaseModel
import qcloud_cos_service
import qcloud_ocr_service
import qcloud_asr_service
import local_paddle_ocr_service
import local_whisper_asr_service
import tongyi_genai_service
from fastapi.responses import StreamingResponse
......@@ -87,12 +90,26 @@ async def get_download_url(file_download_req: qcloud_cos_service.file_download_r
@app.post("/get_detected_text/")
async def get_detected_text(ocr_req: qcloud_ocr_service.ocr_req_basemodel):
if ocr_req.tool == 'Q':
if ocr_req.ocr_tool == 'Q':
# Call Qcloud API
return qcloud_ocr_service.get_qcloud_detected_text(ocr_req)
elif ocr_req.tool == 'LP':
return qcloud_ocr_service.get_detected_text(ocr_req)
elif ocr_req.ocr_tool == 'LP':
# Call Local PaddleOCR API
return qcloud_ocr_service.get_paddleocr_detected_text(ocr_req)
return local_paddle_ocr_service.get_detected_text(ocr_req)
# ------------------------------------------------
# Call ASR Service Process
# ------------------------------------------------
@app.post("/get_detected_asr_text/")
async def get_detected_text(asr_req: local_whisper_asr_service.asr_req_basemodel):
if asr_req.asr_tool == 'W':
# Call Local Whisper ASR API
return local_whisper_asr_service.get_detected_text(asr_req)
elif asr_req.asr_tool == 'Q':
# Call Qcloud ASR API
return qcloud_asr_service.get_detected_text(asr_req)
# ------------------------------------------------
......
......@@ -203,5 +203,3 @@ def get_detected_text(ocr_req: ocr_req_basemodel) -> tuple:
return ocr_res
......@@ -203,5 +203,3 @@ def get_detected_text(asr_req: asr_req_basemodel) -> tuple:
return asr_res
......@@ -172,4 +172,3 @@ def get_detected_text(asr_req: asr_req_basemodel) -> tuple:
asr_resp.result_message = str(e)
return asr_resp
......@@ -278,4 +278,3 @@ def get_download_url(file_download_req: file_download_req_basemodel):
return file_download_res
# Import FastAPI Libs
from fastapi import FastAPI
from pydantic import BaseModel
import qcloud_cos_service
import qcloud_ocr_service
# ------------------------------------------------
# Define FastAPI
# ------------------------------------------------
app = FastAPI()
# ------------------------------------------------
# Call File Upload Service Process
# ------------------------------------------------
@app.post("/upload/")
async def upload(file_uplaod_req: qcloud_cos_service.file_upload_req_basemodel):
return qcloud_cos_service.upload(file_uplaod_req)
# ------------------------------------------------
# Call File Download URL Service Process
# ------------------------------------------------
@app.post("/get_download_url/")
async def get_download_url(file_download_req: qcloud_cos_service.file_download_req_basemodel):
return qcloud_cos_service.get_download_url(file_download_req)
# ------------------------------------------------
# Call OCR Service Process
# ------------------------------------------------
@app.post("/get_detected_text/")
async def get_detected_text(ocr_req: qcloud_ocr_service.ocr_req_basemodel):
return qcloud_ocr_service.get_detected_text(ocr_req)
\ No newline at end of file
......@@ -335,3 +335,4 @@ async def get_answer(uuid: str):
result_message = str(e)
lm.log(logging.ERROR, 'Exception', result_message)
yield f"data: Exception - {result_message}\n\n"