EstelleSkwarto commited on
Commit
721783c
1 Parent(s): ef05d9e

fix api internal error

Browse files
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 == '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
  def choisir_modele(choixModele):
23
  print("ON A RECUP LE CHOIX MODELE")
24
- if choixModele == "lstm" :
25
- choisir_modele.var ='lstm'
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("index.html.jinja", {"request": request})
 
 
 
42
 
43
  @app.get("/model")
44
- async def index(request: Request):
45
- return templates.TemplateResponse("index.html.jinja", {"request": request})
 
 
 
46
 
47
  @app.get("/predict")
48
- async def index(request: Request):
49
- return templates.TemplateResponse("index.html.jinja", {"request": request})
 
 
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
- "index.html.jinja", {"request": request, "text": erreur_modele}
59
  )
60
- else :
61
  choisir_modele(choixModel)
62
  print("C'est bon on utilise le modèle demandé")
63
  return templates.TemplateResponse(
64
- "index.html.jinja", {"request": request}
65
  )
66
 
67
 
68
- # retourner le texte, les predictions et message d'erreur si formulaire envoye vide
 
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
- "index.html.jinja", {"request": request, "text": error}
75
- )
76
- else :
77
  summary = summarize(text)
78
  return templates.TemplateResponse(
79
- "index.html.jinja", {"request": request, "text": text, "summary": summary}
 
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
- <!-- <button id="submit" type="submit" onclick=submitBothForms()>SUBMIT</button> -->
 
 
 
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
  }