Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import uuid | |
| from load_models import initialize_wikiapi | |
| from functools import lru_cache | |
| class QuestionGenerationError(Exception): | |
| """Custom exception for question generation errors.""" | |
| pass | |
| def get_session_id(): | |
| if 'session_id' not in st.session_state: | |
| st.session_state.session_id = str(uuid.uuid4()) | |
| return st.session_state.session_id | |
| def initialize_state(session_id): | |
| if 'session_states' not in st.session_state: | |
| st.session_state.session_states = {} | |
| if session_id not in st.session_state.session_states: | |
| st.session_state.session_states[session_id] = { | |
| 'generated_questions': [], | |
| # add other state variables as needed | |
| } | |
| return st.session_state.session_states[session_id] | |
| def get_state(session_id): | |
| return st.session_state.session_states[session_id] | |
| def set_state(session_id, key, value): | |
| st.session_state.session_states[session_id][key] = value | |
| # Info Section | |
| def display_info(): | |
| st.sidebar.title("Information") | |
| st.sidebar.markdown(""" | |
| ### Question Generator System | |
| This system is designed to generate questions based on the provided context. It uses various NLP techniques and models to: | |
| - Extract keywords from the text | |
| - Map keywords to sentences | |
| - Generate questions | |
| - Provide multiple choice options | |
| - Assess the quality of generated questions | |
| #### Key Features: | |
| - **Keyword Extraction:** Combines RAKE, TF-IDF, and spaCy for comprehensive keyword extraction. | |
| - **Question Generation:** Utilizes a pre-trained T5 model for generating questions. | |
| - **Options Generation:** Creates contextually relevant multiple-choice options. | |
| - **Question Assessment:** Scores questions based on relevance, complexity, and spelling correctness. | |
| - **Feedback Collection:** Allows users to rate the generated questions and provides statistics on feedback. | |
| #### Customization Options: | |
| - Number of beams for question generation | |
| - Context window size for mapping keywords to sentences | |
| - Number of questions to generate | |
| - Additional display elements (context, answer, options, entity link, QA scores) | |
| #### Outputs: | |
| - Generated questions with multiple-choice options | |
| - Download options for CSV and PDF formats | |
| - Visualization of overall scores | |
| """) | |
| # Function to perform entity linking using Wikipedia API | |
| def entity_linking(keyword): | |
| user_agent, wiki_wiki = initialize_wikiapi() | |
| page = wiki_wiki.page(keyword) | |
| if page.exists(): | |
| return page.fullurl | |
| return None | |