import streamlit as st import subprocess import time import pandas as pd import plotly.express as px import random from datetime import datetime from sklearn.linear_model import LogisticRegression from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # کلاس برای یادگیری ماشین class MLEngine: def __init__(self): # ایجاد داده‌های آموزشی شبیه‌سازی شده self.X, self.y = make_classification(n_samples=1000, n_features=10, random_state=42) self.model = LogisticRegression() self.training_history = [] self.last_update_time = None self.current_accuracy = 0 self.total_interactions = 1234 self.user_satisfaction = 95 def train_model(self): """آموزش مدل و ذخیره دقت آن""" # تقسیم داده‌ها به مجموعه‌های آموزشی و آزمایشی X_train, X_test, y_train, y_test = train_test_split(self.X, self.y, test_size=0.2, random_state=42) self.model.fit(X_train, y_train) # پیش‌بینی و محاسبه دقت predictions = self.model.predict(X_test) accuracy = accuracy_score(y_test, predictions) # ذخیره دقت در تاریخچه آموزشی self.current_accuracy = accuracy * 100 # دقت به درصد self.training_history.append({"timestamp": datetime.now(), "accuracy": self.current_accuracy}) self.last_update_time = datetime.now() def update_knowledge_base(self): """شبیه‌سازی به‌روزرسانی پایگاه دانش""" time.sleep(2) # شبیه‌سازی زمان به‌روزرسانی پایگاه دانش self.train_model() # آموزش مجدد مدل به عنوان بخشی از به‌روزرسانی def get_learning_stats(self): """برگرداندن آمار یادگیری شامل دقت و تاریخچه آموزشی""" return { "history": self.training_history, "currentAccuracy": self.current_accuracy, "totalInteractions": self.total_interactions, "userSatisfaction": self.user_satisfaction, "lastUpdate": self.last_update_time.strftime("%Y-%m-%d %H:%M:%S") if self.last_update_time else "No Update Yet" } # ایجاد یک نمونه از کلاس MLEngine ml_engine = MLEngine() ml_engine.train_model() # آموزش اولیه مدل # تابع برای اجرای فایل `admin_dashboard_filemanager.py` def open_file_manager(): """اجرای فایل مدیریت فایل‌ها و به‌روزرسانی پایگاه دانش""" try: # اجرای فایل `admin_dashboard_filemanager.py` subprocess.Popen(["python", "admin_dashboard_filemanager.py"]) st.success("Knowledge Base update has been initiated successfully!") except Exception as e: st.error(f"Error while opening file manager: {e}") # CSS سفارشی برای طراحی گلس مورفیسم و نئومورفیسم CUSTOM_CSS = """ """ # اعمال CSS سفارشی st.markdown(CUSTOM_CSS, unsafe_allow_html=True) # ساخت داشبورد st.markdown("
", unsafe_allow_html=True) st.markdown("
Admin Dashboard
", unsafe_allow_html=True) # دکمه به‌روزرسانی پایگاه دانش با طراحی گلس مورفیسم if st.button("Update Knowledge Base"): ml_engine.update_knowledge_base() open_file_manager() # نمایش آمارها با طراحی نئومورفیسم st.subheader("Statistics") col1, col2, col3 = st.columns(3) # نمایش آمارهای فعلی مدل stats = ml_engine.get_learning_stats() col1.markdown(f"
📊 Accuracy
{stats['currentAccuracy']:.2f}%
", unsafe_allow_html=True) col2.markdown(f"
👤 Total Interactions
{stats['totalInteractions']}
", unsafe_allow_html=True) col3.markdown(f"
👍 User Satisfaction
{stats['userSatisfaction']}%
", unsafe_allow_html=True) # نمودار روند یادگیری با طراحی شفاف (گلس مورفیسم) st.subheader("Learning Rate Trend") learning_df = pd.DataFrame([ {"Date": stat["timestamp"], "Accuracy": stat["accuracy"]} for stat in stats["history"] ]) fig = px.line(learning_df, x="Date", y="Accuracy", title="Learning Rate Over Time", template="plotly_white", markers=True) fig.update_traces(line=dict(color="#4a90e2", width=2)) st.plotly_chart(fig, use_container_width=True) # آپلود فایل با طراحی نئومورفیسم st.subheader("Manage Files") st.markdown("
", unsafe_allow_html=True) uploaded_file = st.file_uploader("Upload Document", type=["txt", "pdf", "docx"]) if uploaded_file: st.success("File uploaded successfully!") st.markdown("
", unsafe_allow_html=True) # پایان داشبورد st.markdown("
", unsafe_allow_html=True)