Update app.py
Browse files
app.py
CHANGED
@@ -8,6 +8,7 @@ import requests
|
|
8 |
from PIL import Image
|
9 |
import itertools
|
10 |
|
|
|
11 |
|
12 |
HF_SPACES_API_KEY = st.secrets["HF_token"]
|
13 |
|
@@ -116,11 +117,17 @@ def proc():
|
|
116 |
st.write(st.session_state.text_key)
|
117 |
|
118 |
|
119 |
-
claim_text=st.text_area("Enter your claim:", on_change=proc, key='text_key')
|
120 |
|
121 |
|
122 |
|
123 |
-
evidence_text=st.text_area("Enter your evidence:")
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
|
125 |
# form_evidence = st.form(key='my_evidence')
|
126 |
# form_evidence.text_input(label='Enter your evidence')
|
@@ -382,68 +389,70 @@ def qa_list_gen(claim,srl_list,evidence):
|
|
382 |
return list_of_qa_pipeline
|
383 |
|
384 |
#-------------------------------------------------------------------------
|
385 |
-
|
386 |
-
|
387 |
-
if claim_text
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
l
|
419 |
-
|
420 |
-
l[
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
final_df = pd.DataFrame(columns=['Who Claims', 'What Claims', 'When Claims', 'Where Claims', 'Why Claims', 'Misc Claims'])
|
430 |
-
|
431 |
-
all_items_who = [item for item_list in list_who for item in item_list]
|
432 |
-
all_items_what = [item for item_list in list_what for item in item_list]
|
433 |
-
all_items_when = [item for item_list in list_when for item in item_list]
|
434 |
-
all_items_where = [item for item_list in list_where for item in item_list]
|
435 |
-
all_items_why = [item for item_list in list_why for item in item_list]
|
436 |
-
all_items_misc = [item for item_list in list_misc for item in item_list]
|
437 |
-
|
438 |
-
|
439 |
-
max_rows = max(len(all_items_who), len(all_items_what), len(all_items_when), len(all_items_where), len(all_items_why), len(all_items_misc))
|
440 |
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
from PIL import Image
|
9 |
import itertools
|
10 |
|
11 |
+
st.set_page_config(page_title="FACTIFY - 5WQA", layout="wide")
|
12 |
|
13 |
HF_SPACES_API_KEY = st.secrets["HF_token"]
|
14 |
|
|
|
117 |
st.write(st.session_state.text_key)
|
118 |
|
119 |
|
120 |
+
# claim_text=st.text_area("Enter your claim:", on_change=proc, key='text_key')
|
121 |
|
122 |
|
123 |
|
124 |
+
# evidence_text=st.text_area("Enter your evidence:")
|
125 |
+
with st.form(key="claim_evidence_form",clear_on_submit=True):
|
126 |
+
claim_text = st.text_input()
|
127 |
+
evidence_text = st.text_input()
|
128 |
+
submitted = st.form_submit_button("Submit")
|
129 |
+
|
130 |
+
|
131 |
|
132 |
# form_evidence = st.form(key='my_evidence')
|
133 |
# form_evidence.text_input(label='Enter your evidence')
|
|
|
389 |
return list_of_qa_pipeline
|
390 |
|
391 |
#-------------------------------------------------------------------------
|
392 |
+
# Handle form submission
|
393 |
+
if submitted and claim_text and evidence_text:
|
394 |
+
if not claim_text or not claim_text:
|
395 |
+
st.warning("You need to input both the claim and evidence and then press Submit")
|
396 |
+
else:
|
397 |
+
st.caption(':green[Kindly hold on for a few minutes while the QA pairs are being generated]')
|
398 |
+
srl_list = list(itertools.chain(*[list(s) for s in srl(claim_text)]))
|
399 |
+
qa_list=qa_list_gen(claim_text,srl_list,evidence_text)
|
400 |
+
list_who = []
|
401 |
+
list_what = []
|
402 |
+
list_when = []
|
403 |
+
list_where = []
|
404 |
+
list_why = []
|
405 |
+
list_misc = []
|
406 |
+
|
407 |
+
for item in qa_list:
|
408 |
+
question = item[0]
|
409 |
+
if any(x in question.lower() for x in ['who', 'what', 'when', 'where', 'why']):
|
410 |
+
if 'who' in question.lower():
|
411 |
+
list_who.append(item)
|
412 |
+
elif 'what' in question.lower():
|
413 |
+
list_what.append(item)
|
414 |
+
elif 'when' in question.lower():
|
415 |
+
list_when.append(item)
|
416 |
+
elif 'where' in question.lower():
|
417 |
+
list_where.append(item)
|
418 |
+
elif 'why' in question.lower():
|
419 |
+
list_why.append(item)
|
420 |
+
else:
|
421 |
+
list_misc.append(item)
|
422 |
+
lists = [list_who, list_when, list_why, list_where, list_what]
|
423 |
+
for j, lst in enumerate(lists):
|
424 |
+
for i, l in enumerate(lst):
|
425 |
+
if l: # check if list is not empty
|
426 |
+
l[0] = f"Q{i+1}: {l[0]}"
|
427 |
+
l[1] = f"Claim:- {l[1]}"
|
428 |
+
if l[2]:
|
429 |
+
l[2] = f"answer retrieved from evidence:- {l[2]}"
|
430 |
+
else:
|
431 |
+
l[2] = f"answer retrieved from evidence:- No mention of '{['who', 'when', 'why', 'where', 'what'][j]}' in any related documents."
|
432 |
+
|
433 |
+
for i in range(len(lists)):
|
434 |
+
if not lists[i]:
|
435 |
+
lists[i].extend([["No claims", "", f"No mention of '{['who', 'when', 'why', 'where', 'what'][i]}' in any related documents.", "❔ Not verifiable"]])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
436 |
|
437 |
+
|
438 |
+
final_df = pd.DataFrame(columns=['Who Claims', 'What Claims', 'When Claims', 'Where Claims', 'Why Claims', 'Misc Claims'])
|
439 |
+
|
440 |
+
all_items_who = [item for item_list in list_who for item in item_list]
|
441 |
+
all_items_what = [item for item_list in list_what for item in item_list]
|
442 |
+
all_items_when = [item for item_list in list_when for item in item_list]
|
443 |
+
all_items_where = [item for item_list in list_where for item in item_list]
|
444 |
+
all_items_why = [item for item_list in list_why for item in item_list]
|
445 |
+
all_items_misc = [item for item_list in list_misc for item in item_list]
|
446 |
+
|
447 |
+
|
448 |
+
max_rows = max(len(all_items_who), len(all_items_what), len(all_items_when), len(all_items_where), len(all_items_why), len(all_items_misc))
|
449 |
+
|
450 |
+
final_df['Who Claims'] = all_items_who + [''] * (max_rows - len(all_items_who))
|
451 |
+
final_df['What Claims'] = all_items_what + [''] * (max_rows - len(all_items_what))
|
452 |
+
final_df['When Claims'] = all_items_when + [''] * (max_rows - len(all_items_when))
|
453 |
+
final_df['Where Claims'] = all_items_where + [''] * (max_rows - len(all_items_where))
|
454 |
+
final_df['Why Claims'] = all_items_why + [''] * (max_rows - len(all_items_why))
|
455 |
+
final_df['Misc Claims'] = all_items_misc + [''] * (max_rows - len(all_items_misc))
|
456 |
+
st.write(f"""Claim : {claim_text}""")
|
457 |
+
st.write(f"""Evidence : {evidence_text}""")
|
458 |
+
st.table(final_df)
|