Pulse-01 / app.py
Simonc-44's picture
Create app.py
8dc53b7 verified
Raw
History Blame Contribute Delete
1.18 kB
import os
from fastapi import FastAPI, Request
from sentence_transformers import SentenceTransformer
import uvicorn
# Configuration : Dossier de cache pour éviter les re-téléchargements inutiles
CACHE_DIR = "/tmp/model_cache"
os.makedirs(CACHE_DIR, exist_ok=True)
app = FastAPI()
# Chargement du modèle au démarrage du serveur
print("Chargement du modèle en cours...")
model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2', cache_folder=CACHE_DIR)
print("Modèle chargé avec succès.")
@app.post("/embed")
async def get_embedding(request: Request):
try:
data = await request.json()
text = data.get("text", "")
if not text:
return {"error": "Texte manquant"}
# Calcul de l'embedding
embedding = model.encode(text).tolist()
return {"embedding": embedding}
except Exception as e:
return {"error": str(e)}
@app.get("/health")
def health_check():
return {"status": "ok", "message": "Service embedding opérationnel"}
if __name__ == "__main__":
# Hugging Face Spaces utilise le port 7860 par défaut
uvicorn.run(app, host="0.0.0.0", port=7860)