Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Clark Lin
Fastapi for APEX
Compare Revisions
753bfe8e87baa5e77942adc934d18c6febdf34fa...4f0afe1e3683b8a92f74f6c51db95a97e74684df
Commits (3)
committed currnet version of fastapi-for-apex from prod
· 1204ec96
Clark Lin
authored
Aug 02, 2024
1204ec96
Merge branch 'development' of
https://linyinghao.cn/gitlab/clark/fastapi-for-apex
into development
· f2a08f6b
Clark Lin
authored
Aug 02, 2024
f2a08f6b
fixed issues for initial version
· 4f0afe1e
Clark Lin
authored
Aug 02, 2024
4f0afe1e
Hide whitespace changes
Inline
Side-by-side
.gitignore
0 → 100644
View file @
4f0afe1e
*.swp
.vscode/
__pycache__/
backup/
fastapi_service.py
logs/
nohup.out
qcloud/
tmp/
venv/
credential/credential.json
credential/oauth2.json
common/config/logging.json
View file @
4f0afe1e
{
{
"logging"
:
{
"logging"
:
{
"log_level"
:
"INFO"
,
"log_level"
:
"INFO"
,
"log_dir"
:
"./logs"
,
"log_dir"
:
"./logs"
,
"filename_template"
:
"%Y%m%d.log"
"filename_template"
:
"%Y%m%d.log"
}
}
}
}
credential/credential.json
→
credential/credential.json
.bk
View file @
4f0afe1e
{
{
"oss"
:
{
"oss": {
"<qcloud oss bucket name>"
:
{
"<qcloud oss bucket name>": {
"oss-program"
:
{
"oss-program": {
"secret_id"
:
"<qcloud oss secret_id>"
,
"secret_id": "<qcloud oss secret_id>",
"secret_key"
:
"<qcloud oss secret_key>"
,
"secret_key": "<qcloud oss secret_key>",
"description"
:
"object-storage-all"
"description": "object-storage-all"
}
}
}
}
},
},
"ocr"
:
{
"ocr": {
"ocr-program"
:
{
"ocr-program": {
"secret_id"
:
"<qcloud ocr secret_id>"
,
"secret_id": "<qcloud ocr secret_id>",
"secret_key"
:
"<qcloud ocr secret_key>"
,
"secret_key": "<qcloud ocr secret_key>",
"description"
:
"文字识别 (ocr)"
"description": "文字识别 (ocr)"
}
}
},
},
"asr"
:
{
"asr": {
"asr-program"
:
{
"asr-program": {
"app_id"
:
"<qcloud ASR app id>"
,
"app_id": "<qcloud ASR app id>",
"secret_id"
:
"<qcloud ASR secret_id>"
,
"secret_id": "<qcloud ASR secret_id>",
"secret_key"
:
"<qcloud ASR secret_key>"
,
"secret_key": "<qcloud ASR secret_key>",
"description"
:
"语音识别 (asr)"
"description": "语音识别 (asr)"
}
}
},
},
"paddle"
:
{
"paddle": {
"aliyun_ecs"
:
{
"aliyun_ecs": {
"base_url"
:
"https://xxx.xxx.xxx.xxx:xxxx"
,
"base_url": "https://xxx.xxx.xxx.xxx:xxxx",
"client_id"
:
"<OP fastapi client_id>"
,
"client_id": "<OP fastapi client_id>",
"client_secret"
:
"<OP fastapi client_secret>"
"client_secret": "<OP fastapi client_secret>"
},
},
"ctyun_ecs"
:
{
"ctyun_ecs": {
"base_url"
:
"https://xxx.xxx.xxx.xxx:xxxx"
,
"base_url": "https://xxx.xxx.xxx.xxx:xxxx",
"client_id"
:
"<OP fastapi client_id>"
,
"client_id": "<OP fastapi client_id>",
"client_secret"
:
"<OP fastapi client_secret>"
"client_secret": "<OP fastapi client_secret>"
}
}
},
},
"whisper"
:
{
"whisper": {
"aliyun_ecs"
:
{
"aliyun_ecs": {
"base_url"
:
"https://xxx.xxx.xxx.xxx:xxxx"
,
"base_url": "https://xxx.xxx.xxx.xxx:xxxx",
"client_id"
:
"<OP fastapi client_id>"
,
"client_id": "<OP fastapi client_id>",
"client_secret"
:
"<OP fastapi client_secret>"
"client_secret": "<OP fastapi client_secret>"
},
},
"ctyun_ecs"
:
{
"ctyun_ecs": {
"base_url"
:
"https://xxx.xxx.xxx.xxx:xxxx"
,
"base_url": "https://xxx.xxx.xxx.xxx:xxxx",
"client_id"
:
"<OP fastapi client_id>"
,
"client_id": "<OP fastapi client_id>",
"client_secret"
:
"<OP fastapi client_secret>"
"client_secret": "<OP fastapi client_secret>"
}
}
},
},
"gen-ai"
:
{
"gen-ai": {
"aliyun"
:{
"aliyun":{
"api_key"
:
"<Gen AI api_key>"
,
"api_key": "<Gen AI api_key>",
"description"
:
"Tongyi"
"description": "Tongyi"
}
}
}
}
}
}
credential/oauth2.json
→
credential/oauth2.json
.bk
View file @
4f0afe1e
File moved
fastapi_service.py
View file @
4f0afe1e
...
@@ -3,6 +3,9 @@ from fastapi import FastAPI, Query
...
@@ -3,6 +3,9 @@ from fastapi import FastAPI, Query
from
pydantic
import
BaseModel
from
pydantic
import
BaseModel
import
qcloud_cos_service
import
qcloud_cos_service
import
qcloud_ocr_service
import
qcloud_ocr_service
import
qcloud_asr_service
import
local_paddle_ocr_service
import
local_whisper_asr_service
import
tongyi_genai_service
import
tongyi_genai_service
from
fastapi.responses
import
StreamingResponse
from
fastapi.responses
import
StreamingResponse
...
@@ -87,12 +90,26 @@ async def get_download_url(file_download_req: qcloud_cos_service.file_download_r
...
@@ -87,12 +90,26 @@ async def get_download_url(file_download_req: qcloud_cos_service.file_download_r
@
app
.
post
(
"/get_detected_text/"
)
@
app
.
post
(
"/get_detected_text/"
)
async
def
get_detected_text
(
ocr_req
:
qcloud_ocr_service
.
ocr_req_basemodel
):
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
# Call Qcloud API
return
qcloud_ocr_service
.
get_
qcloud_
detected_text
(
ocr_req
)
return
qcloud_ocr_service
.
get_detected_text
(
ocr_req
)
elif
ocr_req
.
tool
==
'LP'
:
elif
ocr_req
.
ocr_
tool
==
'LP'
:
# Call Local PaddleOCR API
# 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
)
# ------------------------------------------------
# ------------------------------------------------
...
...
local_paddle_ocr_service.py
View file @
4f0afe1e
...
@@ -203,5 +203,3 @@ def get_detected_text(ocr_req: ocr_req_basemodel) -> tuple:
...
@@ -203,5 +203,3 @@ def get_detected_text(ocr_req: ocr_req_basemodel) -> tuple:
return
ocr_res
return
ocr_res
local_whisper_asr_service.py
View file @
4f0afe1e
...
@@ -203,5 +203,3 @@ def get_detected_text(asr_req: asr_req_basemodel) -> tuple:
...
@@ -203,5 +203,3 @@ def get_detected_text(asr_req: asr_req_basemodel) -> tuple:
return
asr_res
return
asr_res
qcloud_asr_service.py
View file @
4f0afe1e
...
@@ -172,4 +172,3 @@ def get_detected_text(asr_req: asr_req_basemodel) -> tuple:
...
@@ -172,4 +172,3 @@ def get_detected_text(asr_req: asr_req_basemodel) -> tuple:
asr_resp
.
result_message
=
str
(
e
)
asr_resp
.
result_message
=
str
(
e
)
return
asr_resp
return
asr_resp
qcloud_cos_service.py
View file @
4f0afe1e
...
@@ -278,4 +278,3 @@ def get_download_url(file_download_req: file_download_req_basemodel):
...
@@ -278,4 +278,3 @@ def get_download_url(file_download_req: file_download_req_basemodel):
return
file_download_res
return
file_download_res
qcloud_service.py
0 → 100644
View file @
4f0afe1e
# 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
tongyi_genai_service.py
View file @
4f0afe1e
...
@@ -335,3 +335,4 @@ async def get_answer(uuid: str):
...
@@ -335,3 +335,4 @@ async def get_answer(uuid: str):
result_message
=
str
(
e
)
result_message
=
str
(
e
)
lm
.
log
(
logging
.
ERROR
,
'Exception'
,
result_message
)
lm
.
log
(
logging
.
ERROR
,
'Exception'
,
result_message
)
yield
f
"data: Exception -
{
result_message
}
\n\n
"
yield
f
"data: Exception -
{
result_message
}
\n\n
"