E-lEARNING / app.py
VIATEUR-AI's picture
Update app.py
0b99b39 verified
Raw
History Blame Contribute Delete
2.72 kB
import streamlit as st
from transformers import pipeline
st.set_page_config(page_title="SmartLearn Rwanda", page_icon="πŸ“š")
st.title("πŸ“š SmartLearn Rwanda - AI Educational Tutor")
# -----------------------------
# Input ya umunyeshuri
# -----------------------------
name = st.text_input("Andika izina ryawe")
level = st.selectbox("Hitamo icyiciro cyawe:", ["Primary", "Secondary", "High School"])
subject = st.selectbox("Hitamo isomo:", ["Mathematics", "Science", "English", "History"])
question = st.text_area("Andika ikibazo cyangwa aho utumva neza:")
# -----------------------------
# Hugging Face model (text-generation)
# -----------------------------
@st.cache_resource
def load_model():
return pipeline("text-generation", model="tiiuae/falcon-7b-instruct", device=-1) # CPU-friendly
qa_pipeline = load_model()
# -----------------------------
# AI Tutor
# -----------------------------
if st.button("Saba ibisobanuro"):
if question.strip() == "":
st.warning("Andika ikibazo mbere yo gukanda buto!")
else:
prompt = f"""
Uri umwigisha w'inzobere. Umunyeshuri witwa {name}, ari mu cyiciro cya {level}, afite ikibazo muri {subject}: "{question}".
Sobanura ikibazo mu buryo bworoshye kandi utange urugero rumwe mu Kinyarwanda.
"""
tutor_answer = qa_pipeline(prompt, max_length=300, do_sample=True, temperature=0.7)
st.subheader("Ibisobanuro bya AI:")
st.success(tutor_answer[0]['generated_text'])
# -----------------------------
# Quiz Generator
# -----------------------------
if st.button("Tegura quiz ku isomo"):
quiz_prompt = f"""
Uri umwigisha w'inzobere. Tegura ikibazo 3 by'imyitozo ku isomo {subject} mu cyiciro {level},
hamwe n'igisubizo cyiza kuri buri kibazo mu Kinyarwanda.
"""
quiz = qa_pipeline(quiz_prompt, max_length=400, do_sample=True, temperature=0.7)
st.subheader("Quiz:")
st.text(quiz[0]['generated_text'])
# -----------------------------
# Automatic feedback
# -----------------------------
st.markdown("### Automatic feedback ku gisubizo cyawe")
answer_input = st.text_area("Andika igisubizo cyawe hano (kuri quiz)")
if st.button("Genura feedback"):
if answer_input.strip() == "":
st.warning("Andika igisubizo cyawe mbere yo kubona feedback!")
else:
feedback_prompt = f"""
Uri umwigisha w'inzobere. Soma igisubizo gikurikira: "{answer_input}".
Sobanura niba gisubije neza, utange amanota 1-5, kandi utange inama yo kunoza mu Kinyarwanda.
"""
feedback = qa_pipeline(feedback_prompt, max_length=200, do_sample=True, temperature=0.7)
st.subheader("Feedback y'AI:")
st.success(feedback[0]['generated_text'])