tosanoob's picture
First upload
aa25f09 verified
from fastapi import FastAPI, HTTPException
import random
from pydantic import BaseModel
from typing import List
from utils import decode_image
from mediapipe_preprocess import mediapipe_process
from model_predict import model_predict
import numpy as np
class Item(BaseModel):
text: str
number: int | None = None
class RecordFrames(BaseModel):
images: List[str]
app = FastAPI()
@app.get("/")
def return_hello():
return {"text":"Hello from server"}
@app.get("/random")
def return_random():
return {"random number":int(random.random()*1000)}
@app.post("/receive")
def return_received(item: Item):
return {"text":item.text,
"number":item.number}
@app.post("/predict")
def return_predict(record: RecordFrames):
if not record.images:
raise HTTPException(status_code=400, detail="No images provided")
frames = [np.array(decode_image(img)) for img in record.images]
keypoints = mediapipe_process(frames)
label = model_predict(keypoints)
return {"label":label}