Spaces:
Build error
Build error
| import streamlit as st | |
| st.markdown("# Automatic Essay Scoring for IELTS Writing Task 2") | |
| st.markdown("## Please enter your question and essay below:") | |
| st.markdown("**Disclaimer: This is a demo app and the results are not accurate. Model is trained on small dataset and is not robust enough to generalize well. Main application is to determine scores from 6 to 9. Scores below 6 are not accurate.**") | |
| st.markdown("### Question:") | |
| question = st.text_input("Enter your question here") | |
| st.markdown("### Essay:") | |
| essay = st.text_input("Enter your essay here") | |
| def get_pipeline(): | |
| from transformers import Pipeline | |
| class AESIELTSPipeline(Pipeline): | |
| def _sanitize_parameters(self, **kwargs): | |
| return kwargs, {}, {} | |
| def preprocess(self, inputs): | |
| question, essay = inputs | |
| encoding = self.tokenizer(question, essay, return_tensors='pt', padding='max_length', truncation=True, max_length=512) | |
| input_ids = encoding['input_ids'] | |
| attention_mask = encoding['attention_mask'] | |
| return {'input_ids': input_ids, 'attention_mask': attention_mask} | |
| def _forward(self, input): | |
| output = self.model(**input) | |
| return output[0].item() | |
| def postprocess(self, output): | |
| return output | |
| from transformers.pipelines import PIPELINE_REGISTRY | |
| from transformers import DistilBertForSequenceClassification | |
| PIPELINE_REGISTRY.register_pipeline( | |
| "aes-ielts", | |
| AESIELTSPipeline, | |
| pt_model=DistilBertForSequenceClassification | |
| ) | |
| from transformers import pipeline | |
| pipe = pipeline("aes-ielts", model="tkharisov7/aes-ielts") | |
| return pipe | |
| pipe = get_pipeline() | |
| predictions = pipe((question, essay)) | |
| st.markdown("### Estimated Score:") | |
| st.markdown(f"**{predictions}**") |