more efficient server
This commit is contained in:
+42
-48
@@ -19,7 +19,7 @@ import threading
|
|||||||
BUILD_PATH = "./build_models"
|
BUILD_PATH = "./build_models"
|
||||||
IMAGE_SIZE = 64
|
IMAGE_SIZE = 64
|
||||||
|
|
||||||
sem = threading.Semaphore(1) #adjust to performance
|
sem_ai = threading.Semaphore(1)
|
||||||
|
|
||||||
class bird_species(Enum):
|
class bird_species(Enum):
|
||||||
Common_Kingfisher = 0
|
Common_Kingfisher = 0
|
||||||
@@ -61,7 +61,7 @@ app.add_middleware(
|
|||||||
|
|
||||||
@app.post("/predict")
|
@app.post("/predict")
|
||||||
async def predict(file: UploadFile = File(...)):
|
async def predict(file: UploadFile = File(...)):
|
||||||
with sem:
|
with sem_ai:
|
||||||
image_bytes = await file.read()
|
image_bytes = await file.read()
|
||||||
|
|
||||||
image = Image.open(io.BytesIO(image_bytes)).convert("RGB")
|
image = Image.open(io.BytesIO(image_bytes)).convert("RGB")
|
||||||
@@ -92,65 +92,59 @@ class Review(BaseModel):
|
|||||||
text: str
|
text: str
|
||||||
date: str
|
date: str
|
||||||
|
|
||||||
|
sem_db = threading.Semaphore(1)
|
||||||
|
|
||||||
@app.get("/review")
|
@app.get("/review")
|
||||||
def get_reviews(auth=Depends(get_api_key)):
|
def get_reviews(auth=Depends(get_api_key)):
|
||||||
conn = sqlite3.connect("database/reviews.db")
|
with sem_db:
|
||||||
cur = conn.cursor()
|
conn = sqlite3.connect(
|
||||||
|
"database/reviews.db",
|
||||||
|
check_same_thread=False
|
||||||
|
)
|
||||||
|
cur = conn.cursor()
|
||||||
|
|
||||||
cur.execute("""
|
cur.execute("""
|
||||||
SELECT * FROM reviews;
|
SELECT * FROM reviews;
|
||||||
""")
|
""")
|
||||||
|
|
||||||
data = cur.fetchall()
|
data = cur.fetchall()
|
||||||
|
|
||||||
print(data)
|
print(data)
|
||||||
|
|
||||||
conn.commit()
|
conn.close()
|
||||||
conn.close()
|
return {"data": data}
|
||||||
return {"data": data}
|
|
||||||
|
|
||||||
@app.post("/review")
|
@app.post("/review")
|
||||||
def post_review(review: Review):
|
def post_review(review: Review):
|
||||||
conn = sqlite3.connect("database/reviews.db")
|
with sem_db:
|
||||||
cur = conn.cursor()
|
conn = sqlite3.connect(
|
||||||
|
"database/reviews.db",
|
||||||
|
check_same_thread=False
|
||||||
|
)
|
||||||
|
cur = conn.cursor()
|
||||||
|
|
||||||
cur.execute("""
|
cur.execute("""
|
||||||
INSERT INTO reviews (website, rating, text, created_at)
|
INSERT INTO reviews (website, rating, text, created_at)
|
||||||
VALUES (?, ?, ?, ?)
|
VALUES (?, ?, ?, ?)
|
||||||
""", (review.website, review.rating, review.text, review.date))
|
""", (review.website, review.rating, review.text, review.date))
|
||||||
|
|
||||||
conn.commit()
|
conn.commit()
|
||||||
conn.close()
|
conn.close()
|
||||||
return {"status": "ok"}
|
return {"status": "ok"}
|
||||||
|
|
||||||
@app.put("/review")
|
|
||||||
def put_review(auth=Depends(get_api_key)):
|
|
||||||
conn = sqlite3.connect("database/reviews.db")
|
|
||||||
cur = conn.cursor()
|
|
||||||
|
|
||||||
cur.execute("""
|
|
||||||
CREATE TABLE IF NOT EXISTS reviews (
|
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
||||||
website TEXT,
|
|
||||||
rating INTEGER,
|
|
||||||
text TEXT,
|
|
||||||
created_at TEXT
|
|
||||||
)
|
|
||||||
""")
|
|
||||||
|
|
||||||
conn.commit()
|
|
||||||
conn.close()
|
|
||||||
return {"status": "ok"}
|
|
||||||
|
|
||||||
@app.delete("/review")
|
@app.delete("/review")
|
||||||
def delete_review(auth=Depends(get_api_key)):
|
def delete_review(auth=Depends(get_api_key)):
|
||||||
conn = sqlite3.connect("database/reviews.db")
|
with sem_db:
|
||||||
cur = conn.cursor()
|
conn = sqlite3.connect(
|
||||||
|
"database/reviews.db",
|
||||||
|
check_same_thread=False
|
||||||
|
)
|
||||||
|
cur = conn.cursor()
|
||||||
|
|
||||||
cur.execute("""
|
cur.execute("""
|
||||||
DELETE FROM reviews;
|
DELETE FROM reviews;
|
||||||
""")
|
""")
|
||||||
|
|
||||||
conn.commit()
|
conn.commit()
|
||||||
conn.close()
|
conn.close()
|
||||||
return {"status": "ok"}
|
return {"status": "ok"}
|
||||||
Reference in New Issue
Block a user