Spaces:
Runtime error
Runtime error
Commit
·
721783c
1
Parent(s):
ef05d9e
fix api internal error
Browse files- src/api.py +37 -24
- templates/index.html.jinja +6 -2
- templates/site_style/css/main.css +2 -0
src/api.py
CHANGED
@@ -8,76 +8,89 @@ from inference import inferenceAPI
|
|
8 |
from inference_t5 import inferenceAPI_t5
|
9 |
|
10 |
|
11 |
-
# ------ INFERENCE MODEL
|
12 |
# appel de la fonction inference, adaptee pour une entree txt
|
13 |
def summarize(text: str):
|
14 |
-
if choisir_modele.var ==
|
15 |
return " ".join(inferenceAPI(text))
|
16 |
elif choisir_modele.var == "fineTunedT5":
|
17 |
text = inferenceAPI_t5(text)
|
18 |
-
return re.sub("<extra_id_0> ","",text)
|
19 |
-
|
|
|
|
|
20 |
|
21 |
|
22 |
def choisir_modele(choixModele):
|
23 |
print("ON A RECUP LE CHOIX MODELE")
|
24 |
-
if choixModele == "lstm"
|
25 |
-
choisir_modele.var =
|
26 |
elif choixModele == "fineTunedT5":
|
27 |
choisir_modele.var = "fineTunedT5"
|
28 |
-
else :
|
29 |
-
"le modele n'est pas defini"
|
30 |
|
31 |
|
32 |
-
# -------- API
|
33 |
app = FastAPI()
|
34 |
|
35 |
# static files pour envoi du css au navigateur
|
36 |
templates = Jinja2Templates(directory="templates")
|
37 |
app.mount("/templates", StaticFiles(directory="templates"), name="templates")
|
38 |
|
|
|
39 |
@app.get("/")
|
40 |
async def index(request: Request):
|
41 |
-
return templates.TemplateResponse(
|
|
|
|
|
|
|
42 |
|
43 |
@app.get("/model")
|
44 |
-
async def
|
45 |
-
return templates.TemplateResponse(
|
|
|
|
|
|
|
46 |
|
47 |
@app.get("/predict")
|
48 |
-
async def
|
49 |
-
return templates.TemplateResponse(
|
|
|
|
|
50 |
|
51 |
|
52 |
@app.post("/model")
|
53 |
-
async def choix_model(request: Request, choixModel:str = Form(None)):
|
54 |
print(choixModel)
|
55 |
if not choixModel:
|
56 |
erreur_modele = "Merci de saisir un modèle."
|
57 |
return templates.TemplateResponse(
|
58 |
-
|
59 |
)
|
60 |
-
else
|
61 |
choisir_modele(choixModel)
|
62 |
print("C'est bon on utilise le modèle demandé")
|
63 |
return templates.TemplateResponse(
|
64 |
-
|
65 |
)
|
66 |
|
67 |
|
68 |
-
# retourner le texte, les predictions et message d'erreur si formulaire envoye
|
|
|
69 |
@app.post("/predict")
|
70 |
async def prediction(request: Request, text: str = Form(None)):
|
71 |
-
if not text
|
72 |
error = "Merci de saisir votre texte."
|
73 |
return templates.TemplateResponse(
|
74 |
-
|
75 |
-
|
76 |
-
else
|
77 |
summary = summarize(text)
|
78 |
return templates.TemplateResponse(
|
79 |
-
"index.html.jinja",
|
|
|
80 |
)
|
|
|
|
|
81 |
# ------------------------------------------------------------------------------------
|
82 |
|
83 |
|
|
|
8 |
from inference_t5 import inferenceAPI_t5
|
9 |
|
10 |
|
11 |
+
# ------ INFERENCE MODEL ------------------------------------------------------
|
12 |
# appel de la fonction inference, adaptee pour une entree txt
|
13 |
def summarize(text: str):
|
14 |
+
if choisir_modele.var == "lstm":
|
15 |
return " ".join(inferenceAPI(text))
|
16 |
elif choisir_modele.var == "fineTunedT5":
|
17 |
text = inferenceAPI_t5(text)
|
18 |
+
return re.sub("<extra_id_0> ", "", text)
|
19 |
+
|
20 |
+
|
21 |
+
# ----------------------------------------------------------------------------
|
22 |
|
23 |
|
24 |
def choisir_modele(choixModele):
|
25 |
print("ON A RECUP LE CHOIX MODELE")
|
26 |
+
if choixModele == "lstm":
|
27 |
+
choisir_modele.var = "lstm"
|
28 |
elif choixModele == "fineTunedT5":
|
29 |
choisir_modele.var = "fineTunedT5"
|
|
|
|
|
30 |
|
31 |
|
32 |
+
# -------- API ---------------------------------------------------------------
|
33 |
app = FastAPI()
|
34 |
|
35 |
# static files pour envoi du css au navigateur
|
36 |
templates = Jinja2Templates(directory="templates")
|
37 |
app.mount("/templates", StaticFiles(directory="templates"), name="templates")
|
38 |
|
39 |
+
|
40 |
@app.get("/")
|
41 |
async def index(request: Request):
|
42 |
+
return templates.TemplateResponse(
|
43 |
+
"index.html.jinja", {"request": request, "current_route": "/"}
|
44 |
+
)
|
45 |
+
|
46 |
|
47 |
@app.get("/model")
|
48 |
+
async def get_model(request: Request):
|
49 |
+
return templates.TemplateResponse(
|
50 |
+
"index.html.jinja", {"request": request, "current_route": "/model"}
|
51 |
+
)
|
52 |
+
|
53 |
|
54 |
@app.get("/predict")
|
55 |
+
async def get_prediction(request: Request):
|
56 |
+
return templates.TemplateResponse(
|
57 |
+
"index.html.jinja", {"request": request, "current_route": "/predict"}
|
58 |
+
)
|
59 |
|
60 |
|
61 |
@app.post("/model")
|
62 |
+
async def choix_model(request: Request, choixModel: str = Form(None)):
|
63 |
print(choixModel)
|
64 |
if not choixModel:
|
65 |
erreur_modele = "Merci de saisir un modèle."
|
66 |
return templates.TemplateResponse(
|
67 |
+
"index.html.jinja", {"request": request, "text": erreur_modele}
|
68 |
)
|
69 |
+
else:
|
70 |
choisir_modele(choixModel)
|
71 |
print("C'est bon on utilise le modèle demandé")
|
72 |
return templates.TemplateResponse(
|
73 |
+
"index.html.jinja", {"request": request}
|
74 |
)
|
75 |
|
76 |
|
77 |
+
# retourner le texte, les predictions et message d'erreur si formulaire envoye
|
78 |
+
# vide
|
79 |
@app.post("/predict")
|
80 |
async def prediction(request: Request, text: str = Form(None)):
|
81 |
+
if not text:
|
82 |
error = "Merci de saisir votre texte."
|
83 |
return templates.TemplateResponse(
|
84 |
+
"index.html.jinja", {"request": request, "text": error}
|
85 |
+
)
|
86 |
+
else:
|
87 |
summary = summarize(text)
|
88 |
return templates.TemplateResponse(
|
89 |
+
"index.html.jinja",
|
90 |
+
{"request": request, "text": text, "summary": summary},
|
91 |
)
|
92 |
+
|
93 |
+
|
94 |
# ------------------------------------------------------------------------------------
|
95 |
|
96 |
|
templates/index.html.jinja
CHANGED
@@ -49,7 +49,7 @@
|
|
49 |
<label for="selectModel">Choose a model :</label>
|
50 |
<select name="choixModel" class="selectModel" id="choixModel">
|
51 |
<option value="lstm">LSTM</option>
|
52 |
-
<option value="fineTunedT5">Fine-tuned T5</option>
|
53 |
</select>
|
54 |
</form>
|
55 |
<button form ="choixModel" class='search_bn' type="submit" class="btn btn-primary btn-block btn-large" rows="1" cols="50">Select model</button>
|
@@ -71,9 +71,13 @@
|
|
71 |
</table>
|
72 |
</div>
|
73 |
<div class="buttons">
|
74 |
-
|
|
|
|
|
|
|
75 |
<button form ="my_form" class='search_bn' type="submit" class="btn btn-primary btn-block btn-large" rows="1" cols="50">Go !</button>
|
76 |
<button form ="my_form" type="button" value="Reset" onclick="customReset();">Reset</button>
|
|
|
77 |
</div>
|
78 |
|
79 |
<div class="copyright">
|
|
|
49 |
<label for="selectModel">Choose a model :</label>
|
50 |
<select name="choixModel" class="selectModel" id="choixModel">
|
51 |
<option value="lstm">LSTM</option>
|
52 |
+
<option value="fineTunedT5" selected>Fine-tuned T5</option>
|
53 |
</select>
|
54 |
</form>
|
55 |
<button form ="choixModel" class='search_bn' type="submit" class="btn btn-primary btn-block btn-large" rows="1" cols="50">Select model</button>
|
|
|
71 |
</table>
|
72 |
</div>
|
73 |
<div class="buttons">
|
74 |
+
{% if current_route == "/" %}
|
75 |
+
<button>Merci de sélectionner un modèle</button>
|
76 |
+
{% else %}
|
77 |
+
<!-- <button id="submit" type="submit" onclick=submitBothForms()>SUBMIT</button> -->
|
78 |
<button form ="my_form" class='search_bn' type="submit" class="btn btn-primary btn-block btn-large" rows="1" cols="50">Go !</button>
|
79 |
<button form ="my_form" type="button" value="Reset" onclick="customReset();">Reset</button>
|
80 |
+
{% endif %}
|
81 |
</div>
|
82 |
|
83 |
<div class="copyright">
|
templates/site_style/css/main.css
CHANGED
@@ -246,6 +246,7 @@ textarea {
|
|
246 |
background: #3B353C;
|
247 |
}
|
248 |
|
|
|
249 |
/* Header */
|
250 |
|
251 |
#header {
|
@@ -469,4 +470,5 @@ textarea {
|
|
469 |
justify-content: center;
|
470 |
margin-top: 20px;
|
471 |
}
|
|
|
472 |
}
|
|
|
246 |
background: #3B353C;
|
247 |
}
|
248 |
|
249 |
+
|
250 |
/* Header */
|
251 |
|
252 |
#header {
|
|
|
470 |
justify-content: center;
|
471 |
margin-top: 20px;
|
472 |
}
|
473 |
+
|
474 |
}
|