""" | |
we deploy the pipeline via streamlit. | |
""" | |
import re | |
import streamlit as st | |
from idiomify.fetchers import fetch_pipeline | |
from idiomify.pipeline import Pipeline | |
def cache_pipeline() -> Pipeline: | |
return fetch_pipeline() | |
def main(): | |
# fetch a pre-trained model | |
pipeline = cache_pipeline() | |
st.title("Idiomify Demo") | |
text = st.text_area("Type sentences here", | |
value="Just remember that there will always be a hope even when things look hopeless") | |
with st.sidebar: | |
st.subheader("Supported idioms") | |
idioms = [row["Idiom"] for _, row in pipeline.idioms.iterrows()] | |
st.write(" / ".join(idioms)) | |
if st.button(label="Idiomify"): | |
with st.spinner("Please wait..."): | |
sents = [sent for sent in text.split(".") if sent] | |
preds = pipeline(sents, max_length=200) | |
# highlight the rule & honorifics that were applied | |
preds = [re.sub(r"<idiom>|</idiom>", "`", pred) | |
for pred in preds] | |
st.markdown(". ".join(preds)) | |
if __name__ == '__main__': | |
main() | |