اذهب إلى المحتوى

محمد_عاطف

الأعضاء
  • المساهمات

    9530
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    141

كل منشورات العضو محمد_عاطف

  1. الفرق الجوهري يكمن في الهدف من المخطط فأحدهما يركز على البرمجة (Logic) والآخر يركز على البيانات (Data). أولا Class Diagram : يركز على البنية البرمجية للكود (OOP). يتكون من Classes (فئات) وMethods (دوال) وAttributes (متغيرات). يوضح السلوك (Behavior) عبر الدوال (Functions/Methods). نستخدمه نحن المبرمجين لبناء ال Classes والربط بينها. ثانيا ER Diagram (Entity Relationship) : يركز على بنية قاعدة البيانات وتخزين المعلومات. يتكون من Entities (كيانات) و Attributes (صفات) وRelationships (علاقات). لا يوضح سلوك بل هو مجرد هيكل ثابت للبيانات (Static Data Structure). يستخدمه مصمم قاعدة البيانات (DB Admin) لبناء الجداول (Tables). نعم بالفعل يجب إضافة Activities و Fragments و Services والسبب هو انه في برمجة الأندرويد ال Activity هي في النهاية Class مثلا MainActivity extends AppCompatActivity هي جزء لا يتجزأ من هيكلية الكود بل هي ال Entry Point والمسؤولة عن إدارة واجهة المستخدم. وبخصوص كيفية التمثيل: يتم تمثيل ال Activity ك Class عادي. يحتوي على الدوال الخاصة به مثل onCreate() و onStart(). يحتوي على علاقات (Associations) مع ال Classes الأخرى مثل ال Adapters أو ال ViewModels. نظرياً الإجابة نعم لتوضيح الفكرة ولكن تقنيا لا يفضل ذلك لأن المفهوم مختلف. وهذا بسبب أن : ال ER Diagram صمم لقواعد البيانات العلائقية (SQL) التي تعتمد على الجداول (Tables) والمفاتيح الأجنبية (Foreign Keys). ال Firebase سواء Realtime DB أو Firestore هي قواعد بيانات NoSQL تعتمد على المستندات (Documents) والمجموعات (Collections) أو شجرة JSON. والبديل الأفضل هو استخدام ما يسمى ب Schema Diagram أو Collection-Document Model. فبدلا من رسم جداول يمكن رسم مربعات تمثل ال Collections وداخلها مستندات توضح حقول البيانات (JSON Structure). وهذا يعكس الواقع الفعلي للبيانات في Firebase بدقة أكبر من ERD التقليدي. تحويل الكود إلى مخطط تتابع (Sequence Diagram) يهدف لفهم سيناريو محدد مثلا عملية تسجيل الدخول. والقواعد الأساسية للتحويل: ال Classes تصبح Lifelines: كل Object أو Class يتم استدعاؤه في السيناريو يوضع في الأعلى ك (Lifeline). استدعاء الدالة يصبح رسالة (Message): عندما يقوم Class A بمناداة دالة في Class B مثلا user.getName() نرسم سهما متصلا من A إلى B. اسم السهم هو اسم الدالة. القيمة المرجعة (Return Value): نتيجة الدالة تمثل بسهم متقطع (Dashed Arrow) يعود للخلف. الشروط (If/Else) تصبح Alt Fragment: يتم وضع إطار (Frame) يسمى Alt. الجزء العلوي يمثل if (condition) والجزء السفلي يمثل else. الحلقات التكرارية (Loop/For/While) تصبح Loop Fragment: يتم وضع إطار يسمى Loop حول العمليات التي تتكرر.
  2. المشكلة لديك في ملف app\images\[id]\page.tsx حيث لاحظ أنك تستخدم ال currentUser لعرض التعليقات مما يجعل أن التعليقات الصور وإسم المستخدم تظهر بالمستخدم الحالي وهذا هو سبب المشكلة . في ملف app\models\Comment.ts يجب أن نقوم بإضافة نموذج user ليتم إعادته مع كل تعليق والذي يحوي إسم الشخص الذي قام بالتعليق وصورة ملفه الشخص وهذا هو كود الملف بعد التعديل : import mongoose from "mongoose"; interface IComment { content: string; imageId: mongoose.Schema.Types.ObjectId; userId: mongoose.Schema.Types.ObjectId; } const commentSchema = new mongoose.Schema<IComment>( { content: { type: String, required: true, }, imageId: { type: mongoose.Schema.Types.ObjectId, required: true, ref: "Image", }, userId: { type: mongoose.Schema.Types.ObjectId, required: true, ref: "User", }, }, { timestamps: true ,toJSON: { virtuals: true }} ); commentSchema.virtual('user', { ref: 'User', localField: 'userId', // Field in the current schema foreignField: '_id', // Field in the referenced schema justOne: true // For a single document reference }); const Comment = mongoose.models.Comment || mongoose.model("Comment", commentSchema); export default Comment; الآن في ملف app\api\comments\route.ts سطر 14 يجب أن نعيد النموذج الذي قمنا بتعريفه مع الإستعلام ليكون لدينا المستخدم مع كل تعليق هكذا : const comments = await Comment.find().populate("user", "fullname avatar").sort({ createdAt: -1 }); الآن في ملف app\images\[id]\page.tsx سطر 182 و 183 و 190 يجب تغير currentUser إلى c.user هكذا : أولا سطر 182 : src={c.user?.avatar || "https://res.cloudinary.com/dgagbheuj/image/upload/v1763194734/avatar-default-image_yc4xy4.jpg"} ثانيا سطر 183 : alt={c.user?.fullname || "Anonymous"} ثالثا سطر190 : {c.user?.fullname || "Anonymous"}
  3. وعليكم السلام ورحمة الله وبركاته . هذا الكود يمثل تطبيق مخصص لتقنية مهمة جدا في تعلم الآلة تسمى الإيقاف المبكر (Early Stopping). وأهمية هذا الكود تكمن في التحكم في دورة حياة تدريب النموذج بناء على مقاييس محددة وتتلخص أهميته في النقاط التالية: توفير الوقت والموارد الحاسوبية (Efficiency) فبدلا من الاستمرار في تدريب النموذج لعدد محدد مسبقا من ال Epochs يقوم هذا الكود بإيقاف التدريب فورا بمجرد الوصول للهدف المطلوب مثلا دقة 98%. مثال: إذا وصل النموذج لدقة 98% في ال Epochs رقم 10 فلا داعي لإضاعة الوقت وموارد وحدة المعالجة الرسومية (GPU) في تدريبه لل 90 Epochs المتبقية. منع ال (Overfitting) إن ال Overfitting هي واحدة من أكبر مشاكل تدريب النماذج حيث يبدأ النموذج في حفظ البيانات بدلا من فهم الأنماط العامة إذا استمر التدريب لفترة طويلة جدا بعد الوصول لأفضل أداء ولهذا بإيقاف التدريب عند نقطة جيدة بما فيه الكفاية مثل 98% فإنك تحمي النموذج من أن يبدأ في تدهور أدائه على البيانات الجديدة (Validation Data). وإليك شرح الكود كل سطر على حدى : الوراثة (tf.keras.callbacks.Callback): الكود يرث من فئة Callback الخاصة ب Keras وهذا يسمح للكود بالتدخل في عملية التدريب في نقاط محددة مثل بداية التدريب ونهاية ال Epochs . الدالة on_epoch_end: هذه الدالة يتم استدعاؤها تلقائيا من قبل Keras في نهاية كل دورة تدريبية (Epoch) والمتغير logs يحتوي على نتائج التدريب الحالية مثل الدقة accuracy والخسارة loss. الشرط if logs.get('accuracy') >= 0.98: هنا يتم فحص القاموس logs للبحث عن قيمة الدقة وإذا تجاوزت أو ساوت 98% يتم تنفيذ أمر الإيقاف. أمر الإيقاف self.model.stop_training = True: هذا هو السطر الأهم وهو الذي يرسل إشارة لعملية التدريب (model.fit) بأن تتوقف فورا ولا تكمل باقي ال Epochs المجدولة.
  4. وعليكم السلام ورحمة الله وبركاته. لا يمكن إنشاء Emulator من الهاتف نفسه فالمحاكي يحتاج Android Studio أو أدوات Android SDK كاملة وهذه تعمل فقط على الكمبيوتر. ولكن يمكن تشغيل Flutter على الهاتف الحقيقي وستحتاجين إلى هاتف أندرويد و كابل USB وتفعيل ال USB Debugging في هاتفك . بعد تفعيل ال USB Debugging يجب توصيل الهاتف بالكمبيوتر من خلال الكابل وفتح ال cmd وكتابة التالي : flutter devices لو ظهر اسم هاتفك فهذا ممتاز يمكنكِ تشغيل المشروع مباشرة من خلال flutter run. وتوجد طريقة أخري وهي تشغيل التطبيق على الويب ولكن بعض ميزات الهاتف مثل الكاميرا وال GPS لن تعمل.
  5. مرحبا أحمد . ما ستقوم به ممتاز أحسنت بالتوفيق لك إن شاء الله . ولكن 40 ساعة بالإسبوع هي مدة كبيرة هل أنت متأكد من أنك ستستطيع توفير كل هذا الوقت؟ أنصحك بعدم ضغط نفسك كثيرا حتى تعطي لعقلك الوقت الكافي للإستيعاب وأيضا حتى تستطيع تنفيذ المشاريع والتطبيقات بنفسك . إليك رابط تفاصيل محتوى الدورة التالي : https://academy.hsoub.com/learn/python-application-development/ ستجد أن المسار الأول يحوي 11 ساعة من الدروس و المسار الثاني يحوي 15 ساعة والمسار الثالث يحوي 7 ساعات والمسار الرابع يحوي 5 ساعات . إذا الأربع مسارات مجموعهم 38 ساعة من الدروس . ويجب عليك معرفة أنه لإنهاء ساعة واحدة من الدورة فهي تختلف من شخص إلى أخر في نطاق 3 إلى 5 ساعات . وذلك لأن الطلاب يقومون بإيقاف الدرس مثلا لكتابة كود والتطبيق أو لإستيعاب جزء ما أو البحث عن معلومة معينة أو إعادة جزء معين . إذا بهذا المعدل يمكننا حساب متوسط 38 * 4 ساعات أى أن الأربع مسارات ستأخذ منك من 114 ساعة إلى 152 ساعة مذاكرة وتطبيق وهي تختلف بناء على مدى قدرة إستيعابك وأيضا تطبيقك للدروس . وإذا قمت بدراسة الدورة بمعدل 40 ساعة في الإسبوع فسوف تقوم بإنهاء أول أربع مسارات في 3 إلى 4 أسابيع . ولكن أنصحك بعدم تخطي أى درس أو عدم التطبيق مع المدرب فالأهم من الشهادة وإنجاز الدورة هو تحقيق أقصى إستفاده منها والتطبيق في مشاريع حقيقية . بالتوفيق لك إن شاء الله.
  6. وعليكم السلام ورحمة الله وبركاته. جيد الكود نظيف ومنظم بشكل جيد وأيضا هيكل الملفات والمجلدات جيد ومناسب . أنصحك بإنشاء أولا المشروع بنفسك إذا لم تقم بإنشاءه وبعد ذلك يمكنك مقارنة المشروع الذي تم إنشاءه من قبل الذكاء الإصطناعي وهذا الأمر سيعلمك كثيرا وسيعطيك خبرة جيدة وستعرف أى جزء من الأكواد لديك به مشكلة أو تم تحسينه في نسخة ال AI .
  7. وعليكم السلام ورحمة الله وبركاته. نعم، WSL ليس مثل CMD فقط بل أمامكِ أكثر من خيار للتعامل معه حسب ما تحتاجينه: فالوضع الافتراضي له هو (Terminal فقط) فعند فتح WSL مباشرة: تتعاملين معه عبر سطر الأوامر bash و zsh . وهو يشبه Linux الحقيقي تماما. وهذا الوضع هو الأكثر استخداما بين المبرمجين ثانيا الواجهة الرسومية الكاملة (GUI) فإذا كنتِ تستخدمين Windows 11 أو تحديثات أخيرة توجد خاصية اسمها WSLg وهي تسمح بتشغيل تطبيقات لينكس الرسومية مباشرة بدون إعدادات معقدة وتظهر البرامج كأنها برامج ويندوز عادية. ثالثا مدير الملفات الرسومي حتى بدون واجهة كاملة من داخل WSL : explorer.exe . سيتم فتح File Explorer على ملفات لينكس مباشرة داخل المسار wsl$ .
  8. لا يمكنك منع المتصفح 100% وجعل الوصول حصريًا لل API فقط وهذا بسبب أن: أي متصفح يستطيع إرسال Requests مثل أي API Client. Postman و fetch و axios و curl هي كلها HTTP Requests في النهاية يتم إرسالها . ولكنك تستطيع التحكم بمن يُسمح له باستخدام ال API وتمنع الاستخدام العشوائي أو غير المصرح به. ويمكنك إستخدام المصادقة لفعل هذا الأمر فيجب أن يتم إرسال token وتقوم بالتحقق به وإم بالسماح أو رفض الطلب . وأشهر الطرق هي : JWT Token. OAuth2. API Key. أو يمكنك إستخدام ال cors وهو السماح فقط بالطلبات من مواقع معينة . فمثلا لو تم إرسال الطلب من موقع x مثلا وأنت لم تسمح بالموقع x بهذا الأمر لن يتم إستقبال الطلب وسيتم إعادة خطأ cors .
  9. تلك الرسالة تعني wsl غير مثبيت ويجب تثبيته أولا . يرجى متابعة الفيديو المرفق لمعرفة كيفية تثبيته أو تنفيذ الأمر : wsl --install
  10. وعليكم السلام ورحمة الله وبركاته. هذا الأمر يعتمد على الإنترنت لديكِ يرجى التأكد من توصيل الجهاز بالإنترنت وأن يكون الإنترنت جيد حتى يتم التحميل وأيضا يرجى التأكد من أنه لا يوجد برنامج حماية يقوم بتعطيل تنزيل ال wsl وبعد ذلك المحاولة مرة أخرى .
  11. نعم صحيح من إدارة المشتريات ستجد تاريخ شراء الدورة وهذا هو تاريخ الإشتراك بها . وللتاكد أيضا ستجد أنه تم إرسال بريد إلكتروني إليك يمكنك البحث عن البريد من الأكاديمية وستجد أن هذا هو تاريخ شراءك للدورة.
  12. وعليكم السلام ورحمة الله وبركاته. عندما يتم فتح نافذة WSL وتغلق فورا فهذا يعني أن هناك خطأً ما غالبا حدث أثناء عملية التشغيل وبما أن النافذة تغلق بسرعة فلن يمكنك قراءة رسالة الخطأ. يرجى فتح سطر الأوامر cmd كمسؤول (Run as Administrator) ومن ثم كتابة الأمر wsl والآن ستظهر لكِ رسالة خطأ ولن تغلق النافذة يرجى إرسال صورة للخطأ الذي يظهر لكِ. ولكن أولا يجب التأكد من تفعيل ميزة WSL أو Virtualization وأيضا التأكد من تفعيل المحاكاة الافتراضية (Virtualization) من الـ BIOS . ويمكنكِ مشاهدة الفيديو التالي لحل أغلب المشاكل الخاصة ب WSL :
  13. وعليكم السلام ورحمة الله وبركاته. إن مصطلح ال Vibe Coding يشير باختصار إلى البرمجة المعتمدة بشكل كلي على الذكاء الاصطناعي حيث يتحول المبرمج من كاتب أكواد إلى مدير منتج أو مهندس حلول يصف ما يريد (ال Vibe) ويقوم ال AI بالتنفيذ. الأمر مفيد ولكنه له سلبيات وإيجابيات . الإيجابيات: سرعة خيالية: يمكنك بناء نموذج أولي (Prototype) في دقائق والذي كان يستغرق أياما. كسر حاجز اللغة: لم تعد مضطرا لحفظ Syntax لغة معينة فيمكنك كتابة كود Python وأنت خبير في C# بسهولة. التركيز على المنطق: يزيح عنك صعوبة وتأخير كتابة الكود ويجعلك تركز على حل المشكلة (Logic). السلبيات والمخاطر: وهم المعرفة: قد ينتج لك ال AI كوداً يعمل ظاهريا لكنه مليء بالثغرات الأمنية أو مشاكل الأداء . صعوبة الصيانة: إذا لم تفهم الكود الذي تم توليده ستعاني كثيرا عند محاولة تعديله أو إصلاح خطأ في المستقبل. أما بخصوص أفضل الأدوات فالأدوات هنا لا تعني مجرد ChatGPT أو غيره بل بيئات التطوير التي تدمج الذكاء الاصطناعي في قلب عملية الكتابة مثل : المحررات الذكية (The Heavy Hitters) Cursor: وهو الأقوى حاليا فهو محرر مبني على VS Code ولكنه مدمج مع AI بشكل عميق وميزته الكبرى هي Composer و Tab حيث يمكنك تعديل ملفات متعددة في وقت واحد بمجرد وصف التغيير. Windsurf : يتميز ب Flows التي تفهم سياق المشروع بشكل ممتاز. GitHub Copilot (مع VS Code). لكي لا تتحول إلى مبرمج كسول و تفقد مهاراتك يجب عليك : أن تكون المراجع لا المتفرج فلا تقبل الكود كما هو أبدا بل إقرأ كل سطر يكتبه ال AI وإذا لم تفهم سطرا معينا اطلب منه شرحه قبل أن تستخدمه. ابدأ بالهيكلية فلا تطلب منه أن يصنع لي تطبيقا كاملا مرة واحدة بل ابد بتحديد الهيكل ومن ثم المميزات واحدة تلو الأخرى . اكتب الاختبارات أولا (Test Driven Vibe).
  14. وعليكم السلام ورحمة الله وبركاته محمد. شكرا لك على تلك الملاحظة القيمة ونحن نقدرها وسنقوم بتقديم تلك الملاحظة والإقتراح للإدارة للإطلاع عليه . ولكن دعني أوضح لك عدة نقاط . أولا إن كتابة الأكواد بنفسك أمر مهم للغاية فتعلم البرمجة في البداية لا يفضل أبدا إستخدام النسخ واللصق بل يجب أن تتعود على كتابة الأكواد بنفسك لتأخذ يدك على الكتابة وأيضا حتى تثبت المعلومة لديك . وأيضا بالكتابة ستكتشف أخطاء كثيرة لديك مثلا نسيت حرف أو أخطات في إستدعاء وهذا ما سيعلمك فالأخطاء هي التي تعلمك بشكل أفضل . وأيضا من شروط الأكاديمية أن يتم تنفيذ المشاريع بنفسك وإرفاقها قبل التقدم للحصول على الشهادة والإختبار وذلك للتأكد من أن الطلاب هم الذين قاموا بكتابة الأكواد بأنفسهم ولم يقوموا بنسخها . وأيضا يتم توفير الأكواد النهائية دائما في بداية أول درس من كل مسار وأيضا هناك بعض الدروس التي يتم توفير الأوامر وبعض الاكواد والمصادر أسفلها لذلك لو أردت أى ملفات نهائية أو ملفات مستخدمه في الدرس ستجدها في أول درس في المسار .
  15. هل يمكنك توضيح نظام الملفات لديك كيق تستخدم المتحكمات وملفات العرض ؟ هل تستخدم inclued أو require أم ماذا ؟ إذا كنت تستخدم include إذا يجب أن تكون البيانات معرفة قبل سطر include ليتم رؤيتها بداخل الملف الذي إستوردته.
  16. هل تعمل على إطار عمل لارافيل ؟ إذا كان كذلك هل يمكنك توضيح الطرق التي إستخدمتها ؟ يمكن تمرير البيانات من خلال الدالة view هكذا : return view('greeting', ['name' => 'James']); حيث أولا معامل للدالة هو إسم ملف ال blade الخاص بال view والمعامل الثاني هو مصفوفة تقوم بتمرير الإسم الذي ستستعمله والبيانات التي سيتم تمريرها لل view.
  17. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  18. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  19. هذا مثال على هجوم XSS (Cross-Site Scripting). فالكود عبارة عن payload يستخدمه المخترق لاختبار ما إذا كان موقعك غير محمي ويسمح بحقن JavaScript داخل الصفحة. ويعمل الكود كالتالي : <img src="x:x"> هنا الصورة غير صالحة وبالتالي سيحدث خطأ. onerror=alert('xss') وهذا الجزء عند حدوث الخطأ يتم تنفيذ الكود داخل onerror. وفي هذا المثال سيظهر alert('xss') كدليل على نجاح الاختراق.
  20. أولا يجب أن تكون لديك مهارة مناسبة ومطلوبة للعمل الحر على الإنترنت وإذا لم يكن لديك مهارة معينة يجب عليك تعلم واحده من المهارات الكثيرة المطلوبة مثل البرمجة وغيرها . ويوجد الكثير من منصات العمل الحر التي تستطيع التقديم على المشاريع فيها ويتم دفع المال لك لإنشاء المشاريع ومن تلك المنصات هي منصة مستقل ومنصة خمسات وموقع بعيد وهي مواقع عربية ومخصصة أكثر للمبتدئين وتستطيع إنشاء حساب في تلك المنصات والتقدم على الوظائف المطروحة . وإليك المزيد من التفاصيل حول العمل الحر :
  21. مرحبا عبدالعزيز . نعتذر لك عن أى مشكلة تواجهك . يمكنك إذا وجدت صعوبة في أى شئ سواء في الدروس أو الدورة عموما أن تسأل ما تريده أسفل الدرس وستجد أن جميع المدربين المتاحين في مساعدتك في أى وقت تريده . بخصوص إسترجاع الأموال فالأمور المالية تتم من خلال مركز المساعدة يمكنك محادثتهم من خلال الرابط التالي . ولا تقلق سيتم الرد عليك ولكن حاليا يوجد ضغط على مركز المساعدة لهذا من الممكن أن يتأخر الرد ولكن بما أن رسالتك قد وصلت إلى الدعم فسيتم الرد عليك بلا شك. شكرا لتفهمك.
  22. حل المسائل البرمجية problem solving مهم جدا فأهميته تكمن في مهارة حل المشكلات التي ستكتسبها والتفكير المنطقي والذي سيجعل مستواك جيدا في حل المشكلات والتفكير في طرق الحل الجيدة والسريعة وذات الكفاءة العالية . أنصحك بتعلم هياكل البيانات والخوارزميات وهندسة البرمجيات والتي ستجعل لديك أساس قوي للبدء في مجال الذكاء الإصطناعي والعمل فيه . وإذا كنت مشترك في دورة علوم الحاسوب فهي كافية بشكل جيد للبدء في تلك الأساسيات ومن ثم تستطيع البدء في حل المسائل البرمجية.
  23. إن ربط LLMs مع قواعد البيانات يتم عبر عدة طرق ويعتمد على ما تريد فعله: فمثلا هل تريد أن يقرأ الـ LLM البيانات من قاعدة البيانات. أو هل تريد أن يولد استعلامات SQL. أو هل تريد RAG (استرجاع معلومات). أو هل تريد ذكاء اصطناعي فوق قاعدة البيانات مثل natural language queries . وبما أن سؤالك عن ال RAG سأوضح لك كيف ذلك . إن ربط LLM مع قاعدة البيانات عبر RAG مناسب لو لديك بيانات غير مهيكلة مثل النصوص أو وصف منتجات أو ملفات PDF أو وثائق. والربط بين نماذج اللغة الكبيرة (LLMs) وقواعد البيانات باستخدام تقنية التوليد المعزز بالاسترجاع (RAG) يتم عبر عمليتين رئيسيتين: أولا تحويل البيانات الخارجية الموجودة في قاعدة البيانات إلى تمثيلات عددية (vectors or embeddings) وتخزن في قاعدة بيانات متجهية ثم عند استلام سؤال أو استعلام من المستخدم يتم تحويله أيضا إلى تمثيلات عددية تستخدم للبحث في قاعدة البيانات لإيجاد المعلومات الأكثر صلة. وبعد إيجاد النتائج ذات الصلة يتم دمج هذه البيانات المسترجعة مع الاستعلام الأصلي وإعطائها لنموذج اللغة الكبير مما يزيد دقة وصحة الإجابات ويقلل من الأخطاء الناتجة عن الهلوسة اللغوية. ولتنفيذ ذلك يجب إتباع الخطوات التالية : أولا نأخذ النصوص من قاعدة البيانات. ثم نقوم بتحويلها إلى embeddings (متجهات). نقوم بحفظ المتجهات في Vector DB مثل: Pinecone Weaviate Chroma MongoDB Atlas Vector Search بعد ذلك المستخدم يقوم بطرح السؤال. نقوم بجعل التطبيق يبحث عن المعلومات الأقرب باستخدام ال embeddings. وأخيرا نرسل النتائج لل LLM كي يشكل الإجابة. وإليك المصادر التالية : https://mongodb-developer.github.io/mongodb-rag/docs/intro https://python.langchain.com/docs/use_cases/question_answering/ https://learn.microsoft.com/en-us/shows/generative-ai-for-beginners/retrieval-augmented-generation-rag-and-vector-databases-generative-ai-for-beginners
  24. وعليكم السلام ورحمة الله وبركاته. دورة علوم الحاسوب هي دورة مخصصة للتأهيل للدخول في عالم البرمجة والحاسوب عموما وهي تعطيك أساس قوي للبناء عليه وفهم ومعرفة كيف يتعامل الحاسوب و أساسيات البرمجة عموما لذلك هي مهمة جدا للمبتدئين حتى لو كنت تريد التخصص في الويب فقط. لذلك الأفضل هو إنهاء الدورة للنهاية إذا لم تكن لديك أى خلفية مسبقة عن الحاسوب عموما . ولكن بما أنك تريد التخصص في الويب فأنصحك بدراسة المسارات التالية : مدخل إلى علوم الحاسوب أساسيات البرمجة قواعد البيانات إلى عالم الويب البرمجة كائنية التوجه وبعد الإنتهاء من المسارات السابقة يمكنك متابعة المسارات التالية فهي مهمة جدا ولكنها متقدمة قليلا يمكنك الرجوع إليها في وقت أخر إذا أردت : الخوارزميات وبنى المعطيات أنماط التصميم أساسيات هندسة البرمجيات إعادة تصميم البرمجيات Refactoring هل تريد أن تصبح مطور full stack أى أن تعمل كمطور واجهة أمامية وخلفية أيضا أم فقط وظيفة واحدة منهما ؟ الأفضل البدء بالمجال الذي تحبه أولا وإتقانه ومن ثم البدء في المجال الأخر . ولكن من وجهة نظري أن الواجهة الخلفية أفضل من ناحية البرمجة فهي ستفيدك في مجال البرمجة بشكل عام والتفكير المنطقي أما الواجهات الأمامية فالتصميم هو الأهم ولذلك إذا بدأت في الواجهات الخلفية ستجد سهولة إلى حد ما في تعلم الواجهات الأمامية . جميع اللغات جيدة ولا توجد لغة أفضل من لغة بل لكل منها ومميزاته وأيضا سوق العمل الذي تريد العمل فيه هو الذي سيحدد اللغة التي تريد العمل عليها فالأفضل لك البحث عن سوق العمل الذي تريده والبحث عن أكثر لغة مطلوبة به وإليك الإجابات التالية لمزيد من التفاصيل :
  25. لقد قمت بتجربة الكود وهو يعمل دون أى مشكلة ويتم إضافة الطلاب في قاعدة البيانات وبعد تحديثها تظهر في الجدول : تأكد من أنك تقوم بفتح ملف قاعدة البيانات الصحيح . حيث الملف الصحيح هو الملف school.db بجوار ملف الكود لديك.
×
×
  • أضف...