EstelleSkwarto commited on
Commit
3c3e49f
1 Parent(s): c8fac43

fix api.py linked to css

Browse files
api.py CHANGED
@@ -2,34 +2,81 @@ import uvicorn
2
  from fastapi import FastAPI, Form, Request
3
  from fastapi.staticfiles import StaticFiles
4
  from fastapi.templating import Jinja2Templates
 
5
 
6
- from inference import inferenceAPI
 
7
 
8
 
9
- # ------ MODELE --------------------------------------------------------------
10
  # appel de la fonction inference, adaptee pour une entree txt
11
  def summarize(text: str):
12
- return " ".join(inferenceAPI(text))
 
 
 
 
13
 
14
 
15
- # ----------------------------------------------------------------------------------
16
 
17
 
18
- # -------- API ---------------------------------------------------------------------
 
 
 
 
 
 
 
 
19
  app = FastAPI()
20
 
21
  # static files pour envoi du css au navigateur
22
  templates = Jinja2Templates(directory="templates")
23
- app.mount("/", StaticFiles(directory="templates", html=True), name="templates")
24
 
25
 
26
  @app.get("/")
27
  async def index(request: Request):
28
- return templates.TemplateResponse("index.html.jinja", {"request": request})
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
 
30
 
31
- # retourner le texte, les predictions et message d'erreur si formulaire envoye vide
32
- @app.post("/")
 
33
  async def prediction(request: Request, text: str = Form(None)):
34
  if not text:
35
  error = "Merci de saisir votre texte."
@@ -39,7 +86,8 @@ async def prediction(request: Request, text: str = Form(None)):
39
  else:
40
  summary = summarize(text)
41
  return templates.TemplateResponse(
42
- "index.html.jinja", {"request": request, "text": text, "summary": summary}
 
43
  )
44
 
45
 
@@ -47,5 +95,5 @@ async def prediction(request: Request, text: str = Form(None)):
47
 
48
 
49
  # lancer le serveur et le recharger a chaque modification sauvegardee
50
- # if __name__ == "__main__":
51
- # uvicorn.run("api:app", port=8000, reload=True)
 
2
  from fastapi import FastAPI, Form, Request
3
  from fastapi.staticfiles import StaticFiles
4
  from fastapi.templating import Jinja2Templates
5
+ import re
6
 
7
+ from src.inference import inferenceAPI
8
+ from src.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."
 
86
  else:
87
  summary = summarize(text)
88
  return templates.TemplateResponse(
89
+ "index.html.jinja",
90
+ {"request": request, "text": text, "summary": summary},
91
  )
92
 
93
 
 
95
 
96
 
97
  # lancer le serveur et le recharger a chaque modification sauvegardee
98
+ if __name__ == "__main__":
99
+ uvicorn.run("api:app", port=8000, reload=True)
src/api.py DELETED
@@ -1,99 +0,0 @@
1
- import uvicorn
2
- from fastapi import FastAPI, Form, Request
3
- from fastapi.staticfiles import StaticFiles
4
- from fastapi.templating import Jinja2Templates
5
- import re
6
-
7
- from src.inference import inferenceAPI
8
- from src.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
-
97
- # lancer le serveur et le recharger a chaque modification sauvegardee
98
- # if __name__ == "__main__":
99
- # uvicorn.run("api:app", port=8000, reload=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/index.html.jinja CHANGED
@@ -4,7 +4,7 @@
4
  <title>Text summarization API</title>
5
  <meta charset="utf-8" />
6
  <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
7
- <link rel="stylesheet" href="{{ url_for('templates', path='templates/site_style/css/main.css') }}" />
8
  <script>
9
  function customReset()
10
  {
 
4
  <title>Text summarization API</title>
5
  <meta charset="utf-8" />
6
  <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
7
+ <link rel="stylesheet" href="{{ url_for('templates', path='/site_style/css/main.css') }}" />
8
  <script>
9
  function customReset()
10
  {
templates/site_style/css/main.css CHANGED
@@ -471,4 +471,7 @@ textarea {
471
  margin-top: 20px;
472
  }
473
 
 
 
 
474
  }
 
471
  margin-top: 20px;
472
  }
473
 
474
+ html body div form select[name="choixModel"] {
475
+ width: 150px;
476
+ }
477
  }