uploaded site and api data
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
from fastapi import FastAPI, Request
|
||||
import uvicorn
|
||||
from starlette.middleware.cors import CORSMiddleware
|
||||
import pickle
|
||||
import numpy as np
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
origins = ["http://localhost"]
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=["*"],
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
)
|
||||
|
||||
model_dict = pickle.load(open("./model.p", "rb"))
|
||||
model = model_dict["model"]
|
||||
labels_dict = {0: "hello", 1: "i love you", 2: "yes", 3: "good", 4: "bad", 5: "okay", 6: "you", 7: "i/i'm", 8: "why", 9: "no"}
|
||||
|
||||
@app.get("/")
|
||||
async def read_root():
|
||||
return {"message": "Hello World"}
|
||||
|
||||
@app.post("/")
|
||||
async def process_json(request: Request):
|
||||
# Get the JSON data from the request
|
||||
data = await request.json()
|
||||
if len(data) == 0:
|
||||
return {"result": "no data"}
|
||||
hands_data = data
|
||||
data_aux = []
|
||||
|
||||
# hand landmarks are taken from data.json
|
||||
if len(hands_data) == 42:
|
||||
hand = hands_data[:21]
|
||||
else:
|
||||
hand = hands_data
|
||||
|
||||
for landmark in hand:
|
||||
x = landmark["x"]
|
||||
y = landmark["y"]
|
||||
data_aux.append(x)
|
||||
data_aux.append(y)
|
||||
|
||||
prediction = model.predict([np.asarray(data_aux)])
|
||||
predicted_sign = labels_dict[int(prediction[0])]
|
||||
print(predicted_sign)
|
||||
return {"result": predicted_sign}
|
||||
|
||||
if __name__ == "__main__":
|
||||
uvicorn.run(app, host="0.0.0.0", port=8000)
|
||||
Reference in New Issue
Block a user