from fastapi import FastAPI, Request from fastapi.middleware.cors import CORSMiddleware from sentence_transformers import SentenceTransformer import uvicorn # Initialize with root_path (MANDATORY FOR SPACES) app = FastAPI(root_path="/proxy") # 👈 THIS IS CRITICAL # CORS (required for Spaces) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) # Load model (simplified) model = SentenceTransformer('BAAI/bge-small-zh') @app.get("/") def home(): return { "message": "API is working!", "endpoints": { "embed": "POST /embed", "docs": "/docs" } } @app.post("/embed") async def embed_text(request: Request): data = await request.json() return { "embedding": model.encode(data['text']).tolist() } if __name__ == "__main__": uvicorn.run( app, host="0.0.0.0", port=7860, reload=False )