import streamlit as st import pandas as pd import numpy as np import matplotlib.pyplot as plt import plotly.express as px import plotly.graph_objects as go from datetime import datetime import time import io import os import json import base64 from pathlib import Path # استيراد محلل المستندات from .document_analyzer import AIDocumentAnalyzer, DocumentParser # استيراد وحدة تكامل البيانات from .data_integration import DataAIIntegration class AIAssistantApp: """وحدة الذكاء الاصطناعي""" def __init__(self): """تهيئة وحدة الذكاء الاصطناعي""" # تهيئة حالة الجلسة if 'chat_history' not in st.session_state: st.session_state.chat_history = [ { 'role': 'assistant', 'content': 'مرحباً! أنا مساعدك الذكي لإدارة المناقصات. كيف يمكنني مساعدتك اليوم؟' } ] if 'document_summaries' not in st.session_state: st.session_state.document_summaries = [ { 'id': 1, 'title': 'كراسة الشروط والمواصفات - مشروع إنشاء مبنى إداري', 'date': '2024-03-15', 'summary': 'تتضمن كراسة الشروط والمواصفات لمشروع إنشاء مبنى إداري متطلبات المشروع وشروط التنفيذ والمواصفات الفنية للأعمال المطلوبة. يتكون المبنى من 5 طوابق بمساحة إجمالية 5000 متر مربع. تشمل الأعمال الأساسية: الأعمال الإنشائية، الأعمال المعمارية، الأعمال الكهربائية، الأعمال الميكانيكية، وأعمال التشطيبات.', 'key_points': [ 'مدة التنفيذ: 18 شهراً', 'قيمة الضمان الابتدائي: 2% من قيمة العطاء', 'قيمة الضمان النهائي: 5% من قيمة العقد', 'غرامة التأخير: 1% من قيمة العقد عن كل أسبوع تأخير بحد أقصى 10%', 'شروط الدفع: دفعات شهرية حسب نسبة الإنجاز' ], 'entities': { 'الجهة المالكة': 'وزارة المالية', 'موقع المشروع': 'الرياض - حي العليا', 'رقم المناقصة': 'T-2024-001', 'تاريخ الطرح': '2024-03-01', 'تاريخ الإقفال': '2024-04-15' } }, { 'id': 2, 'title': 'جدول الكميات - مشروع تطوير شبكة طرق', 'date': '2024-03-20', 'summary': 'يتضمن جدول الكميات لمشروع تطوير شبكة طرق تفاصيل الأعمال المطلوبة والكميات التقديرية. يشمل المشروع إنشاء طرق جديدة بطول 15 كم وتطوير طرق قائمة بطول 10 كم، بالإضافة إلى إنشاء 3 جسور و5 أنفاق.', 'key_points': [ 'إجمالي أعمال الحفر: 250,000 م3', 'إجمالي أعمال الردم: 180,000 م3', 'إجمالي أعمال الخرسانة: 45,000 م3', 'إجمالي أعمال الأسفلت: 120,000 م2', 'إجمالي أعمال الإنارة: 500 عمود إنارة' ], 'entities': { 'الجهة المالكة': 'وزارة النقل', 'موقع المشروع': 'جدة', 'رقم المناقصة': 'T-2024-002', 'تاريخ الطرح': '2024-03-10', 'تاريخ الإقفال': '2024-04-20' } }, { 'id': 3, 'title': 'المواصفات الفنية - مشروع بناء مدرسة', 'date': '2024-03-25', 'summary': 'تتضمن المواصفات الفنية لمشروع بناء مدرسة تفاصيل المتطلبات الفنية للمشروع. تتكون المدرسة من 3 طوابق بمساحة إجمالية 3000 متر مربع، وتشمل 20 فصلاً دراسياً، ومختبرات علوم، وقاعة متعددة الأغراض، ومكتبة، وغرف إدارية.', 'key_points': [ 'نوع الهيكل: خرساني مسلح', 'نظام التكييف: نظام مركزي', 'نظام الإنارة: LED موفر للطاقة', 'نظام مكافحة الحريق: نظام رش آلي', 'متطلبات خاصة: نظام طاقة شمسية لتوفير 30% من احتياجات الطاقة' ], 'entities': { 'الجهة المالكة': 'وزارة التعليم', 'موقع المشروع': 'الدمام', 'رقم المناقصة': 'T-2024-003', 'تاريخ الطرح': '2024-03-15', 'تاريخ الإقفال': '2024-04-25' } } ] if 'ai_models' not in st.session_state: st.session_state.ai_models = [ { 'id': 1, 'name': 'نموذج تحليل المستندات', 'description': 'نموذج ذكاء اصطناعي لتحليل مستندات المناقصات واستخراج المعلومات الرئيسية منها.', 'type': 'معالجة اللغة الطبيعية', 'accuracy': 92, 'last_updated': '2024-03-01' }, { 'id': 2, 'name': 'نموذج تقدير التكاليف', 'description': 'نموذج ذكاء اصطناعي لتقدير تكاليف المشاريع بناءً على بيانات المشاريع السابقة.', 'type': 'تعلم آلي', 'accuracy': 85, 'last_updated': '2024-02-15' }, { 'id': 3, 'name': 'نموذج تحليل المخاطر', 'description': 'نموذج ذكاء اصطناعي لتحليل المخاطر المحتملة للمشاريع وتقديم توصيات للتخفيف منها.', 'type': 'تعلم آلي', 'accuracy': 88, 'last_updated': '2024-02-20' }, { 'id': 4, 'name': 'نموذج تحليل المنافسين', 'description': 'نموذج ذكاء اصطناعي لتحليل المنافسين وتقديم توصيات لزيادة فرص الفوز بالمناقصات.', 'type': 'تعلم آلي', 'accuracy': 80, 'last_updated': '2024-02-10' }, { 'id': 5, 'name': 'نموذج تحليل ملفات DWG', 'description': 'نموذج ذكاء اصطناعي لتحليل ملفات DWG واستخراج المعلومات الرئيسية منها.', 'type': 'رؤية حاسوبية', 'accuracy': 90, 'last_updated': '2024-03-10' } ] # تهيئة متغير السمة في حالة الجلسة إذا لم يكن موجوداً if 'theme' not in st.session_state: st.session_state.theme = 'light' # تهيئة متغير استيراد البنود من تحليل المستندات if 'imported_items' not in st.session_state: st.session_state.imported_items = [] # تهيئة محلل المستندات self.document_analyzer = AIDocumentAnalyzer() # تهيئة وحدة تكامل البيانات self.data_integration = DataAIIntegration() # تكامل وحدة تحليل البيانات مع وحدة الذكاء الاصطناعي self.data_integration.integrate_with_ai_assistant(self) def run(self): """ تشغيل وحدة الذكاء الاصطناعي هذه الدالة هي نقطة الدخول الرئيسية لوحدة الذكاء الاصطناعي. تقوم بتهيئة واجهة المستخدم وعرض الوظائف المختلفة للذكاء الاصطناعي. """ try: # تم إزالة set_page_config لتجنب التعارض مع app.py # تطبيق التنسيق المخصص st.markdown(""" """, unsafe_allow_html=True) # عرض عنوان الوحدة st.markdown('