DSatishchandra's picture
Update app.py
3a05540 verified
raw
history blame
1.31 kB
from fastapi import FastAPI
from pydantic import BaseModel
import uvicorn
app = FastAPI()
# Define the request body structure
class VendorLog(BaseModel):
work_logs: int
delay_logs: int
quality_logs: int
incident_logs: int
# Scoring logic
@app.post("/score")
async def calculate_score(logs: VendorLog):
# Simple scoring logic (you can customize this)
quality_score = (logs.quality_logs / (logs.work_logs + 1)) * 100
timeliness_score = (1 - logs.delay_logs / (logs.work_logs + 1)) * 100
safety_score = (1 - logs.incident_logs / (logs.work_logs + 1)) * 100
communication_score = 50 # Placeholder, adjust based on your logic
# Final score (average of individual scores)
final_score = (quality_score + timeliness_score + safety_score + communication_score) / 4
# Alert flag logic (example: flag if final score < 50)
alert_flag = final_score < 50
return {
"final_score": round(final_score, 2),
"alert_flag": alert_flag,
"quality_score": round(quality_score, 2),
"timeliness_score": round(timeliness_score, 2),
"safety_score": round(safety_score, 2),
"communication_score": round(communication_score, 2)
}
# Run the server
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8080)