File size: 1,754 Bytes
12d0de7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from fastapi import APIRouter , Depends
from helpers.configs import Settings , get_settings
from helpers.db import get_chroma
from fastapi.responses import FileResponse


base_router = APIRouter(
    prefix=f"/AutoProctor/{get_settings().APP_VARIENT}",
    tags=["AutoProctor_v1"]) 


@base_router.get("/") 
async def welcome(app_settings: Settings = Depends(get_settings)):
        return FileResponse('static/index.html')
        # app_name = app_settings.APP_NAME
        # app_varient=app_settings.APP_VARIENT
        # app_version = app_settings.APP_VERSION
        # return {"app_name": app_name, "app_version": app_version ,"app_varient":app_varient, "status": "healthy"}


@base_router.get('/config')
async def config(app_settings: Settings = Depends(get_settings)):
        return {
                'app_name': app_settings.APP_NAME,
                'app_version': app_settings.APP_VERSION,
                'app_variant': app_settings.APP_VARIENT,
                'detection_model': app_settings.DETECTION_MODEL,
                'yoloface_model_path': app_settings.YOLOFACE_MODEL_PATH,
                'chroma_db_path': app_settings.CHROMA_DB_PATH,
                'collection_name': app_settings.COLLECTION_NAME,
                'similarity_threshold': app_settings.SIMILARITY_THRESHOLD,
                'max_results': app_settings.MAX_RESULTS
        }


@base_router.get("/health") 
async def health(app_settings: Settings = Depends(get_settings)):
    app_name = app_settings.APP_NAME
    app_version = app_settings.APP_VERSION
    return {"app_name": app_name, "app_version": app_version , "status": "healthy"}


@base_router.get("/count")
def count_documents():
    _, collection = get_chroma()
    return {"documents": collection.count()}