Spaces:
Sleeping
Sleeping
from fastapi import FastAPI | |
from pydantic import BaseModel | |
from typing import Union | |
app = FastAPI() | |
class CalculatorInput(BaseModel): | |
num1: float | |
num2: float | |
operation: str | |
class CalculatorResponse(BaseModel): | |
result: float | |
operation: str | |
async def calculate(input_data: CalculatorInput): | |
result = 0.0 | |
if input_data.operation == "add": | |
result = input_data.num1 + input_data.num2 | |
elif input_data.operation == "subtract": | |
result = input_data.num1 - input_data.num2 | |
elif input_data.operation == "multiply": | |
result = input_data.num1 * input_data.num2 | |
elif input_data.operation == "divide": | |
if input_data.num2 == 0: | |
raise ValueError("Cannot divide by zero") | |
result = input_data.num1 / input_data.num2 | |
else: | |
raise ValueError("Invalid operation") | |
return CalculatorResponse(result=result, operation=input_data.operation) | |
if __name__ == "__main__": | |
import uvicorn | |
uvicorn.run(app, host="0.0.0.0", port=8000) |