Spaces:
Running
Running
import streamlit as st | |
import pandas as pd | |
entailment_html_messages = { | |
"entailment": 'The knowledge base seems to <span style="color:green">confirm</span> your statement', | |
"contradiction": 'The knowledge base seems to <span style="color:red">contradict</span> your statement', | |
"neutral": 'The knowledge base is <span style="color:darkgray">neutral</span> about your statement', | |
} | |
def set_state_if_absent(key, value): | |
if key not in st.session_state: | |
st.session_state[key] = value | |
# Small callback to reset the interface in case the text of the question changes | |
def reset_results(*args): | |
st.session_state.answer = None | |
st.session_state.results = None | |
st.session_state.raw_json = None | |
def highlight_cols(s): | |
coldict = {"con": "#FFA07A", "neu": "#E5E4E2", "ent": "#a9d39e"} | |
if s.name in coldict.keys(): | |
return ["background-color: {}".format(coldict[s.name])] * len(s) | |
return [""] * len(s) | |
def create_df_for_relevant_snippets(docs): | |
rows = [] | |
urls = {} | |
for doc in docs: | |
row = { | |
"Title": doc.meta["name"], | |
"Relevance": f"{doc.score:.3f}", | |
"con": f"{doc.meta['entailment_info']['contradiction']:.2f}", | |
"neu": f"{doc.meta['entailment_info']['neutral']:.2f}", | |
"ent": f"{doc.meta['entailment_info']['entailment']:.2f}", | |
"Content": doc.content, | |
} | |
urls[doc.meta["name"]] = doc.meta["url"] | |
rows.append(row) | |
df = pd.DataFrame(rows).style.apply(highlight_cols) | |
return df, urls | |