import streamlit as st import time import random from datetime import datetime # تنظیمات صفحه st.set_page_config(page_title="چت‌بات هوشمند", page_icon="🤖", layout="wide") # CSS سفارشی برای بهبود ظاهر و انیمیشن‌ها st.markdown(""" """, unsafe_allow_html=True) # داده‌های اولیه if 'conversation_history' not in st.session_state: st.session_state.conversation_history = [] if 'is_typing' not in st.session_state: st.session_state.is_typing = False quick_replies = ["راهنمای استفاده", "تماس با پشتیبانی", "گزارش مشکل", "بخشنامه‌های جدید"] # توابع چت‌بات def get_bot_response(user_message): time.sleep(1) # شبیه‌سازی تایپ کردن return random.choice(["سلام! چطور می‌تونم کمک کنم؟", "لطفاً سوال خود را مطرح کنید.", "در خدمت شما هستم."]) def add_message(sender, message): st.session_state.conversation_history.append({ 'sender': sender, 'message': message, 'timestamp': datetime.now().strftime("%H:%M") }) # هدر st.markdown("""

چت‌بات هوشمند

آنلاین
""", unsafe_allow_html=True) # نمایش پیام‌ها st.markdown("
", unsafe_allow_html=True) for message in st.session_state.conversation_history: sender_class = "user" if message['sender'] == "user" else "bot" st.markdown(f"""
{message['message']}
{message['timestamp']}
""", unsafe_allow_html=True) st.markdown("
", unsafe_allow_html=True) # پاسخ‌های سریع st.markdown("
", unsafe_allow_html=True) for reply in quick_replies: if st.button(reply): add_message("user", reply) bot_response = get_bot_response(reply) add_message("bot", bot_response) st.experimental_rerun() st.markdown("
", unsafe_allow_html=True) # ورودی کاربر st.markdown("
", unsafe_allow_html=True) user_message = st.text_input("", placeholder="پیام خود را وارد کنید...", label_visibility="collapsed") send_button = st.button("ارسال") if send_button and user_message: add_message("user", user_message) st.session_state.is_typing = True bot_response = get_bot_response(user_message) add_message("bot", bot_response) st.session_state.is_typing = False st.experimental_rerun() st.markdown("
", unsafe_allow_html=True) # پنل مدیریت در سایدبار with st.sidebar: st.markdown("

پنل مدیریت

", unsafe_allow_html=True) # نمایش آمار total_messages = len(st.session_state.conversation_history) user_messages = sum(1 for msg in st.session_state.conversation_history if msg['sender'] == 'user') bot_messages = total_messages - user_messages st.markdown(f"""
پیام‌های کل: {total_messages}
پیام‌های کاربر: {user_messages}
پیام‌های ربات: {bot_messages}
""", unsafe_allow_html=True) # دکمه پاک کردن تاریخچه if st.button("پاک کردن تاریخچه"): st.session_state.conversation_history = [] st.experimental_rerun() # تنظیمات ظاهری st.markdown("### تنظیمات ظاهری") font_size = st.slider("اندازه فونت", 12, 20, 14) st.markdown(f"", unsafe_allow_html=True)