-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
60 lines (48 loc) · 1.64 KB
/
main.py
File metadata and controls
60 lines (48 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
from fastapi import FastAPI
from api.dtool_howmanyface import DogFaceCounter
from api.dtool_facelearner import DogFaceLearner
from api.dtool_massiveclassifier import DogImageClassifier
from pydantic import BaseModel
from typing import List
app = FastAPI()
learner = DogFaceLearner()
counter = DogFaceCounter()
class ImgData(BaseModel):
fileId: int
url: str
class DogData(BaseModel):
dogId: int
faces: List[ImgData]
class ClassifyRequest(BaseModel):
dailyPictures: List[ImgData]
dogsData: List[DogData]
@app.post("/face/")
async def classify(request: ClassifyRequest):
print("\n\nsignal: API request received\n\n",request)
learner.processMultipleImages(request.dogsData)
classifier = DogImageClassifier()
return classifier.classifyImages(request.dailyPictures)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
'''
class FaceLearnerRequest(BaseModel):
dogsData: list[dict[str, str]]
class CountFacesRequest(BaseModel):
s3Link: str
class ClassifyImagesRequest(BaseModel):
s3Link: str
@app.post("/faceLearner/")
async def processImage(request: FaceLearnerRequest):
print("signal: API request received")
return learner.processMultipleImagesFromS3(request.dogsData)
@app.post("/countFaces/")
async def countFaces(request: CountFacesRequest):
print("signal: API request received")
return counter.countFacesInS3Directory(request.s3Link)
@app.post("/classifyImages/")
async def classifyImages(request: ClassifyImagesRequest):
classifier = DogImageClassifier()
print("signal: API request received")
return classifier.classifyImages(request.s3Link)
'''