ccdv commited on
Commit
981ca11
1 Parent(s): 4ab5a3c

update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -9
app.py CHANGED
@@ -174,7 +174,8 @@ model = LSGMBartForConditionalGeneration.from_pretrained(path, use_auth_token=au
174
  tokenizer = AutoTokenizer.from_pretrained(path, use_auth_token=auth_token)
175
  pipe = pipeline("text2text-generation", model=model, tokenizer=tokenizer)
176
 
177
- def sim(question, num_beams, text):
 
178
  prefix = "[Frais irrépétibles ; article 700]"
179
  q_type = int(question[0])
180
  num_beams = None if num_beams == 0 else num_beams
@@ -182,6 +183,11 @@ def sim(question, num_beams, text):
182
  question = "Qui sont les demandeurs initiaux (ceux qui assignent) ?"
183
  elif q_type == 1:
184
  question = "Qui sont les demandeurs, le résultat de chaque demande et les quanta obtenus?"
 
 
 
 
 
185
 
186
  text = prefix + " " + question + " <sep> " + text
187
  generated_text = pipe(
@@ -197,25 +203,38 @@ def sim(question, num_beams, text):
197
  generated_tokens = generated_text[0]["generated_token_ids"]
198
  tokens = generated_tokens.tolist()
199
  sentence = tokenizer.decode(tokens).replace("<s>", "").replace("</s>", "").strip()
200
-
201
- if q_type == 0:
202
- sentence = sentence.split("<liste>")
203
- return "Demandeurs initiaux :\n" + "\n".join(sentence)
204
- elif q_type == 1:
205
  demandes = sentence.split("<demande>")
206
  final_results = []
207
  for i, demande in enumerate(demandes):
208
  results = []
209
  elems = demande.split("<sep>")
210
- for prefix, elem in zip(["Demandeurs : \n", "Résultat : \n", "Montant obtenu : \n"], elems):
211
  results.append(prefix + "\n".join(elem.split("<liste>")))
212
  final_results.append("Demande " + str(i+1) + "\n\n" +"\n".join(results))
213
  return "\n\n".join(final_results)
214
 
 
 
 
 
 
 
 
 
215
  iface = gr.Interface(
216
  sim,
217
  inputs=[
218
- gr.Dropdown(["0: Demandeur initial", "1: Récapitulatif des demandes"], label="Information à générer", info="Succeptible de changer."),
 
 
 
 
 
 
219
  gr.Slider(label="Nombre de Beams", minimum=0, maximum=10, value=5, step=1),
220
  gr.Textbox(label= "Décision de justice", placeholder="Décision à traiter...", lines=25)
221
  ],
@@ -225,7 +244,7 @@ iface = gr.Interface(
225
  allow_flagging="auto",
226
  title="Extraction",
227
  description="Extrait les demandes relatives à l'article 700",
228
- examples=[["Récapitulatif des demandes", 5, example_1]],
229
  #live=True,
230
  )
231
  iface.launch()
 
174
  tokenizer = AutoTokenizer.from_pretrained(path, use_auth_token=auth_token)
175
  pipe = pipeline("text2text-generation", model=model, tokenizer=tokenizer)
176
 
177
+
178
+ def sim(question, X, num_beams, text):
179
  prefix = "[Frais irrépétibles ; article 700]"
180
  q_type = int(question[0])
181
  num_beams = None if num_beams == 0 else num_beams
 
183
  question = "Qui sont les demandeurs initiaux (ceux qui assignent) ?"
184
  elif q_type == 1:
185
  question = "Qui sont les demandeurs, le résultat de chaque demande et les quanta obtenus?"
186
+ elif q_type == 2:
187
+ if X == "":
188
+ return "Aucune partie renseignée."
189
+ prefix = "[Frais irrépétibles ; article 700" + X + "]"
190
+ question = "Combien a obtenu ce demandeur et quel est le résultat de sa demande ?"
191
 
192
  text = prefix + " " + question + " <sep> " + text
193
  generated_text = pipe(
 
203
  generated_tokens = generated_text[0]["generated_token_ids"]
204
  tokens = generated_tokens.tolist()
205
  sentence = tokenizer.decode(tokens).replace("<s>", "").replace("</s>", "").strip()
206
+
207
+
208
+ def process_inputs(sentence, labels):
209
+ labels = [i + " : \n" for i in labels]
 
210
  demandes = sentence.split("<demande>")
211
  final_results = []
212
  for i, demande in enumerate(demandes):
213
  results = []
214
  elems = demande.split("<sep>")
215
+ for prefix, elem in zip(labels, elems):
216
  results.append(prefix + "\n".join(elem.split("<liste>")))
217
  final_results.append("Demande " + str(i+1) + "\n\n" +"\n".join(results))
218
  return "\n\n".join(final_results)
219
 
220
+ if q_type == 0:
221
+ sentence = sentence.split("<liste>")
222
+ return "Demandeurs initiaux :\n" + "\n".join(sentence)
223
+ elif q_type == 1:
224
+ return process_inputs(sentence, ["Demandeurs", "Résultat", "Montant obtenu"])
225
+ elif q_type == 2:
226
+ return process_inputs(sentence, ["Montant obtenu", "Résultat"])
227
+
228
  iface = gr.Interface(
229
  sim,
230
  inputs=[
231
+ gr.Dropdown([
232
+ "0: Demandeur initial",
233
+ "1: Récapitulatif des demandes",
234
+ "2: Récapitulatif des demandes pour une partie"],
235
+ value="1: Récapitulatif des demandes",
236
+ label="Information à générer", info="Succeptible de changer."),
237
+ gr.Text(placeholder="Exemple: X..."),
238
  gr.Slider(label="Nombre de Beams", minimum=0, maximum=10, value=5, step=1),
239
  gr.Textbox(label= "Décision de justice", placeholder="Décision à traiter...", lines=25)
240
  ],
 
244
  allow_flagging="auto",
245
  title="Extraction",
246
  description="Extrait les demandes relatives à l'article 700",
247
+ examples=[["Récapitulatif des demandes", "", 5, example_1]],
248
  #live=True,
249
  )
250
  iface.launch()