maurya commited on
Commit
f1e34df
1 Parent(s): 7b86567

add multiple outputs and choice

Browse files
Files changed (1) hide show
  1. app.py +64 -18
app.py CHANGED
@@ -4,24 +4,49 @@ from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
4
  tokeniser = AutoTokenizer.from_pretrained("rbawden/CCASS-semi-auto-titrages-base")
5
  model = AutoModelForSeq2SeqLM.from_pretrained("rbawden/CCASS-semi-auto-titrages-base")
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  def reset_state():
8
  global memory_titres
9
  memory_titres = ""
10
- return memory_titres, memory_titres
 
11
 
12
- memory_titres = ""
13
 
14
  def generate_titre(matiere, sommaire):
15
  global memory_titres
16
- inp = [' '.join([matiere, memory_titres," <t> ", sommaire])]
17
  inputs = tokeniser(inp, return_tensors="pt")
18
- outputs = model.generate(inputs["input_ids"])
19
  res = tokeniser.batch_decode(
20
  outputs, skip_special_tokens=True, clean_up_tokenisation_spaces=True
21
  )
22
- if len(res[0]) > 0:
23
- memory_titres += f" <t> {res[0]}"
24
- return res[0], memory_titres
 
 
 
 
 
25
 
26
 
27
  pred_titre = ""
@@ -29,23 +54,44 @@ with gr.Blocks() as demo:
29
  with gr.Tab("Titrage"):
30
  input_matter = gr.Textbox(label="Matière")
31
  input_sommaire = gr.Textbox(label="Sommaire")
32
- output_titre = gr.Textbox(label="Titre prédit")
 
 
 
 
 
 
 
 
33
  output_all_titres = gr.Textbox(label="Ensemble des titres prédits")
34
  with gr.Row():
35
  pred_button = gr.Button("Prédiction du prochain titre")
36
  reset_button = gr.Button("Recommencer le titrage")
37
- gr.Examples([["SECURITE SOCIALE", "L'article R. 243-59 du code de la sécurité sociale n'exige pas que l'avis préalable qu'il prévoit mentionne le caractère concerté du contrôle. Dès lors, c'est à bon droit que la cour d'appel, sans encourir les griefs du moyen, a dit que la circonstance que l'avis préalable ne fasse pas mention que le contrôle s'inscrivait dans le cadre d'un contrôle concerté, décidé par l'Agence centrale des organismes de sécurité sociale, était sans incidence sur sa régularité (1er moyen). Aux termes de l'article L. 243-7-2 du code de la sécurité sociale, afin d'en restituer le véritable caractère, les organismes mentionnés aux articles L. 213-1 et L. 752-1 sont en droit d'écarter, comme ne leur étant pas opposables, les actes constitutifs d'un abus de droit, soit que ces actes aient un caractère fictif, soit que, recherchant le bénéfice d'une application littérale des textes à l'encontre des objectifs poursuivis par leurs auteurs, ils n'aient pu être inspirés par aucun autre motif que celui d'éluder ou d'atténuer les contributions et cotisations sociales d'origine légale ou conventionnelle auxquelles le cotisant est tenu au titre de la législation sociale ou que le cotisant, s'il n'avait pas passé ces actes, aurait normalement supportées, eu égard à sa situation ou à ses activités réelles. Lorsque l'organisme de sécurité sociale écarte un acte juridique dans les conditions ci-dessus, il se place nécessairement sur le terrain de l'abus de droit. Il en résulte qu'il doit se conformer à la procédure prévue par le texte précité et les articles R. 243-60-1 et R. 243-60-3 du code de la sécurité sociale et qu'à défaut de ce faire, les opérations de contrôle et celles, subséquentes, de recouvrement sont entachées de nullité. Viole ces textes, dans leur rédaction applicable au litige, la cour d'appel qui, alors qu'elle constatait que l'organisme de recouvrement avait écarté la convention litigieuse au motif qu'elle avait pour seul objet d'éluder le paiement des cotisations sociales, ce dont il résultait qu'il s'était implicitement placé sur le terrain de l'abus de droit pour opérer le redressement, n'a pas tiré les conséquences légales de ses constatations (2e moyen)"]], [input_matter, input_sommaire])
 
 
 
 
 
 
 
 
38
  matiere_and_titrage_prefix = [input_matter, input_sommaire]
39
- print(matiere_and_titrage_prefix)
40
-
41
- pred_button.click(fn=generate_titre, inputs=matiere_and_titrage_prefix, outputs=[output_titre, output_all_titres])
42
- reset_button.click(fn=reset_state, outputs=[output_titre, output_all_titres])
43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
 
45
 
46
- """
47
- gr.Interface(
48
- fn=generate_titre, inputs=matiere_and_titrage_prefix, outputs=output_text
49
- ).launch()
50
- """
51
  demo.launch()
 
4
  tokeniser = AutoTokenizer.from_pretrained("rbawden/CCASS-semi-auto-titrages-base")
5
  model = AutoModelForSeq2SeqLM.from_pretrained("rbawden/CCASS-semi-auto-titrages-base")
6
 
7
+ memory_titres = ""
8
+
9
+
10
+ def build_chain_titres(choice):
11
+ global memory_titres
12
+ if isinstance(choice, str):
13
+ radio_titres_button = gr.Radio.update(
14
+ choices=[
15
+ "En attente de prediction",
16
+ "En attente de prediction",
17
+ "En attente de prediction",
18
+ ],
19
+ interactive=False,
20
+ )
21
+ if len(choice) > 0:
22
+ memory_titres += f" <t> {choice}"
23
+ return radio_titres_button, memory_titres
24
+ return choice, memory_titres
25
+
26
+
27
  def reset_state():
28
  global memory_titres
29
  memory_titres = ""
30
+ radio_titres_button = gr.Radio.update(visible=False)
31
+ return radio_titres_button, memory_titres
32
 
 
33
 
34
  def generate_titre(matiere, sommaire):
35
  global memory_titres
36
+ inp = [" ".join([matiere, memory_titres, " <t> ", sommaire])]
37
  inputs = tokeniser(inp, return_tensors="pt")
38
+ outputs = model.generate(inputs["input_ids"], num_return_sequences=3)
39
  res = tokeniser.batch_decode(
40
  outputs, skip_special_tokens=True, clean_up_tokenisation_spaces=True
41
  )
42
+ radio_titres_button = gr.Radio.update(
43
+ choices=[res[0], res[1], res[2]],
44
+ value=None,
45
+ label="Quel est le titre le plus pertinent ?",
46
+ visible=True,
47
+ interactive=True,
48
+ )
49
+ return radio_titres_button
50
 
51
 
52
  pred_titre = ""
 
54
  with gr.Tab("Titrage"):
55
  input_matter = gr.Textbox(label="Matière")
56
  input_sommaire = gr.Textbox(label="Sommaire")
57
+ with gr.Row():
58
+ radio_titres_button = gr.Radio(
59
+ choices=[
60
+ "En attente de prediction",
61
+ "En attente de prediction",
62
+ "En attente de prediction",
63
+ ],
64
+ interactive=False,
65
+ )
66
  output_all_titres = gr.Textbox(label="Ensemble des titres prédits")
67
  with gr.Row():
68
  pred_button = gr.Button("Prédiction du prochain titre")
69
  reset_button = gr.Button("Recommencer le titrage")
70
+ gr.Examples(
71
+ [
72
+ [
73
+ "SECURITE SOCIALE",
74
+ "L'article R. 243-59 du code de la sécurité sociale n'exige pas que l'avis préalable qu'il prévoit mentionne le caractère concerté du contrôle. Dès lors, c'est à bon droit que la cour d'appel, sans encourir les griefs du moyen, a dit que la circonstance que l'avis préalable ne fasse pas mention que le contrôle s'inscrivait dans le cadre d'un contrôle concerté, décidé par l'Agence centrale des organismes de sécurité sociale, était sans incidence sur sa régularité (1er moyen). Aux termes de l'article L. 243-7-2 du code de la sécurité sociale, afin d'en restituer le véritable caractère, les organismes mentionnés aux articles L. 213-1 et L. 752-1 sont en droit d'écarter, comme ne leur étant pas opposables, les actes constitutifs d'un abus de droit, soit que ces actes aient un caractère fictif, soit que, recherchant le bénéfice d'une application littérale des textes à l'encontre des objectifs poursuivis par leurs auteurs, ils n'aient pu être inspirés par aucun autre motif que celui d'éluder ou d'atténuer les contributions et cotisations sociales d'origine légale ou conventionnelle auxquelles le cotisant est tenu au titre de la législation sociale ou que le cotisant, s'il n'avait pas passé ces actes, aurait normalement supportées, eu égard à sa situation ou à ses activités réelles. Lorsque l'organisme de sécurité sociale écarte un acte juridique dans les conditions ci-dessus, il se place nécessairement sur le terrain de l'abus de droit. Il en résulte qu'il doit se conformer à la procédure prévue par le texte précité et les articles R. 243-60-1 et R. 243-60-3 du code de la sécurité sociale et qu'à défaut de ce faire, les opérations de contrôle et celles, subséquentes, de recouvrement sont entachées de nullité. Viole ces textes, dans leur rédaction applicable au litige, la cour d'appel qui, alors qu'elle constatait que l'organisme de recouvrement avait écarté la convention litigieuse au motif qu'elle avait pour seul objet d'éluder le paiement des cotisations sociales, ce dont il résultait qu'il s'était implicitement placé sur le terrain de l'abus de droit pour opérer le redressement, n'a pas tiré les conséquences légales de ses constatations (2e moyen)",
75
+ ]
76
+ ],
77
+ [input_matter, input_sommaire],
78
+ )
79
  matiere_and_titrage_prefix = [input_matter, input_sommaire]
 
 
 
 
80
 
81
+ pred_button.click(
82
+ fn=generate_titre,
83
+ inputs=matiere_and_titrage_prefix,
84
+ outputs=[radio_titres_button],
85
+ )
86
+ radio_titres_button.change(
87
+ build_chain_titres,
88
+ radio_titres_button,
89
+ [radio_titres_button, output_all_titres],
90
+ )
91
+ reset_button.click(
92
+ fn=reset_state,
93
+ outputs=[radio_titres_button, output_all_titres],
94
+ )
95
 
96
 
 
 
 
 
 
97
  demo.launch()