Spaces:
Runtime error
Runtime error
| from newspaper import Article | |
| import gradio as gr | |
| from transformers import pipeline | |
| ta_pipeline = pipeline(model="marksverdhei/unifiedqa-large-reddit-syac") | |
| ta_pipeline.tokenizer.model_max_length = 2048 | |
| ta_pipeline.model.config.max_length = 300 | |
| description = """ | |
| Enter the url for a clickbait article, or the answer and content. | |
| We will provide the answer to the clickbait title. | |
| Disclaimer: the model can generate wrong information. Read more about the model [here](https://huggingface.co/marksverdhei/unifiedqa-large-reddit-syac). | |
| """ | |
| def fetch_article_content(url): | |
| article = Article(url) | |
| article.download() | |
| article.parse() | |
| if not (article.title and article.text): | |
| raise Exception("Unable to fetch article. Try copy-pasting in the text fields instead.") | |
| return article.title, article.text | |
| def predict(title, body): | |
| title = title.lower() | |
| body = body.lower() | |
| input_text = title + r" \n " + body | |
| output = ta_pipeline(input_text, truncation=True) | |
| output_text = output[0]["generated_text"] | |
| return output_text | |
| def predict_from_inputs(url, title, body): | |
| if url: | |
| title, body = fetch_article_content(url) | |
| if title and body: | |
| return title, predict(title, body) | |
| else: | |
| raise Exception("You must supply either url or title and body") | |
| gr.Interface( | |
| fn=predict_from_inputs, | |
| inputs=["text", "text", "text"], | |
| outputs=[ | |
| gr.Textbox(label="title"), | |
| gr.Textbox(label="answer") | |
| ], | |
| title="Saved you a click!", | |
| description=description, | |
| ).launch() | |