import streamlit as st import plotly.graph_objects as go import plotly.express as px import numpy as np from datetime import datetime, timedelta import streamlit as st import pandas as pd from pathlib import Path # تنظیمات صفحه st.set_page_config( page_title="داشبورد مدیریت", page_icon="👤", layout="wide" ) # استایل‌های داشبورد st.markdown(""" """, unsafe_allow_html=True) # هدر داشبورد st.title("🎛️ داشبورد مدیریت") # آمار کلی col1, col2, col3 = st.columns(3) with col1: st.markdown("""

۱۲۳

تعداد فایل‌ها

""", unsafe_allow_html=True) with col2: st.markdown("""

۴۵۶

تعداد پرسش‌ها

""", unsafe_allow_html=True) with col3: st.markdown("""

۷۸۹

پاسخ‌های موفق

""", unsafe_allow_html=True) # بخش آپلود فایل st.markdown("""

📤 آپلود فایل جدید

فایل خود را اینجا رها کنید یا کلیک کنید

""", unsafe_allow_html=True) # لیست فایل‌ها st.markdown("""

📁 مدیریت فایل‌ها

banking_data.csv
customer_qa.json
training_data.txt
""", unsafe_allow_html=True) # تنظیمات مدل st.markdown("""

⚙️ تنظیمات مدل

""", unsafe_allow_html=True) if __name__ == "__main__": st.markdown(""" """, unsafe_allow_html=True) # اضافه کردن بخش نمودارها st.markdown("""

📊 تحلیل عملکرد مدل

""", unsafe_allow_html=True) # نمودار نرخ یادگیری col1, col2 = st.columns(2) with col1: # نمودار نرخ یادگیری dates = [datetime.now() - timedelta(days=x) for x in range(30)] learning_rate = [0.001 * np.exp(-x/10) for x in range(30)] fig_learning = go.Figure() fig_learning.add_trace(go.Scatter( x=dates, y=learning_rate, mode='lines+markers', name='نرخ یادگیری', line=dict(color='#2196F3', width=3) )) fig_learning.update_layout( title='نرخ یادگیری در طول زمان', xaxis_title='تاریخ', yaxis_title='نرخ یادگیری', template='plotly_white', dir='rtl' ) st.plotly_chart(fig_learning, use_container_width=True) with col2: # نمودار دقت مدل accuracy_data = np.linspace(0.7, 0.95, 30) fig_accuracy = go.Figure() fig_accuracy.add_trace(go.Scatter( x=dates, y=accuracy_data, mode='lines+markers', name='دقت مدل', line=dict(color='#4CAF50', width=3) )) fig_accuracy.update_layout( title='پیشرفت دقت مدل', xaxis_title='تاریخ', yaxis_title='دقت', template='plotly_white', dir='rtl' ) st.plotly_chart(fig_accuracy, use_container_width=True) # نمودار پاسخ‌های صحیح و غلط labels = ['پاسخ‌های صحیح', 'پاسخ‌های غلط'] values = [85, 15] fig_pie = go.Figure(data=[go.Pie( labels=labels, values=values, hole=.3, marker_colors=['#4CAF50', '#f44336'] )]) fig_pie.update_layout(title='نسبت پاسخ‌های صحیح به غلط') st.plotly_chart(fig_pie, use_container_width=True) # چت‌بات آموزش سریع st.markdown("""

🤖 آموزش سریع با چت‌بات

""", unsafe_allow_html=True) # دکمه دسترسی به نالج بیس st.markdown("""

📚 مدیریت نالج بیس

""", unsafe_allow_html=True) # اضافه کردن استایل‌های جدید st.markdown(""" """, unsafe_allow_html=True) # اضافه کردن نمودار هیت‌مپ برای نمایش ماتریس خطا confusion_matrix = np.array([ [850, 50], [30, 70] ]) fig_heatmap = px.imshow( confusion_matrix, labels=dict(x="پیش‌بینی", y="مقدار واقعی"), x=['مثبت', 'منفی'], y=['مثبت', 'منفی'], color_continuous_scale="RdBu", title="ماتریس خطا" ) fig_heatmap.update_layout( template='plotly_white', dir='rtl', width=600, height=500 ) # نمودار روند زمانی با قابلیت فیلتر training_metrics = pd.DataFrame({ 'تاریخ': pd.date_range(start='2023-01-01', periods=100), 'دقت': np.random.normal(0.85, 0.05, 100).cumsum()/100, 'recall': np.random.normal(0.80, 0.05, 100).cumsum()/100, 'f1_score': np.random.normal(0.82, 0.05, 100).cumsum()/100 }) fig_metrics = px.line( training_metrics, x='تاریخ', y=['دقت', 'recall', 'f1_score'], title='روند معیارهای ارزیابی', labels={'value': 'مقدار', 'variable': 'معیار'}, template='plotly_white' ) fig_metrics.update_layout( showlegend=True, legend_title_text='معیارها', hovermode='x unified', updatemenus=[ dict( buttons=list([ dict( args=[{"visible": [True, True, True]}], label="همه", method="restyle" ), dict( args=[{"visible": [True, False, False]}], label="دقت", method="restyle" ), dict( args=[{"visible": [False, True, False]}], label="Recall", method="restyle" ), dict( args=[{"visible": [False, False, True]}], label="F1 Score", method="restyle" ) ]), direction="down", showactive=True, x=0.1, y=1.1 ) ] ) # نمودار توزیع خطا errors = np.random.normal(0, 1, 1000) fig_dist = px.histogram( errors, nbins=50, title='توزیع خطای پیش‌بینی', labels={'value': 'خطا', 'count': 'تعداد'}, template='plotly_white' ) fig_dist.update_layout( bargap=0.1, showlegend=False ) # اضافه کردن کنترل‌های تعاملی st.sidebar.markdown("## تنظیمات نمودارها") time_range = st.sidebar.slider( "بازه زمانی (روز)", min_value=7, max_value=100, value=30 ) metric_threshold = st.sidebar.number_input( "آستانه دقت", min_value=0.0, max_value=1.0, value=0.8, step=0.05 ) # نمایش نمودارها با چینش جدید col1, col2 = st.columns(2) with col1: st.plotly_chart(fig_metrics, use_container_width=True) st.plotly_chart(fig_heatmap, use_container_width=True) with col2: st.plotly_chart(fig_dist, use_container_width=True) st.plotly_chart(fig_pie, use_container_width=True)