minalee/mpnet-embedding-api
0
1from fastapi import FastAPI, HTTPException2from pydantic import BaseModel3from sentence_transformers import SentenceTransformer4import logging5 6app = FastAPI(title="MPNet Embedding API")7model = SentenceTransformer('paraphrase-multilingual-mpnet-base-v2') # ✅ FIXED HERE8logging.basicConfig(level=logging.INFO)9 10class Sentences(BaseModel):11 query: str12 13@app.get("/")14async def root():15 return {"message": "Welcome to MPNet Embedding API. Use /embed to get embeddings."}16 17@app.post("/embed")18async def get_embeddings(data: Sentences):19 try:20 if not data.query.strip():21 raise HTTPException(status_code=400, detail="Query text cannot be empty")22 embedding = model.encode([data.query], show_progress_bar=False)[0].tolist()23 return {"embedding": embedding}24 except Exception as e:25 logging.error(f"Error processing request: {str(e)}")26 raise HTTPException(status_code=500, detail=str(e))27 28if __name__ == "__main__":29 import uvicorn30 uvicorn.run(app, host="0.0.0.0", port=7860)31 