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)