mirror of
https://github.com/sml2h3/ocr_api_server.git
synced 2025-05-03 17:01:54 +08:00
修复一些小问题 并 修复了Dockerfile
This commit is contained in:
parent
f9e3624eff
commit
0bcd3bb2a1
@ -14,4 +14,4 @@ RUN pip install --no-cache-dir -r requirements.txt
|
||||
EXPOSE 8000
|
||||
|
||||
# 运行应用
|
||||
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
CMD ["python", "app/main.py"]
|
11
app/main.py
11
app/main.py
@ -9,11 +9,9 @@ app = FastAPI()
|
||||
|
||||
from starlette.datastructures import UploadFile as StarletteUploadFile
|
||||
|
||||
|
||||
async def decode_image(image: Union[UploadFile, StarletteUploadFile, str, None]) -> bytes:
|
||||
if image is None:
|
||||
raise HTTPException(status_code=400, detail="No image provided")
|
||||
|
||||
if isinstance(image, (UploadFile, StarletteUploadFile)):
|
||||
return await image.read()
|
||||
elif isinstance(image, str):
|
||||
@ -38,9 +36,8 @@ async def ocr_endpoint(
|
||||
png_fix: bool = Form(False)
|
||||
):
|
||||
try:
|
||||
if file.size == 0 and image is None:
|
||||
if file is None and image is None:
|
||||
return APIResponse(code=400, message="Either file or image must be provided")
|
||||
|
||||
image_bytes = await decode_image(file or image)
|
||||
result = ocr_service.ocr_classification(image_bytes, probability, charsets, png_fix)
|
||||
return APIResponse(code=200, message="Success", data=result)
|
||||
@ -57,7 +54,7 @@ async def slide_match_endpoint(
|
||||
simple_target: bool = Form(False)
|
||||
):
|
||||
try:
|
||||
if (background is None and target is None) or (background_file.size == 0 and target_file.size == 0):
|
||||
if (target_file is None and target is None) or (background_file is None and background is None):
|
||||
return APIResponse(code=400, message="Both target and background must be provided")
|
||||
|
||||
target_bytes = await decode_image(target_file or target)
|
||||
@ -74,7 +71,7 @@ async def detection_endpoint(
|
||||
image: Optional[str] = Form(None)
|
||||
):
|
||||
try:
|
||||
if file.size == 0 and image is None:
|
||||
if file is None and image is None:
|
||||
return APIResponse(code=400, message="Either file or image must be provided")
|
||||
|
||||
image_bytes = await decode_image(file or image)
|
||||
@ -85,4 +82,4 @@ async def detection_endpoint(
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
uvicorn.run(app, host="0.0.0.0", port=8000)
|
||||
uvicorn.run(app, host="0.0.0.0", port=8000)
|
Loading…
Reference in New Issue
Block a user