from typing import Optional from pydantic import BaseModel, Field from fastapi import FastAPI, HTTPException from contextlib import asynccontextmanager from starlette.responses import FileResponse class ConvertRequest(BaseModel): hf_model_name: str hf_token: Optional[str] = Field(None, description="Hugging Face token for private models") hf_push_repo: Optional[str] = Field(None, description="Hugging Face repo to push the converted model") @asynccontextmanager async def lifespan(app:FastAPI): yield app = FastAPI(title="Huggingface Safetensor Model Converter to AWQ", version="0.1.0", lifespan=lifespan) @app.get("/health") def read_root(): return {"status": "ok"} @app.post("/convert") def convert(request: ConvertRequest)->FileResponse: raise HTTPException(status_code=501, detail="Not Implemented yet") #return FileResponse(file_location, media_type='application/octet-stream',filename=file_name)