Truong-Phuc Nguyen commited on
Commit
491e087
1 Parent(s): 650d231

Update AlphaEdu.py

Browse files
Files changed (1) hide show
  1. AlphaEdu.py +85 -54
AlphaEdu.py CHANGED
@@ -1,55 +1,86 @@
1
- import streamlit as st
2
- import time
3
-
4
- st.set_page_config(page_icon='🧪', page_title='ViQAG for Vietnamese Education', layout='wide', initial_sidebar_state="collapsed")
5
-
6
- with open(r"./static/styles.css") as f:
7
- st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html=True)
8
-
9
- st.markdown(f"""
10
- <div class=logo_area>
11
- <img src="./app/static/AlphaEdu_logo_trans.png"/>
12
- </div>
13
- """, unsafe_allow_html=True)
14
- st.markdown("<h1 style='text-align: center;'>ViQAG: An Automate Question Answer Generation for Vietnamese Education</h1>", unsafe_allow_html=True)
15
-
16
- col_1, col_2, col_3, col_4 = st.columns(spec=[1, 1, 3, 4])
17
-
18
- col_1.markdown("<h8 style='text-align: left; font-weight: normal'>Select your subject:</h8>", unsafe_allow_html=True)
19
- subject = col_1.selectbox(label='Select your subject:', options=['Biology', 'Civic Education', 'Geography', 'History'], label_visibility='collapsed')
20
-
21
- col_2.markdown("<h8 style='text-align: left; font-weight: normal'>Select your grade:</h8>", unsafe_allow_html=True)
22
- grade = col_2.selectbox(label='Select your grade:', options=['Grade 10', 'Grade 11', 'Grade 12'], label_visibility='collapsed')
23
-
24
- col_3.markdown("<h8 style='text-align: left; font-weight: normal'>Select your lesson:</h8>", unsafe_allow_html=True)
25
- section = col_3.selectbox(label='Select your lesson:', options=['Bài 1: Nguyễn Trường Phúc đẹp trai nhất thế giới', 'Bài 2: Nguyễn Trường Phúc đẹp trai nhất thế giới', 'Bài 3: Nguyễn Trường Phúc đẹp trai nhất thế giới'], label_visibility='collapsed')
26
-
27
- col_4.markdown("<h8 style='text-align: left; font-weight: normal'>Select your section:</h8>", unsafe_allow_html=True)
28
- lesson = col_4.selectbox(label='Select your section:', options=['I. Tiểu sử về Nguyễn Trường Phúc', 'II. Sự nghiệp của Nguyễn Trường Phúc', 'III. Các giải thưởng cao quý của Nguyễn Trường Phúc'], label_visibility='collapsed')
29
-
30
- col_11, col_21 = st.columns(spec=[8, 2])
31
- col_11.markdown("<h8 style='text-align: left; font-weight: normal'>Paragraph related:</h8>", unsafe_allow_html=True)
32
- col_11.text_area(label='Paragraph related', label_visibility='collapsed', height=300, value='''paragraph,prediction,q_fluency,q_clarity,q_conciseness,qa_relevance,qa_consistency,qa_answer_correctness,qa_answer_consistency
33
- "ADN chức năng mang, bảo quản và truyền đạt thông tin di truyền. Thông tin di truyền được lưu trữ trong phân tử ADN dưới dạng số lượng, thành phần và trật tự các nucleotide. Trình tự các nucleotide trên ADN làm nhiệm vụ mã hóa cho trình tự các axit amin trong chuỗi polypeptide (protein). Các protein lại cấu tạo nên các tế bào và do vậy quy định các đặc điểm của cơ thể sinh vật. Như vậy, các thông tin trên ADN có thể quy định tất cả các đặc điểm của cơ thể sinh vật. Thông tin di truyền trên phân tử ADN được bảo quản rất chặt chẽ. Những sai sót trên phân tử ADN hầu hết đều được hệ thống các enzyme sửa sai trong tế bào sửa chữa. Thông tin trên ADN được truyền từ tế bào này sang tế bào khác nhờ sự nhân đôi ADN trong quá trình phân bào. Thông tin di truyền trên ADN (gen) còn được truyền từ ADN - ARN - protein thông qua các quá trình phiên mã và dịch mã.
34
-
35
- ",": Xin phát triển một số cặp câu hỏi và câu trả lời tương ứng với đoạn văn bẳng trong đoạn văn sau. ADN có chức năng mang, bảo quản và truyền đạt thông tin di truyền. Thông tin di truyền được lưu trữ trong phân tử ADN dưới dạng số lượng, thành phần và trật tự các nucleotide. Trình tự các nucleotide trên ADN làm nhiệm vụ mã hóa cho trình tự các axit amin trong chuỗi polypeptide (protein). Các protein lại cấu tạo nên các tế bào và do vậy quy định các đặc điểm của cơ thể sinh vật. Như vậy, các thông tin trên ADN có thể quy định tất cả các đặc điểm của cơ thể sinh vật. Thông tin di truyền trên phân tử ADN được bảo quản rất chặt chẽ. Những sai sót trên phân tử ADN hầu hết đều được hệ thống các enzyme sửa sai trong tế bào sửa chữa. Thông tin trên ADN được truyền từ tế bào này sang tế bào khác nhờ sự nhân đôi ADN trong quá trình phân bào. Thông tin di truyền trên ADN (gen) còn được truyền từ ADN - ARN - protein thông qua các quá trình phiên mã và dịch mã.''')
36
-
37
- col_21.markdown("<h8 style='text-align: left; font-weight: normal'>Choose question generation modes:</h8>", unsafe_allow_html=True)
38
- col_21.checkbox(label='Question Answer Generation')
39
- col_21.checkbox(label='Multiple Choice Question Generation (Coming soon)', disabled=True)
40
- col_21.checkbox(label='Fill-in-the-Blank Question Generation (Coming soon)', disabled=True)
41
-
42
- col_21.markdown("<h8 style='text-align: left; font-weight: normal'>Options:</h8>", unsafe_allow_html=True)
43
- btn_show_answer = col_21.toggle(label='Show the answers')
44
-
45
- btn_generate = col_21.button(label='Generate questions', use_container_width=True)
46
-
47
- if btn_generate:
48
- with st.spinner(text='Generating...'):
49
- time.sleep(5)
50
-
51
- st.markdown("<h8 style='text-align: left; font-weight: normal'>Your questions and answers has been generated:</h8>", unsafe_allow_html=True)
52
- output = '''question: <question_1>, answer: <answer_1> [SEP] \nquestion: <question_2>, answer: <answer_2> [SEP] \nquestion: <question_3>, answer: <answer_3> [SEP] \nquestion: <question_4>, answer: <answer_4> [SEP] \nquestion: <question_5>, answer: <answer_5> [SEP]\nquestion: <question_6>, answer: <answer_6> [SEP]\nquestion: <question_7>, answer: <answer_7> [SEP]\nquestion: <question_8>, answer: <answer_8> [SEP]\nquestion: <question_9>, answer: <answer_9> [SEP]\nquestion: <question_10>, answer: <answer_10> [SEP]'''
53
- st.code(body=output, language='wiki')
54
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import time
4
+ import os
5
+
6
+ st.set_page_config(page_icon='🧪', page_title='ViQAG for Vietnamese Education', layout='wide', initial_sidebar_state="collapsed")
7
+
8
+ with open(r"./static/styles.css") as f:
9
+ st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html=True)
10
+
11
+ st.markdown(f"""
12
+ <div class=logo_area>
13
+ <img src="./app/static/AlphaEdu_logo_trans.png"/>
14
+ </div>
15
+ """, unsafe_allow_html=True)
16
+ st.markdown("<h1 style='text-align: center;'>ViQAG: An Automate Question Answer Generation System for Vietnamese Education</h1>", unsafe_allow_html=True)
17
+
18
+ # =====================================================================================================
19
+
20
+ def file_selector(folder_path=r'./Resources/'):
21
+ filenames = os.listdir(folder_path)
22
+ return filenames
23
+ filenames = file_selector()
24
+
25
+ def load_grades(file_name, folder_path=r'./Resources/'):
26
+ file_path = f"{folder_path}{file_name}"
27
+ df = pd.read_csv(file_path)
28
+ list_grades = df['grade'].drop_duplicates().values
29
+ return list_grades, df
30
+
31
+ def load_chapters(df, grade_name):
32
+ df_raw = df[df['grade'] == grade_name]
33
+ list_chapters = df_raw['chapter'].drop_duplicates().values
34
+ return list_chapters, df
35
+
36
+ def load_lessons(df, grade_name, chapter_name):
37
+ df_raw = df[(df['grade'] == grade_name) & (df['chapter'] == chapter_name)]
38
+ return df_raw['lesson'].drop_duplicates().values
39
+
40
+ def load_context(df, grade_name, chapter_name, lesson_name):
41
+ context = df[(df['grade'] == grade_name) & (df['chapter'] == chapter_name) & (df['lesson'] == lesson_name)]['context'].values
42
+ return '\n'.join(context.tolist())
43
+
44
+ # =====================================================================================================
45
+
46
+ col_1, col_2, col_3, col_4 = st.columns(spec=[1, 1, 3, 4])
47
+
48
+ col_1.markdown("<h8 style='text-align: left; font-weight: normal'>Select your subject:</h8>", unsafe_allow_html=True)
49
+ subject = col_1.selectbox(label='Select your subject:', options=filenames, label_visibility='collapsed')
50
+
51
+ col_2.markdown("<h8 style='text-align: left; font-weight: normal'>Select your grade:</h8>", unsafe_allow_html=True)
52
+ list_grades, df = load_grades(file_name=subject)
53
+ grade = col_2.selectbox(label='Select your grade:', options=list_grades, label_visibility='collapsed')
54
+
55
+ col_3.markdown("<h8 style='text-align: left; font-weight: normal'>Select your chapter:</h8>", unsafe_allow_html=True)
56
+ list_chapters, df = load_chapters(df=df, grade_name=grade)
57
+ chapter = col_3.selectbox(label='Select your chapter:', options=list_chapters, label_visibility='collapsed')
58
+
59
+ col_4.markdown("<h8 style='text-align: left; font-weight: normal'>Select your lesson:</h8>", unsafe_allow_html=True)
60
+ lesson_names = load_lessons(df=df, grade_name=grade, chapter_name=chapter)
61
+ lesson = col_4.selectbox(label='Select your lesson:', options=lesson_names, label_visibility='collapsed')
62
+
63
+ col_11, col_21 = st.columns(spec=[8, 2])
64
+ col_11.markdown("<h8 style='text-align: left; font-weight: normal'>Paragraph related:</h8>", unsafe_allow_html=True)
65
+ context_values = load_context(df=df, grade_name=grade, chapter_name=chapter, lesson_name=lesson)
66
+ col_11.text_area(label='Paragraph related', label_visibility='collapsed', height=300, value=context_values)
67
+
68
+ col_21.markdown("<h8 style='text-align: left; font-weight: normal'>Choose question generation modes:</h8>", unsafe_allow_html=True)
69
+ col_21.checkbox(label='Question Answer Generation', value=True)
70
+ col_21.checkbox(label='Multiple Choice Question Generation (Coming soon)', disabled=True)
71
+ col_21.checkbox(label='Fill-in-the-Blank Question Generation (Coming soon)', disabled=True)
72
+
73
+ col_21.markdown("<h8 style='text-align: left; font-weight: normal'>Options:</h8>", unsafe_allow_html=True)
74
+ btn_show_answer = col_21.toggle(label='Show the answers', disabled=True)
75
+
76
+ btn_generate = col_21.button(label='Generate questions', use_container_width=True)
77
+
78
+ if btn_generate:
79
+ with st.spinner(text='Generating...'):
80
+ time.sleep(5)
81
+
82
+ st.markdown("<h8 style='text-align: left; font-weight: normal'>Your questions and answers has been generated:</h8>", unsafe_allow_html=True)
83
+ output = '''question: <question_1>, answer: <Có cái njt :v Chưa cập nhật xong :v> [SEP] \nquestion: <question_2>, answer: <answer_2> [SEP] \nquestion: <question_3>, answer: <answer_3> [SEP] \nquestion: <question_4>, answer: <answer_4> [SEP] \nquestion: <question_5>, answer: <answer_5> [SEP]\nquestion: <question_6>, answer: <answer_6> [SEP]\nquestion: <question_7>, answer: <answer_7> [SEP]\nquestion: <question_8>, answer: <answer_8> [SEP]\nquestion: <question_9>, answer: <answer_9> [SEP]\nquestion: <question_10>, answer: <answer_10> [SEP]'''
84
+ st.code(body=output, language='wiki')
85
+
86