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
Commits
4f0afe1e
Commit
4f0afe1e
authored
Aug 02, 2024
by
Clark Lin
Browse files
fixed issues for initial version
parent
f2a08f6b
Changes
5
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
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
)
# ------------------------------------------------
# ------------------------------------------------
...
...
tongyi_genai_service.py
View file @
4f0afe1e
# Import FastAPI Libs
# Import FastAPI Libs
from
pydantic
import
BaseModel
from
pydantic
import
BaseModel
<<<<<<<
HEAD
=======
import
fastapi_security_util
import
fastapi_security_util
from
jose
import
JWTError
,
jwt
from
jose
import
JWTError
,
jwt
from
fastapi
import
HTTPException
,
status
from
fastapi
import
HTTPException
,
status
>>>>>>>
753
bfe8e87baa5e77942adc934d18c6febdf34fa
# Import Dashscope Service Libs
# Import Dashscope Service Libs
from
http
import
HTTPStatus
from
http
import
HTTPStatus
...
@@ -14,11 +11,8 @@ from dashscope.api_entities.dashscope_response import Role
...
@@ -14,11 +11,8 @@ from dashscope.api_entities.dashscope_response import Role
import
dashscope
import
dashscope
import
json
import
json
import
os
import
os
<<<<<<<
HEAD
=======
import
asyncio
import
asyncio
import
uuid
import
uuid
>>>>>>>
753
bfe8e87baa5e77942adc934d18c6febdf34fa
# Import your custom logging manager
# Import your custom logging manager
import
logging
import
logging
...
@@ -92,10 +86,7 @@ class send_message_res_basemodel(BaseModel):
...
@@ -92,10 +86,7 @@ class send_message_res_basemodel(BaseModel):
result
:
int
result
:
int
result_message
:
str
result_message
:
str
message_res
:
str
message_res
:
str
<<<<<<<
HEAD
=======
uuid
:
str
uuid
:
str
>>>>>>>
753
bfe8e87baa5e77942adc934d18c6febdf34fa
# ------------------------------------------------
# ------------------------------------------------
...
@@ -123,11 +114,7 @@ def send_message(messages_req: send_message_req_basemodel) -> send_message_res_b
...
@@ -123,11 +114,7 @@ def send_message(messages_req: send_message_req_basemodel) -> send_message_res_b
dashscope
.
api_key
=
api_key
dashscope
.
api_key
=
api_key
# Set system prompt
# Set system prompt
<<<<<<<
HEAD
messages
=
[{
'role'
:
Role
.
SYSTEM
,
'content'
:
'You are a helpful assistant.'
}]
=======
messages
=
[{
'role'
:
Role
.
SYSTEM
,
'content'
:
'You are a helpful assistant. If you are not sure the answer, please don''t reply with wrong answer.'
}]
messages
=
[{
'role'
:
Role
.
SYSTEM
,
'content'
:
'You are a helpful assistant. If you are not sure the answer, please don''t reply with wrong answer.'
}]
>>>>>>>
753
bfe8e87baa5e77942adc934d18c6febdf34fa
# Loop input message list
# Loop input message list
for
message
in
messages_req
.
messages
:
for
message
in
messages_req
.
messages
:
...
@@ -147,13 +134,6 @@ def send_message(messages_req: send_message_req_basemodel) -> send_message_res_b
...
@@ -147,13 +134,6 @@ def send_message(messages_req: send_message_req_basemodel) -> send_message_res_b
model
=
Generation
.
Models
.
qwen_plus
model
=
Generation
.
Models
.
qwen_plus
# Use SDK to get answer
# Use SDK to get answer
<<<<<<<
HEAD
response
=
Generation
.
call
(
model
,
# Generation.Models.qwen_turbo,
messages
=
messages
,
result_format
=
'message'
,
# set the result to be 'message' format.
)
=======
responses
=
Generation
.
call
(
responses
=
Generation
.
call
(
model
,
# Generation.Models.qwen_turbo,
model
,
# Generation.Models.qwen_turbo,
messages
=
messages
,
messages
=
messages
,
...
@@ -174,7 +154,6 @@ def send_message(messages_req: send_message_req_basemodel) -> send_message_res_b
...
@@ -174,7 +154,6 @@ def send_message(messages_req: send_message_req_basemodel) -> send_message_res_b
# response.code, response.message
# response.code, response.message
# ))
# ))
>>>>>>>
753
bfe8e87baa5e77942adc934d18c6febdf34fa
if
response
.
status_code
==
HTTPStatus
.
OK
:
if
response
.
status_code
==
HTTPStatus
.
OK
:
lm
.
log
(
logging
.
INFO
,
curr_module
,
'Normal response'
,
str
(
response
))
lm
.
log
(
logging
.
INFO
,
curr_module
,
'Normal response'
,
str
(
response
))
...
@@ -212,8 +191,6 @@ def send_message(messages_req: send_message_req_basemodel) -> send_message_res_b
...
@@ -212,8 +191,6 @@ def send_message(messages_req: send_message_req_basemodel) -> send_message_res_b
return
send_message_res
return
send_message_res
<<<<<<<
HEAD
=======
# ------------------------------------------------
# ------------------------------------------------
# Function to store question (async)
# Function to store question (async)
...
@@ -358,4 +335,4 @@ async def get_answer(uuid: str):
...
@@ -358,4 +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
"
>>>>>>>
753
bfe8e87baa5e77942adc934d18c6febdf34fa
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment