Spaces:
No application file
No application file
| import streamlit as st | |
| import random | |
| import re | |
| def get_questions_from_text(text): | |
| return re.findall(r"\d+\.\s[^\n]+", text) | |
| def select_random_questions(files): | |
| selected_questions = {} | |
| for file in files: | |
| text = file.getvalue().decode("utf-8") | |
| questions = get_questions_from_text(text) | |
| if questions: | |
| selected_questions[file.name] = random.choice(questions) | |
| else: | |
| selected_questions[file.name] = "Вопросов НЕТ!" | |
| return selected_questions | |
| st.title("Вопросы по Теоретической и Прикладной Лингвистике") | |
| st.write("Загрузите файлы и программа выберет по одному вопросу из каждого.") | |
| if "uploaded_files" not in st.session_state: | |
| st.session_state.uploaded_files = None | |
| uploaded_files = st.file_uploader("Загрузите файлы", accept_multiple_files=True, type="txt") | |
| if uploaded_files: | |
| st.session_state.uploaded_files = uploaded_files | |
| if st.session_state.uploaded_files: | |
| selected_questions = select_random_questions(st.session_state.uploaded_files) | |
| st.subheader("Вопросы:") | |
| for doc, question in selected_questions.items(): | |
| st.write(f"📄 **{doc}**: {question}") | |
| if st.button("Начать заново"): | |
| st.session_state.uploaded_files = None | |
| st.rerun() | |