Download app.py from adityapeopleplus/embedding_generator: direct link, hf CLI and curl.
- Browser
- Download file 1.29 kB
-
https://huggingface.co/spaces/adityapeopleplus/embedding_generator/resolve/main/app.py
- Command line
-
hf download hf://spaces/adityapeopleplus/embedding_generator/app.py
-
curl -L -o app.py https://huggingface.co/spaces/adityapeopleplus/embedding_generator/resolve/main/app.py
1.29 kB
| import os | |
| import uvicorn | |
| from fastapi import FastAPI, Request | |
| from sentence_transformers import SentenceTransformer, CrossEncoder | |
| app = FastAPI() | |
| embedding_model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2") | |
| reranker_model = CrossEncoder("BAAI/bge-reranker-large") | |
| def root(): | |
| return {"message": "Embedding & Reranker API is live!"} | |
| async def embed(request: Request): | |
| data = await request.json() | |
| text = data.get("text", "") | |
| if not text: | |
| return {"error": "Missing text"} | |
| embedding = embedding_model.encode(text).tolist() | |
| return {"embedding": embedding} | |
| async def rerank(request: Request): | |
| data = await request.json() | |
| query = data.get("query") | |
| docs = data.get("documents", []) | |
| if not query or not docs: | |
| return {"error": "Missing query or documents"} | |
| inputs = [[query, doc["content"]] for doc in docs] | |
| scores = reranker_model.predict(inputs) | |
| for doc, score in zip(docs, scores): | |
| doc["rerank_score"] = float(score) | |
| return {"documents": docs} | |
| async def health(): | |
| return {"status": "ok"} | |
| if __name__ == "__main__": | |
| port = int(os.environ.get("PORT", 10000)) | |
| uvicorn.run(app, host="0.0.0.0", port=port) |