لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 02/27/25 في كل الموقع
-
السلام عليكم و رحمة الله و بركاته لدي مشكلة في فهم طريقة استخدام جافا سكربت بشكل ملموس حيث أنها على عكس HTML and CSS لا تظهر بشكل مباشر في الصفحة فسؤالي هو كيف اقدر افهم جافا سكربت و اطبق بشكل صحيح بمشاريع حقيقية و شكرا4 نقاط
-
2 نقاط
-
2 نقاط
-
السلام عليكم، أحتاج لمساعدة في مشكلة لم استطع حلها، لقد كنت أعمل على مشروع django وهو عبارة عن موقع شخصي portfolio مع لوحة تحكم وعند اكمالي للمشروع كان يعمل بشكل ممتاز ولاكن عند رفعه على استضافة PythonAnywhere لم تظهر بعض الصور في الموقع وعندما توجهت الى لوحة التحكم ظهرت بدون تنسيقات فعدت الى المجلد الرئيسي للمشروع على جهازي وعندما اعدت تشغيله على الخادم المحلي ظهر الموقع بالكامل بدون اي تنسيقات css مع انه كان يعمل قبل رفعه دون اي مشاكل ومع اني لم اقم بأي تعديل عليه غير إضافة ملافات git و gitignore و requirment.txt django-portfolio.zip2 نقاط
-
مرحباً, لا أعلم لماذا يظهر لي خطأ عند تنفيذ الكود الكود: import os import sys import openai from langchain_community.document_loaders import TextLoader from langchain.indexes import VectorstoreIndexCreator from langchain_community.embeddings import OpenAIEmbeddings from langchain_openai import OpenAI as LangChainOpenAI import warnings warnings.filterwarnings('ignore') openai.api_key= os.getenv('OPENAI_API_KEY') prompt = sys.argv[1] loader = TextLoader ('data.txt') loader.load() embeddings = OpenAIEmbeddings(model = 'text-embedding-ada-002', api_key= openai.api_key) index = VectorstoreIndexCreator(embedding=embeddings).from_loaders([loader]) llm = LangChainOpenAI(api_key= openai.api_key, temperature=0) result = index.query(prompt, llm=llm, retriever_kwargs={'search_kwargs' : {'k': 1}}) print(result) الخطأ (booksbot) D:\PYTHON\LLMs\LangChain&OpenAI>python app.py "what kind of books are available in your store?" Traceback (most recent call last): File "D:\PYTHON\LLMs\LangChain&OpenAI\app.py", line 19, in <module> index = VectorstoreIndexCreator(embedding=embeddings).from_loaders([loader]) File "D:\PYTHON\LLMs\LangChain&OpenAI\booksbot\Lib\site-packages\langchain\indexes\vectorstore.py", line 158, in from_loaders return self.from_documents(docs) ~~~~~~~~~~~~~~~~~~~^^^^^^ File "D:\PYTHON\LLMs\LangChain&OpenAI\booksbot\Lib\site-packages\langchain\indexes\vectorstore.py", line 171, in from_documents vectorstore = self.vectorstore_cls.from_documents( sub_docs, self.embedding, **self.vectorstore_kwargs ) File "D:\PYTHON\LLMs\LangChain&OpenAI\booksbot\Lib\site-packages\langchain_core\vectorstores\base.py", line 835, in from_documents return cls.from_texts(texts, embedding, metadatas=metadatas, **kwargs) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PYTHON\LLMs\LangChain&OpenAI\booksbot\Lib\site-packages\langchain_core\vectorstores\in_memory.py", line 497, in from_texts store.add_texts(texts=texts, metadatas=metadatas, **kwargs) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PYTHON\LLMs\LangChain&OpenAI\booksbot\Lib\site-packages\langchain_core\vectorstores\base.py", line 112, in add_texts return self.add_documents(docs, **kwargs) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ File "D:\PYTHON\LLMs\LangChain&OpenAI\booksbot\Lib\site-packages\langchain_core\vectorstores\in_memory.py", line 179, in add_documents vectors = self.embedding.embed_documents(texts) File "D:\PYTHON\LLMs\LangChain&OpenAI\booksbot\Lib\site-packages\langchain_community\embeddings\openai.py", line 671, in embed_documents return self._get_len_safe_embeddings(texts, engine=engine) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ File "D:\PYTHON\LLMs\LangChain&OpenAI\booksbot\Lib\site-packages\langchain_community\embeddings\openai.py", line 497, in _get_len_safe_embeddings response = embed_with_retry( self, input=tokens[i : i + _chunk_size], **self._invocation_params, ) File "D:\PYTHON\LLMs\LangChain&OpenAI\booksbot\Lib\site-packages\langchain_community\embeddings\openai.py", line 120, in embed_with_retry return embeddings.client.create(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'NoneType' object has no attribute 'create'2 نقاط
-
هل يمكنني تغيير الدورة الخاصة بي من دورة علوم الحاسوب الى دورة تطوير واجهات المستخدم1 نقطة
-
1 نقطة
-
وعليكم السلام ورحمة الله وبركاته. نعم إذا كانت قيمة المعامل subsample في نموذج XGBoost تساوي 0.7 فهذا يعني أن النموذج سيستخدم 70% فقط من بيانات التدريب في كل عملية بناء شجرة أو تكرار. و ال 30% المتبقية لن تستخدم. حيث subsample يقوم باختيار العينات بشكل عشوائي من بيانات التدريب في كل تكرار. و هذه الطريقة تساعد في تقليل overfitting لأنها تجعل النموذج يعتمد على عينات مختلفة في كل مرة، مما يزيد من تعميم النموذج.1 نقطة
-
قبل بناء كل شجرة، ما يحدث هو اختيار 70% من بيانات التدريب عشوائيًا بدون إحلال لتدريب الشجرة، والـ30% المتبقية لا تُستخدم في بناء تلك الشجرة تحديدًا. وفي كل مرة تُبنى فيها شجرة جديدة أثناء عملية التعزيز التسلسلي، تُختار عينة جديدة بنسبة 70% من بيانات التدريب، بالتالي أحيانًا يُعتمد على بعض نقاط البيانات في أكثر من شجرة، وأيضًا تُستبعد بعض النقاط في أشجار معينة، وربما تُستخدم في أشجار لاحقة. وذلك لتقليل التباين ومنع الانحياز الزائد overfitting عن طريق زيادة تنويع الأشجار عبر تعريضها لجزء مختلف من البيانات في كل خطوة، حيث subsample يتحكم في نسبة الصفوف أي العينات المستخدمة لكل شجرة، وcolsample_bytree يتحكم في نسبة الأعمدة وهي الميزات المستخدمة لكل شجرة. إذن في وجود 1000 عينة تدريب، عند بناء الشجرة الأولى، ستُستخدم 700 عينة عشوائية (70%)، وتُهمل 300 عينة، وفي بناء الشجرة الثانية، تُختار 700 عينة جديدة عشوائيًا ربما تتضمن بعض العينات من الـ700 السابقة، وتستمر العملية حتى اكتمال جميع الأشجار.1 نقطة
-
هذا لأنه يجب على الصور أن تكون بداخل مجلد static حتى يستطيع whitenoise خدمة الصور. لذلك يجب عليك نقل مجلد الصور media بداخل مجلد static وفي ملف django_portfolio\settings.py يرجى إستبدال MEDIA_URL بالتالي : MEDIA_URL = '/static/media/' بعد ذلك في المصتفح يرجى الضغط على CTRL + F5 لحذف الملفات المؤقته.و ستظهر الصور معك .1 نقطة
-
شكراً لك أخي، لقد عادت التنسيقات ولاكن الصور مازالت لم تظهر1 نقطة
-
وعليكم السلام ورحمة الله وبركاته. لاحظ أنك قمت بتعيين DEBUG = False في ملف settings.py ولذلك فإن Django يقوم بتغير طريقة التعامل مع الملفات الثابتة (Static Files) ومجلدات الوسائط (Media Files). حيث عند تعيين DEBUG = False يتوقف Django عن خدمة الملفات الثابتة تلقائيا وهذا ما سبب تلك المشكلة لك. ولحل ذلك يجب استخدام خادم ويب خارجي مثل Apache أو Nginx لخدمة الملفات الثابتة وهذه هي الطريقة الأفضل في الإضافة لديك. ولكن يمكنك إستخدام مكتبة whitenoise . أولا يجب عليك تثبيتها من خلال الأمر التالي : pip install whitenoise بعد ذلك في ملف django_portfolio\settings.py يرجى وضع السطر التالي بداخل قائمة INSTALLED_APPS : 'whitenoise.runserver_nostatic', ووضع السطر التالي بداخل قائمءة MIDDLEWARE : 'whitenoise.middleware.WhiteNoiseMiddleware', بعد ذلك يجب عليك إضافة الأكواد التالية في الملف : STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' WHITENOISE_USE_FINDERS = True WHITENOISE_AUTOREFRESH = True ولقد قمت بإرفاق الملف لك. settings.py1 نقطة
-
لو أضفت DEBUG = True في ملف الإعدادات فستظهر لك التنسيقات، حيث يتم تفعيل وضع التصحيح الذي يؤثر على عدة جوانب من المشروع، بما في ذلك طريقة تعامل Django مع الملفات الثابتة Static وهي CSS، JavaScript، والصور. بمعنى لو كتبت DEBUG = True، يقوم Django بخدمة الملفات الثابتة تلقائيًا من المجلدات المحددة في STATICFILES_DIRS ومجلدات التطبيقات static/ داخل كل تطبيق. أما وضع الإنتاج أو النشر سواء بتعيين DEBUG = False أو حذفها، يتوقف Django عن خدمة الملفات الثابتة تلقائيًا لأسباب أمنية وأدائية، ستحتاج إلى تثبيت whitenoise لخدمة الملفات الثابتة: pip install whitenoise ثم وضع التالي في قائمة MIDDLEWARE في ملف الإعدادات: 'whitenoise.middleware.WhiteNoiseMiddleware', ووضع التالي في قائمة INSTALLED_APPS: 'whitenoise.runserver_nostatic', ووضع المتغير التالي ملف الإعدادات أيضًا: STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' سيعمل معك المشروع بشكل سليم الآن.1 نقطة
-
لحل هذه المشكلة، يمكنك استخدام دالة في PHP لطباعه الوقت الحالي بتنسيق يتضمن اليوم، الشهر، السنة، الساعة، الدقيقة، والثانية، ثم استخدام هذه البيانات لحساب الفرق بين تاريخين بالساعة. 1. دالة لطباعه الوقت الحالي بتنسيق مناسب: إذا كنت تستخدم قاعدة بيانات MySQL وتحتاج إلى تخزين التاريخ والوقت بتنسيق يحتوي على اليوم، الشهر، السنة، الساعة، الدقيقة، والثانية، يمكنك استخدام الدالة NOW() في SQL أو يمكنك بناء التنسيق باستخدام PHP. $datetime = date('Y-m-d H:i:s'); // تنسيق: سنة-شهر-يوم ساعة:دقيقة:ثانية إدراج التاريخ والوقت في قاعدة البيانات: $sql = "INSERT INTO your_table (your_datetime_column) VALUES ('$datetime')"; 2. حساب الفرق بين تاريخين بالساعة: لحساب الفرق بين تاريخين يتم جلبهما من قاعدة البيانات بالساعة، يمكنك استخدام دالة strtotime() في PHP ثم حساب الفرق بين التاريخين. PHP: // مثال على جلب تاريخين من قاعدة البيانات (بتنسيق 'Y-m-d H:i:s') $date1 = '2025-02-25 14:30:00'; // التاريخ الأول $date2 = '2025-02-26 18:45:00'; // التاريخ الثاني // تحويل التواريخ إلى طوابع زمنية (timestamps) $timestamp1 = strtotime($date1); $timestamp2 = strtotime($date2); // حساب الفرق بين التاريخين بالثواني $diffInSeconds = abs($timestamp2 - $timestamp1); // تحويل الفرق إلى ساعات $diffInHours = $diffInSeconds / 3600; // 3600 ثانية في الساعة echo "الفرق بين التاريخين هو: " . $diffInHours . " ساعة"; 3. استعلام SQL لجلب التاريخ والوقت من قاعدة البيانات: إذا كنت ترغب في جلب التاريخ من قاعدة البيانات بتنسيق مناسب ثم حساب الفرق بين التاريخين، يمكنك استخدام الاستعلام التالي: استعلام SQL: SELECT your_datetime_column FROM your_table WHERE your_condition; ========================================= ملخص الحل: استخدم دالة date('Y-m-d H:i:s') في PHP لاحتساب الوقت الحالي. قم بإدخال الوقت الحالي إلى قاعدة البيانات. استخدم دالة strtotime() لتحويل التواريخ إلى طوابع زمنية، ثم احسب الفرق بينها بالثواني. قسم الفرق على 3600 لتحصل على الفرق بالساعات. باتباع هذه الخطوات، يمكنك حساب الفرق بين التاريخين بدقة وحساب الفرق بالساعة.1 نقطة
-
هل تقصد حفظ الوقت في قاعدة البيانات ؟ ام ماذا تقصد بطباعة الوقت الحالي ؟ سبب مشكلة إضافة أصفار في قاعدة البيانات فهو بسبب إما إضافة التاريخ بصيغة خاطئة في الإستعلام أو لم يتم وضعه في الإستعلام . وإذا أردت إستخدام التاريخ والوقت الحالي في قاعدة البيانات يمكنك إستخدام الدالة NOW() في قاعدة البيانات في الإستعلام هكذا : $sql = "INSERT INTO my_table (timestart,timefinsh) VALUES (NOW(),NOW())"; هنا يمكنك إستبدال ال my_table بإسم الجدول لديك . وهكذا سيتم إضافة الوقت والتاريخ الحالي في العمودين timestart و timefinsh. أما بخصوص طرح تاريخين مع الوقت في php يمكنك أولا تحويل الوقت إلى UNIX وهو عدد الثواني منذ 1 يناير 1970 ( January 1 1970 00:00:00 UTC) وبعد تحويلهم يمكنك طرح التاريخين وإستخراج عدد الساعات منه هكذا : $timestamp1 = strtotime($time1); $timestamp2 = strtotime($time2); $diff_seconds = abs($timestamp2 - $timestamp1); // تحويل الثواني إلى ساعات $hours = $diff_seconds / 3600; // عدد الساعات هنا في السطر الأول والثاني قمنا بتحويل التاريخ إلى timestamp لذلك في ذلك السطرين يجب عليك تمرير التاريخ الذي أحضرته من قاعدة البيانات إلى الدالة strtotime . وبعد ذلك نقوم بطرح التاريخين والناتج سيكون عدد الثواني بينهما . بعد ذلك نقوم بقسمة الناتج على 3600 وهو عدد الساعات بالثواني : 60 ثانية * 60 دقيقة = 3600 . وهكذا سيكون لديك عدد الساعات في المتغير hours$1 نقطة
-
ما هي الخاصية n_iter في RandomizedSearchCV؟ في RandomizedSearchCV، الخاصية n_iter تُحدد عدد التكرارات (iterations) التي سيتم تجربتها أثناء البحث عن أفضل مجموعة من المعلمات (hyperparameters). كيف تعمل؟ على عكس GridSearchCV، الذي يجرب كل (مجموعة من القيم) الممكنة للمعلمات، يقوم RandomizedSearchCV بتجربة عدد محدد من (مجموعة من القيم) العشوائية من المعلمات. n_iter تتحكم في عدد هذه (مجموعة من القيم). كلما زادت n_iter، زادت فرص العثور على أفضل معلمات، لكن وقت البحث سيزداد أيضًا. مثال عملي: from sklearn.model_selection import RandomizedSearchCV from sklearn.ensemble import RandomForestClassifier import numpy as np # تعريف المعلمات الممكنة param_dist = { 'n_estimators': np.arange(10, 200, 10), 'max_depth': np.arange(3, 20), 'min_samples_split': np.arange(2, 10) } # إنشاء نموذج RandomForest rf = RandomForestClassifier() # البحث العشوائي مع تجربة 10 توليفات فقط random_search = RandomizedSearchCV(rf, param_distributions=param_dist, n_iter=10, cv=5, scoring='accuracy', random_state=42) # تشغيل البحث random_search.fit(X_train, y_train) متى تستخدم n_iter؟ إذا كنت تريد تقليل وقت البحث وتوفير الموارد مقارنةً بـ GridSearchCV. عندما يكون لديك عدد كبير من المعلمات المحتملة، وتريد البحث في عينة منها فقط. إذا كنت تبحث عن تحسين تقريبي للمعلمات بدلًا من البحث الشامل. الخلاصة: n_iter: تحدد عدد التكرارات (التجارب) التي يتم تنفيذها لاختيار مجموعة من المعلمات بشكل عشوائي. قيمة صغيرة (n_iter=10)بحث سريع ولكن قد لا يجد أفضل المعلمات. قيمة كبيرة (n_iter=100)بحث أكثر دقة ولكنه يحتاج إلى وقت أطول. بالتالي، n_iter تساعد في تحقيق توازن بين سرعة البحث ودقته!1 نقطة
-
لفرق بين scoring و refit في GridSearchCV في GridSearchCV من مكتبة Scikit-Learn، يتم استخدام كل من scoring و refit ولكن لكل منهما وظيفة مختلفة: scoring: تحديد معيار التقييم يحدد طريقة تقييم النماذج أثناء البحث عن أفضل المعلمات (hyperparameters). يمكن أن يكون مقياس دقة (accuracy) أو متوسط خطأ (neg_mean_squared_error) أو F1-score أو أي مقياس آخر. يقبل إما: مقياسًا جاهزًا مثل "accuracy", "f1", "roc_auc"... دالة مخصصة يقوم المستخدم بتحديدها. مثال: 📌 هنا يتم اختيار النموذج بناءً على أعلى قيمة لمقياس accuracy. -------------------------------------------------------------------------------- refit: إعادة تدريب النموذج الأفضل عند ضبطه على True (وهو الافتراضي)، يقوم GridSearchCV بإعادة تدريب النموذج باستخدام أفضل المعلمات التي تم العثور عليها على جميع البيانات. يمكن تعيينه على مقياس معين إذا كنت تستخدم أكثر من مقياس في scoring. مثال مع refit محدد لمقياس معين: هنا يتم اختيار أفضل نموذج بناءً على roc_auc، حتى لو كانت هناك مقاييس أخرى. -------------------------------------------------------------------------------- الخلاصة: إذا كنت تريد فقط تقييم النماذج، استخدم scoring إذا كنت تريد إعادة تدريب النموذج الأفضل، استخدم refit1 نقطة
-
وعليكم السلام ورحمة الله وبركاته. scoring" و "refit" لكن لكل منهما دور مختلف كالتالي: أولاً ال scoring يُحدد المقياس أو المقاييس المستخدمة لتقييم أداء النماذج المختلفة خلال البحث عن أفضل المعلمات. مثل 'accuracy' أو 'f1' أو 'roc_auc' بينما ال refitهو معامل ذو قمية منطقية (True/False) تحدد ما إذا كان سيتم إعادة تدريب النموذج باستخدام أفضل المعلمات وفقاً لل scoring. إذا كانت `refit=True` (القيمة الافتراضية)، فسيتم إعادة تدريب النموذج على مجموعة البيانات الكاملة باستخدام أفضل المعلمات وبالنسبة ل False فهي العكس تماماً.1 نقطة
-
وعليكم السلام ورحمة الله وبركاته. الفرق بين scoring و refit يتعلق بكيفية تقييم النموذج واختياره : حيث التقييم (Scoring) هو المعيار الذي يستخدمه GridSearchCV لتقييم جودة النماذج أثناء البحث عبر شبكة المعاملات (hyperparameter tuning) . حيث يمكنك تحديد معايير مختلفة مثل دقة النموذج accuracy أو f1-score أو أي مقياس آخر حسب الحاجة. و في كل مرة يقوم فيها GridSearchCV بتجربة مجموعة من المعاملات يقوم بتقييم أداء النموذج باستخدام المقياس الذي تم تحديده في scoring. أما إعادة التكييف (Refit) تعني أنه بعد إتمام البحث عن أفضل مجموعة من المعاملات (hyperparameters) سيقوم GridSearchCV بإعادة تدريب النموذج باستخدام أفضل المعاملات التي تم العثور عليها على كامل مجموعة البيانات. فإذا قمت بتعيين refit=True فإن GridSearchCV سيعيد تدريب النموذج باستخدام أفضل المعاملات بعد إتمام عملية البحث. أما إذا كان refit مضبوطا على False فإن GridSearchCV لن يعيد تدريب النموذج بعد البحث، بل سيحتفظ فقط بأفضل المعاملات التي تم العثور عليها.1 نقطة
-
كلاهما لديه غرض مختلف فالعامل scoring يحدد كيفية تقييم أداء النموذج أثناء التحقق المتقاطع يمكنك تعيينه كسلسلة مثلا 'accuracy' أو 'f1' أو كدالة مخصصة وهنا يخبر GridSearchCV بالمقياس الذي يجب استخدامه لمقارنة تركيبات المعاملات المختلفة. في حين أنّ refit يتحكم فيما إذا كان سيتم إعادة تدريب ال estimator على مجموعة البيانات الكاملة بعد إيجاد أفضل المعاملات فعند تعيينه إلى True يقوم GridSearchCV بعد التحقق المتقاطع بإعادة تدريب النموذج باستخدام أفضل المعاملات التي تم العثور عليها على كامل بيانات التدريب، ويصبح النموذج النهائي متاحا عبر best_estimator_. إذا استخدمت عدة مقاييس عن طريق تمرير قاموس إلى scoring، يمكنك تعيين refit إلى مفتاح محدد للدلالة على المقياس الذي يجب استخدامه لاختيار أفضل نموذج. أما إذا تم تعيين refit إلى False، فلن يتم تدريب النموذج النهائي على مجموعة البيانات الكاملة، وستقتصر النتائج على نتائج التحقق المتقاطع أي أنّ scoring يتعلق بكيفية قياس أداء النموذج أثناء البحث، بينما يتعلق refit بما يجب القيام به بعد تحديد أفضل المعاملات.1 نقطة