jedick commited on
Commit
00c763e
·
1 Parent(s): ef0d090

Revert to all caps for label coding

Browse files
Files changed (1) hide show
  1. app.py +22 -17
app.py CHANGED
@@ -54,15 +54,15 @@ def prediction_to_df(prediction=None):
54
  """
55
  if prediction is None or prediction == "":
56
  # Show an empty plot for app initialization or auto-reload
57
- prediction = {"Support": 0, "NEI": 0, "Refute": 0}
58
  elif "Model" in prediction:
59
  # Show full-height bars when the model is changed
60
- prediction = {"Support": 1, "NEI": 1, "Refute": 1}
61
  else:
62
  # Convert predictions text to dictionary
63
  prediction = eval(prediction)
64
  # Use custom order for labels (pipe() returns labels in descending order of softmax score)
65
- labels = ["Support", "NEI", "Refute"]
66
  prediction = {k: prediction[k] for k in labels}
67
  # Convert dictionary to DataFrame with one column (Probability)
68
  df = pd.DataFrame.from_dict(prediction, orient="index", columns=["Probability"])
@@ -93,7 +93,7 @@ with gr.Blocks(theme=my_theme, css=custom_css, head=font_awesome_html) as demo:
93
  with gr.Column(scale=3):
94
  with gr.Row():
95
  gr.Markdown("# AI4citations")
96
- gr.Markdown("## *AI-powered scientific citation verification*")
97
  claim = gr.Textbox(
98
  label="Claim",
99
  info="aka hypothesis",
@@ -131,20 +131,23 @@ with gr.Blocks(theme=my_theme, css=custom_css, head=font_awesome_html) as demo:
131
  x="Class",
132
  y="Probability",
133
  color="Class",
134
- color_map={"Support": "green", "NEI": "#888888", "Refute": "#FF8888"},
135
  inputs=prediction,
136
  y_lim=([0, 1]),
137
  visible=False,
138
  )
139
- label = gr.Label(label="Results")
140
  with gr.Accordion("Feedback"):
141
  gr.Markdown(
142
- "*Click on the correct label to help improve this app*<br>**NOTE:** The claim and evidence will also be saved"
143
  ),
144
  with gr.Row():
145
  flag_support = gr.Button("Support")
146
  flag_nei = gr.Button("NEI")
147
  flag_refute = gr.Button("Refute")
 
 
 
148
  with gr.Accordion("Examples"):
149
  gr.Markdown("*Examples are run when clicked*"),
150
  with gr.Row():
@@ -197,12 +200,12 @@ with gr.Blocks(theme=my_theme, css=custom_css, head=font_awesome_html) as demo:
197
  with gr.Column(scale=2):
198
  gr.Markdown(
199
  """
200
- ### To make predictions:
201
 
202
  - Hit 'Enter' in the **Claim** text box OR
203
  - Hit 'Shift-Enter' in the **Evidence** text box
204
 
205
- _Predictions are also made after clicking **Get Evidence**_
206
  """
207
  )
208
 
@@ -220,7 +223,9 @@ with gr.Blocks(theme=my_theme, css=custom_css, head=font_awesome_html) as demo:
220
  value=MODEL_NAME,
221
  label="Model",
222
  )
223
- radio = gr.Radio(["label", "barplot"], value="label", label="Results")
 
 
224
  with gr.Accordion("Sources", open=False, elem_classes=["center_content"]):
225
  gr.Markdown(
226
  """
@@ -247,8 +252,8 @@ with gr.Blocks(theme=my_theme, css=custom_css, head=font_awesome_html) as demo:
247
  """
248
  #### *Other sources*
249
  - <i class="fa-brands fa-github"></i> [xhluca/bm25s](https://github.com/xhluca/bm25s) (evidence retrieval)
 
250
  - <img src="https://huggingface.co/datasets/huggingface/brand-assets/resolve/main/hf-logo.svg" style="height: 1.2em; display: inline-block;"> [nyu-mll/multi_nli](https://huggingface.co/datasets/nyu-mll/multi_nli/viewer/default/train?row=37&views%5B%5D=train) (MNLI example)
251
- - <img src="https://plos.org/wp-content/uploads/2020/01/logo-color-blue.svg" style="height: 1.4em; display: inline-block;"> [Medicine](https://doi.org/10.1371/journal.pmed.0030197), <i class="fa-brands fa-wikipedia-w"></i> [CRISPR](https://en.wikipedia.org/wiki/CRISPR) (get evidence examples)
252
  - <img src="https://huggingface.co/datasets/huggingface/brand-assets/resolve/main/hf-logo.svg" style="height: 1.2em; display: inline-block;"> [NoCrypt/miku](https://huggingface.co/spaces/NoCrypt/miku) (theme)
253
  """
254
  )
@@ -272,14 +277,14 @@ with gr.Blocks(theme=my_theme, css=custom_css, head=font_awesome_html) as demo:
272
  }
273
  # Rename dictionary keys to use consistent labels across models
274
  prediction = {
275
- ("Support" if k in ["SUPPORT", "entailment"] else k): v
276
  for k, v in prediction.items()
277
  }
278
  prediction = {
279
  ("NEI" if k in ["NEI", "neutral"] else k): v for k, v in prediction.items()
280
  }
281
  prediction = {
282
- ("Refute" if k in ["REFUTE", "contradiction"] else k): v
283
  for k, v in prediction.items()
284
  }
285
  # Return two instances of the prediction to send to different Gradio components
@@ -361,9 +366,9 @@ with gr.Blocks(theme=my_theme, css=custom_css, head=font_awesome_html) as demo:
361
  if is_running_in_hf_spaces():
362
  # Use a thread lock to avoid concurrent writes from different users.
363
  with scheduler.lock:
364
- append_feedback(*args, user_label="Support")
365
  else:
366
- append_feedback(*args, user_label="Support")
367
 
368
  def save_feedback_nei(*args) -> None:
369
  """
@@ -383,9 +388,9 @@ with gr.Blocks(theme=my_theme, css=custom_css, head=font_awesome_html) as demo:
383
  if is_running_in_hf_spaces():
384
  # Use a thread lock to avoid concurrent writes from different users.
385
  with scheduler.lock:
386
- append_feedback(*args, user_label="Refute")
387
  else:
388
- append_feedback(*args, user_label="Refute")
389
 
390
  # Event listeners
391
 
 
54
  """
55
  if prediction is None or prediction == "":
56
  # Show an empty plot for app initialization or auto-reload
57
+ prediction = {"SUPPORT": 0, "NEI": 0, "REFUTE": 0}
58
  elif "Model" in prediction:
59
  # Show full-height bars when the model is changed
60
+ prediction = {"SUPPORT": 1, "NEI": 1, "REFUTE": 1}
61
  else:
62
  # Convert predictions text to dictionary
63
  prediction = eval(prediction)
64
  # Use custom order for labels (pipe() returns labels in descending order of softmax score)
65
+ labels = ["SUPPORT", "NEI", "REFUTE"]
66
  prediction = {k: prediction[k] for k in labels}
67
  # Convert dictionary to DataFrame with one column (Probability)
68
  df = pd.DataFrame.from_dict(prediction, orient="index", columns=["Probability"])
 
93
  with gr.Column(scale=3):
94
  with gr.Row():
95
  gr.Markdown("# AI4citations")
96
+ gr.Markdown("## *AI-powered citation verification*")
97
  claim = gr.Textbox(
98
  label="Claim",
99
  info="aka hypothesis",
 
131
  x="Class",
132
  y="Probability",
133
  color="Class",
134
+ color_map={"SUPPORT": "green", "NEI": "#888888", "REFUTE": "#FF8888"},
135
  inputs=prediction,
136
  y_lim=([0, 1]),
137
  visible=False,
138
  )
139
+ label = gr.Label(label="Prediction")
140
  with gr.Accordion("Feedback"):
141
  gr.Markdown(
142
+ "*Provide the correct label to help improve this app*<br>**NOTE:** The claim and evidence will also be saved"
143
  ),
144
  with gr.Row():
145
  flag_support = gr.Button("Support")
146
  flag_nei = gr.Button("NEI")
147
  flag_refute = gr.Button("Refute")
148
+ gr.Markdown(
149
+ "Feedback is uploaded every 5 minutes to [AI4citations-feedback](https://huggingface.co/datasets/jedick/AI4citations-feedback)"
150
+ ),
151
  with gr.Accordion("Examples"):
152
  gr.Markdown("*Examples are run when clicked*"),
153
  with gr.Row():
 
200
  with gr.Column(scale=2):
201
  gr.Markdown(
202
  """
203
+ ### To make the prediction:
204
 
205
  - Hit 'Enter' in the **Claim** text box OR
206
  - Hit 'Shift-Enter' in the **Evidence** text box
207
 
208
+ _The prediction is also made after clicking **Get Evidence**_
209
  """
210
  )
211
 
 
223
  value=MODEL_NAME,
224
  label="Model",
225
  )
226
+ radio = gr.Radio(
227
+ ["label", "barplot"], value="label", label="Prediction"
228
+ )
229
  with gr.Accordion("Sources", open=False, elem_classes=["center_content"]):
230
  gr.Markdown(
231
  """
 
252
  """
253
  #### *Other sources*
254
  - <i class="fa-brands fa-github"></i> [xhluca/bm25s](https://github.com/xhluca/bm25s) (evidence retrieval)
255
+ - <img src="https://plos.org/wp-content/uploads/2020/01/logo-color-blue.svg" style="height: 1.4em; display: inline-block;"> [Medicine](https://doi.org/10.1371/journal.pmed.0030197), <i class="fa-brands fa-wikipedia-w"></i> [CRISPR](https://en.wikipedia.org/wiki/CRISPR) (evidence retrieval examples)
256
  - <img src="https://huggingface.co/datasets/huggingface/brand-assets/resolve/main/hf-logo.svg" style="height: 1.2em; display: inline-block;"> [nyu-mll/multi_nli](https://huggingface.co/datasets/nyu-mll/multi_nli/viewer/default/train?row=37&views%5B%5D=train) (MNLI example)
 
257
  - <img src="https://huggingface.co/datasets/huggingface/brand-assets/resolve/main/hf-logo.svg" style="height: 1.2em; display: inline-block;"> [NoCrypt/miku](https://huggingface.co/spaces/NoCrypt/miku) (theme)
258
  """
259
  )
 
277
  }
278
  # Rename dictionary keys to use consistent labels across models
279
  prediction = {
280
+ ("SUPPORT" if k in ["SUPPORT", "entailment"] else k): v
281
  for k, v in prediction.items()
282
  }
283
  prediction = {
284
  ("NEI" if k in ["NEI", "neutral"] else k): v for k, v in prediction.items()
285
  }
286
  prediction = {
287
+ ("REFUTE" if k in ["REFUTE", "contradiction"] else k): v
288
  for k, v in prediction.items()
289
  }
290
  # Return two instances of the prediction to send to different Gradio components
 
366
  if is_running_in_hf_spaces():
367
  # Use a thread lock to avoid concurrent writes from different users.
368
  with scheduler.lock:
369
+ append_feedback(*args, user_label="SUPPORT")
370
  else:
371
+ append_feedback(*args, user_label="SUPPORT")
372
 
373
  def save_feedback_nei(*args) -> None:
374
  """
 
388
  if is_running_in_hf_spaces():
389
  # Use a thread lock to avoid concurrent writes from different users.
390
  with scheduler.lock:
391
+ append_feedback(*args, user_label="REFUTE")
392
  else:
393
+ append_feedback(*args, user_label="REFUTE")
394
 
395
  # Event listeners
396