Simonc-44 commited on
Commit
8dc53b7
·
verified ·
1 Parent(s): 904fa63

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -0
app.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from fastapi import FastAPI, Request
3
+ from sentence_transformers import SentenceTransformer
4
+ import uvicorn
5
+
6
+ # Configuration : Dossier de cache pour éviter les re-téléchargements inutiles
7
+ CACHE_DIR = "/tmp/model_cache"
8
+ os.makedirs(CACHE_DIR, exist_ok=True)
9
+
10
+ app = FastAPI()
11
+
12
+ # Chargement du modèle au démarrage du serveur
13
+ print("Chargement du modèle en cours...")
14
+ model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2', cache_folder=CACHE_DIR)
15
+ print("Modèle chargé avec succès.")
16
+
17
+ @app.post("/embed")
18
+ async def get_embedding(request: Request):
19
+ try:
20
+ data = await request.json()
21
+ text = data.get("text", "")
22
+
23
+ if not text:
24
+ return {"error": "Texte manquant"}
25
+
26
+ # Calcul de l'embedding
27
+ embedding = model.encode(text).tolist()
28
+ return {"embedding": embedding}
29
+
30
+ except Exception as e:
31
+ return {"error": str(e)}
32
+
33
+ @app.get("/health")
34
+ def health_check():
35
+ return {"status": "ok", "message": "Service embedding opérationnel"}
36
+
37
+ if __name__ == "__main__":
38
+ # Hugging Face Spaces utilise le port 7860 par défaut
39
+ uvicorn.run(app, host="0.0.0.0", port=7860)