| import streamlit as st |
| from main import initialize_system, process_query |
|
|
| |
| |
| |
| st.set_page_config( |
| page_title="Arabic RAG Chatbot 🤖", |
| page_icon="🤖", |
| layout="wide", |
| ) |
|
|
| |
| |
| |
| st.title("🤖 Arabic RAG Chatbot") |
| st.markdown(""" |
| مرحبًا! 👋 |
| """) |
|
|
| |
| |
| |
| @st.cache_resource |
| def load_rag_system(): |
| search_engine, response_generator = initialize_system() |
| return search_engine, response_generator |
|
|
| search_engine, response_generator = load_rag_system() |
|
|
| |
| |
| |
| st.divider() |
| query = st.text_input("📝 أدخل سؤالك هنا:", placeholder="مثال: ما هي نسبة الحضور المطلوبة؟") |
|
|
| |
| |
| |
| if st.button("بحث") or query: |
| if not query.strip(): |
| st.warning("يرجى كتابة سؤال أولاً.") |
| else: |
| with st.spinner("⏳ جارٍ البحث عن الإجابة..."): |
| try: |
| response = process_query(query, search_engine, response_generator) |
| if response: |
| st.success("💬 الإجابة:") |
| st.write(response) |
| else: |
| st.info("لم يتم العثور على إجابة ذات صلة في المستندات.") |
| except Exception as e: |
| st.error(f"حدث خطأ أثناء توليد الإجابة: {e}") |
|
|
| |
| |
| |
| st.divider() |
| st.markdown(" ", |
| unsafe_allow_html=True |
| ) |
|
|