import streamlit as st import time import random import json from datetime import datetime import os # تنظیمات اصلی چتبات ADMIN_USERNAME = "admin" ADMIN_PASSWORD = "password" # CSS بهبود یافته با انیمیشنها و افکتهای جدید CUSTOM_CSS = """ """ class EnhancedChatbot: def __init__(self): self.conversation_history = [] self.admin_logged_in = False self.quick_replies = [ "بخشنامههای جدید", "راهنمای استفاده", "تماس با پشتیبانی", "گزارش مشکل" ] self.stats = { 'total_messages': 0, 'user_messages': 0, 'bot_messages': 0, 'start_time': datetime.now() } self.load_responses() def load_responses(self): """بارگذاری پاسخهای از پیش تعریف شده""" self.responses = { 'greeting': [ "سلام! چطور میتونم کمکتون کنم؟", "درود! من پاسخگوی هوشمند بخشنامه هستم. چه کمکی از دستم برمیاد؟", "خوش آمدید! در خدمت شما هستم." ], 'help': [ "برای راهنمایی بیشتر میتونید از گزینههای سریع پایین استفاده کنید.", "من میتونم در موارد زیر کمکتون کنم:\n- جستجوی بخشنامهها\n- پاسخ به سوالات متداول\n- راهنمایی در مورد فرآیندها", ], 'unknown': [ "متوجه نشدم. میشه بیشتر توضیح بدید؟", "میتونید سوالتون رو به شکل دیگهای بپرسید؟", "برای راهنمایی بهتر، لطفاً جزئیات بیشتری ارائه کنید." ] } def chat_response(self, message): """پردازش پیام کاربر و ارائه پاسخ هوشمند""" self.stats['total_messages'] += 1 self.stats['user_messages'] += 1 # افزودن پیام کاربر self.conversation_history.append({ 'type': 'user', 'message': message, 'timestamp': datetime.now().strftime("%H:%M") }) # شبیهسازی تایپ کردن time.sleep(1) # انتخاب پاسخ مناسب if any(word in message.lower() for word in ['سلام', 'درود', 'خوش آمدید']): response = random.choice(self.responses['greeting']) elif 'راهنمایی' in message.lower() or 'کمک' in message.lower(): response = random.choice(self.responses['help']) else: response = random.choice(self.responses['unknown']) self.stats['bot_messages'] += 1 # افزودن پاسخ ربات self.conversation_history.append({ 'type': 'bot', 'message': response, 'timestamp': datetime.now().strftime("%H:%M") }) return self.conversation_history def get_stats(self): """دریافت آمار چتبات""" uptime = datetime.now() - self.stats['start_time'] return { 'total_messages': self.stats['total_messages'], 'user_messages': self.stats['user_messages'], 'bot_messages': self.stats['bot_messages'], 'uptime': str(uptime).split('.')[0], 'response_rate': f"{(self.stats['bot_messages'] / self.stats['user_messages'] * 100):.1f}%" if self.stats['user_messages'] > 0 else "0%" } # تنظیمات اولیه استریملیت # ادامه کد قبلی... # تنظیمات اولیه استریملیت st.set_page_config( page_title="پاسخگوی هوشمند بخشنامه", page_icon="🤖", layout="wide", initial_sidebar_state="expanded" ) # اعمال CSS st.markdown(CUSTOM_CSS, unsafe_allow_html=True) # ایجاد نمونه از چتبات if 'chatbot' not in st.session_state: st.session_state.chatbot = EnhancedChatbot() # نمایش هدر اصلی st.markdown("""