كل الأنشطة
- الساعة الماضية
-
Adham Hani اشترك بالأكاديمية
-
Soliman Hussein اشترك بالأكاديمية
-
الجوهرة عبدالله اشترك بالأكاديمية
- اليوم
-
احمد حزيمي اشترك بالأكاديمية
-
Shref Esmail اشترك بالأكاديمية
-
Menna Moussa اشترك بالأكاديمية
-
حاتم أشرف محمود اشترك بالأكاديمية
-
تمام يعطيك العافيه معناته المطلوب مني حاليا هو الرياضيات قبل دخول عالم الذكاء الاصطناعي طيب اخر سؤال فقط ممكن تذكر لي ماهي المواضيع او العناوين الاساسية في تعلم الرياضيات عشان احاول ابحث على دورات متخصصه للرياضيات لمدرسين عرب عشان افهم شرح بالعربي بلا شك المصطلحات انجليزيه بعرف لكن الاشكاليه في الشرح الي بيشرح عربي فممكن تذكر لي ماهي المواضيع المطلوب مني تعلمها في الرياضيات عشان ابحث عنها وبارك الله فيك
- البارحة
-
Tasnim Amer اشترك بالأكاديمية
-
في الدورة يتم شرح الأساسيات المطلوبة فقط في الدروس لهذا لن تحتاج إلى دراسة رياضيات خارجية لمتابعة الدروس . ولكنك بالطبع ستحتاج إلى تعلم الكثير من الرياضيات وخصوصا الجبر الخطي للتقدم في المجال وفهم التقنيات المتقدمة في المجال . وإليك الإجابات التالية لكيفية تعلم الرياضيات المتعلقة بالذكاء الإصطناعي : ولكن أغلب الكورسات هي باللغة الإنجليزية وأيضا هذا المجال يحتاج إلى لغة إنجليزية جيدة لتعلمه وحتى للعمل فيه بعد ذلك .
- 4 اجابة
-
- 1
-
-
اشكرك على اجابتك طيب يعني ايش في دورة ادخلها عشان تحاول التبسيط للأسف انا تقريبا لي 15 سنة متخرج من الثانوية فأظن نسيت كل شيء في الرياضيات فهل هناك شيء يساعدوني وطبعا ومايكونش انجليزي لاني لست جيدا في الانجليزي
- 4 اجابة
-
- 1
-
-
اسعد محمد عبد الرحمن سالم الصلوي الصلوي اشترك بالأكاديمية
-
وعليكم السلام ورحمة الله وبركاته. أولا إن مجال الذكاء الإصطناعي واسع جدا وستأخذ وقتا وجهدا كبيرا لدراسته بشكل جيد وحتى بعد الدراسة سيتوجب عليك التعلم دائما لما يحدث من تطوير مستمر في هذا المجال وبشكل كبير. أى أنه سيحتاج إلى أن توفر وقتا كافايا للدراسة يوميا لتستطيع التقدم فيه. لذلك إذا كنت تريد أو تحب العمل في مجال الذكاء الإصطناعي ولا تمانع من المذاكرة وتخصيص وقت لذلك والإطلاع دائما على التطويرات فيمكنك الإشتراك في دورة الذكاء الإصطناعي فهي جيدة وأيضا إذا كان لديك خبرة سابقة في الجبر الخطي وفي الإحصاء وفي الرياضيات عموما فهذا سيكون جيد ومناسب بالنسبة لك. وهي بالطبع تحتاج إلى شخص ذكي وليس بالضرورة أن يكون عبقري ولكن شخص ذكي يستطيع الفهم بشكل جيد ويتعامل مع الرياضيات وفهمها بشكل جيد لإعتماد المجال بشكل كبير على الرياضيات . أى أنه لو هناك شخص ما لا يحب الرياضيات فسيجد المجال صعب بسبب هذا الأمر. وبما أنك لديك مسؤوليات وأيضا دوام عمل وضغوطات فالأمر يعتمد عليك هل تستطيع توفير وقت ثابت يوميا للدراسة مثلا ساعتين أو أكثر ؟ وكما وضحت لك أن المجال ليس سهلا ويحتاج إلى مجهود ووقت كبير فهنا أنت الأعلم بأمورك وكيفية تنظيمك لوقتك فيمكنك بنفسك الإجابة على هذا السؤال بعد قراءة التفاصيل السابقة التي وضحتها لك. ونعم الدورة بعد إنهائها تستطيع أن تكون شخص مبتدأ في مجال الذكاء الإصطناعي وأن تعمل في شركة أو مشاريع مستقلة لك وهذا لو قمت بإتمامها وإنهائها بفهم جيد لها . وإليك ما ستتعمله في الدورة وما الذي ستؤهلك إليه من خلال الإجابة التالية :
- 4 اجابة
-
- 1
-
-
Dina Ahmed7 اشترك بالأكاديمية
-
Abo Madian بدأ بمتابعة دورة الذكاء الاصطناعي
-
السلام عليكم لدي 3 أسئله 1- هل ظروفي تناسبني في تعلم دورة الذكاء الاصطناعي هل تحتاج مخ عبقري ولا انسان عادي مثلي مع ضغوطات الحياة انا حاليا بعمر 34 سنة ولدي عائلة وفوق كذا اشتغل بدوام 8 ساعات مسائي وانا صراحه حابب ادخل المجال واخاف ضغوطي الحياتيه تأثر على تركيزي لكن حقيقه عندي همه ان بدي ادخل ؟ 2- انا انسان تخرجت من الثانويه اداري وليس علمي يعني لا درست كيمياء ولا فيزياء وحاليا اعمل كمساعد صيدلي وظيفة متواضعه وبسيطه جدا فأنا ذكرت هذا الكلام لكي أتأكد هل وضعي يسمح بتعلم الذكاء الاصطناعي يعني يحتاج الى مخ تركيز قوي ولا عادي وازيدكم لست جيدا بالانجليزي هههههه الحاله ميئوسة الحمدالله على كل حال ..... حقيقه انا ابغى اتعلم المجال لان هذا الان هو المستقبل وهو ملك الساحة فحقيقه متردد فقط في مسألة الرياضيات واللغه وطبيعة التخصص الذكاء الاصطناعي ؟ 3- وهل دورة الذكاء الاصطناعي في اكاديمية حاسوب كافيه فقط يعني لتوظيف في شركات كبرى وهكذا وبلا شك الارزاق بيد الله بس اقصد من ناحيه كميه العلم والفهم في الدورة ؟ فأرجو الله يسعدكم ويبارك فيكم تجاوبوني جواب يمحي هذا التردد وابدأ وشكرا
- 4 اجابة
-
- 1
-
-
المشكلة ليست في فكرة الـ Hash Table نفسها، بل في دالة التجزئة التي استخدمتها وحجم الجدول الصغير، فالدالة ليست جيدة: short hash = toupper(vocabulary[0]) - 'A'; لأنها تعتمد فقط على الحرف الأول من الكلمة، بالتالي كل الكلمات التي تبدأ بنفس الحرف مثل Apple, Ant, Art, Around وستذهب إلى نفس الـ Bucket أي نفس الخانة في المصفوفة dictionary، وفي اللغة الإنجليزية، هناك حروف تبدأ بها كلمات كثيرة جداً مثل S, T, A وحروف أخرى نادرة كـ X, Z, Q، لذا سيحدث تكتل أي Clustering فبعض الـ Buckets ستحتوي على Linked Lists طويلة جدًا. وعند البحث عن كلمة تبدأ بحرف شائع، ستضطر للمرور على قائمة طويلة، ويصبح أداء البحث يقترب من O(n) في أسوأ الحالات، ويلغي الفائدة من استخدام الـ Hash Table. أيضًا حجم الجدول صغير، فلديك 26 Bucket فقط، وهو عدد قليل جدًا بالنسبة لقاموس ضخم يحتوي على آلاف الكلمات. وبالنسبة للتقسيم فالأفضل للكلمات يعتمد بشكل مباشر على العملية التي تتم على الكلمات أي دالة التجزئة، والجيد منها يعمل على توزيع الكلمات بشكل عشوائي ومتساوٍا قدر الإمكان على جميع الـ Buckets المتاحة، ولفعل ذلك يجب أن تضع في الاعتبار الكلمة بأكملها، وليس فقط الحرف الأول. بيحث نفس الكلمة يجب أن تعطي نفس قيمة الـ Hash في كل مرة، وتعتمد على كل حروف الكلمة وأي تغيير بسيط في الكلمة مثل cat و car يؤدي إلى قيمة Hash مختلفة. وأن توزع الكلمات بشكل متساوٍا على الـ Buckets المتاحة لتجنب التكتل. مثال بسيط للتوضيح مع الوضع في الإعتبار ما سبق، وهي دالة تستقبل مجموع قيم ASCII لكل الحروف في الكلمة. unsigned int hash(const char* word, unsigned int N) { unsigned int sum = 0; for (int i = 0; word[i] != '\0'; i++) { sum += word[i]; } return sum % N; } لكن ما زالت ليس جيدة كفاية، فالكلمتان cat و act لهما نفس الحروف وبالتالي ستحصلان على نفس قيمة الـ Hash وذاك يسمى تصادم - Collision. وذلك ما تم تحسينه في الدالة التالية: unsigned int hash_djb2(const char *word, unsigned int N) { unsigned long hash_value = 5381; int c; while ((c = *word++)) { hash_value = ((hash_value << 5) + hash_value) + c; } return hash_value % N; } توفر قيم مختلفة لكلمتي cat و act، وستوزع الكلمات بشكل ممتاز. بعد الدالة السابقة لم يعد من المنطقي استخدام جدول بحجم 26 فقط، فلو القاموس يحتوي على 140,000 كلمة، فالأفضل استخدام جدول بحجم كبير لتقليل احتمالية التصادمات وجعل القوائم المتصلة قصيرة جدًا. أي بدلاً من تعريف الجدول هكذا: #define ALPHABETS 26 node* dictionary[ALPHABETS] = {NULL}; نقوم بتعريفه بحجم أكبر بكثير، وكقاعدة عامة حجم الجدول يكون عدد أولي قريب من عدد العناصر التي تتوقع تخزينها أو أكبر، لأنّ استخدام عدد أولي يساعد في تحسين التوزيع عند استخدام عملية باقي القسمة %. #define N_BUCKETS 10007 node* dictionary[N_BUCKETS] = {NULL}; وبالتالي بدلاً من حساب الـ Hash بناءًا على الحرف الأول، نستخدم الدالة الجديدة: for (int i = 0; i < n_of_words; i++) { string vocabulary = get_string("Word: "); // بدلاً من // short hash = toupper(vocabulary[0]) - 'A'; unsigned int hash_index = hash_djb2(vocabulary, N_BUCKETS); insert_node(&dictionary[hash_index], vocabulary); }
-
في البداية كل ما تحتاجه بخصوص github هي الأساسيات، والأمر ليس بالصعوبة التي تتصورها، فالأمر يبدوا أنه معقد لكن على العكس تمامًا بعد أن تستوعب الأساسيات. ببساطة، Git نظام للتحكم في الإصدارات Version Control أي هو التقنية أو النظام نفسه، بينما GitHub منصة سحابية أي استضافة للمشاريع باستخدام Git أي منصة سحابية لاستضافة المشاريع. وستقوم بإنشاء مستودع Git محلي على حاسوبك، ثم دفع أي رفع المشروع إلى المستودع البعيد remote على github. وهناك مصطلحات ضرورية وهي: Repository مستودع والمقصود به هو مجلد المشروع. Commit يعني حفظ التغييرات مع رسالة تصف ما قمت به. Branch فرع وهو نسخة موازية لمستودع المشروع تستطيع به إنشاء نسخة منفصلة عن المشروع. Pull Request يعني طلب دمج التغييرات مع ما هو موجود في مستودع المشروع. Clone نسخ المشروع من مستودلجهازك Fork: نسخ مشروع شخص آخر لحسابك وخطوات التثبيت والإعداد لـ GIT على حاسوبك، وستجدها هنا: بجانب الأوامر الأساسية،وهي إنشاء مستودع جديد محلي على حاسوبك: git init git add . git commit -m "first commit" و git push لرفع التغييرات للسحابة على منصة github. وهناك أوامر أخرى من الأفضل الإلمام بها لحين الحاجة:
-
في الواقع العملي لا يتم استخدام المصطلحات العربية بالفعل، اللغة الإنجليزية هي لغة البرمجة، لكن الدارسين بالأكاديمية لغتهم الأولى هي العربية لذا المحتوى موجه لهم في المقام الأول ويتم في معظم الدروس توضيح المصطلح بالإنجليزية أيضًا، وفي حال لم يتم ذكر ذلك، أرجو الاستعانة بموسوعة حسوب وابحث عن المصطلح وستجده بالعربية والإنجليزية. وفي حال واجهت صعوبة في استيعاب مصطلح ما، تستطيع الاستفسار أسفل الدروس وسيتم توضيحه لك، ويجب معرفة المصطلح بالعريبة والإنجليزية حتى تتمكن من البحث عنه بالرغم من أنّ الإنجليزية أهم بالطبع لكون المصادر أغلبها بالإنجليزية ولن تحتاج العربية إلا في حال شرح أمر ما لشخص آخر أو للفريق وحتى في تلك الحالة يتم استخدام المصطلحات الإنجليزية. وعامًة ستجد مصطلحات متكررة ومستخدمة في أغلب البرمجة ها هي: متغير - Variable: مكان في الذاكرة لتخزين البيانات. نوع البيانات - Data Type: يحدد نوع البيانات التي يمكن تخزينها في المتغير (مثل: نص، عدد صحيح، عدد عشري). عامل - Operator: رمز أو كلمة تستخدم لتنفيذ عملية على البيانات (مثل: + للجمع، - للطرح). تعبير - Expression: مجموعة من المتغيرات والعوامل التي تُرجع قيمة. شرط - Condition: تعبير منطقي يُرجع إما صحيح أو خطأ. جملة - Statement: سطر من التعليمات البرمجية التي تُنفذ مهمة محددة. كتلة - Block: مجموعة من الجمل التي تُنفذ معًا. دالة - Function: مجموعة من التعليمات البرمجية التي تُنفذ مهمة محددة وتُعيد قيمة. معامل - Parameter: قيمة تُمرر إلى دالة عند استدعائها. مصفوفة - Array: مجموعة من البيانات من نفس النوع مخزنة في مكان واحد. حلقة - Loop: تُستخدم لتكرار مجموعة من التعليمات البرمجية عدة مرات. مصفوفة ترابطية - Associative Array / Dictionary: مجموعة من البيانات مخزنة كأزواج من المفتاح والقيمة. كائن - Object: كيان يجمع بين البيانات والوظائف التي تعمل على هذه البيانات. فئة - Class: قالب لإنشاء الكائنات. وراثة - Inheritance: آلية تسمح لفئة ما بوراثة خصائص وصفات فئة أخرى. تعدد الأشكال - Polymorphism: القدرة على استخدام نفس الاسم لوظائف مختلفة في سياقات مختلفة. ملف - File: مجموعة من البيانات المخزنة على وسيط تخزين دائم. استثناء - Exception: حدث غير طبيعي يحدث أثناء تنفيذ البرنامج. معالجة الاستثناءات - Exception Handling: آلية للتعامل مع الاستثناءات ومنع تعطل البرنامج. وبالنسبة للمصطلحات الخاصة ببايثون: وحدة - Module: ملف يحتوي على تعليمات برمجية بايثون يمكن استخدامه في برامج أخرى. حزمة - Package: مجموعة من الوحدات النمطية. قائمة - List: مجموعة مرتبة من العناصر قابلة للتغيير. مجموعة - Tuple: مجموعة مرتبة من العناصر غير قابلة للتغيير. مجموعة - Set: مجموعة غير مرتبة من العناصر الفريدة. قاموس - Dictionary: مجموعة غير مرتبة من أزواج المفتاح والقيمة. تعليمة استيراد - Import Statement: تُستخدم لاستيراد وحدات أو حزم في البرنامج. ديكوريتور - Decorator: دالة تُعدل سلوك دالة أخرى. مولد - Generator: دالة تُعيد سلسلة من القيم. استدعاء ذاتي - Recursion: عندما تستدعي الدالة نفسها داخل تعريفها. تعبير لامبدا - Lambda Expression: دالة مجهولة تُعرّف وتُستخدم في سطر واحد. استيعاب القائمة - List Comprehension: طريقة لإنشاء قائمة جديدة من قائمة موجودة في سطر واحد. استيعاب المجموعة - Set Comprehension: طريقة لإنشاء مجموعة جديدة من مجموعة موجودة في سطر واحد. استيعاب القاموس - Dictionary Comprehension: طريقة لإنشاء قاموس جديد من قاموس موجود في سطر واحد. إدارة الحزم - Package Management: عملية تثبيت وتحديث وإزالة الحزم. بيئة افتراضية - Virtual Environment: بيئة معزولة لتشغيل مشروع بايثون بتبعياته الخاصة.
- 1 جواب
-
- 1
-
-
Shady-Mohamed بدأ بمتابعة انا عندي مشكلة مع اللغة العربية
-
هل الشرح باللغة العربية هيأثر عليا لما اطلع سوق العمل وعندي مشكلة في الشرح يعني انا مثلا مش متعود ان ال object اسمه كائن وهكذا مع كثير من الامثلة دا في الحاجات اللي اتشرحتلي قبل كدا بالانجليزي فاي الحل
- 1 جواب
-
- 1
-
-
Abdelrehman Elsied بدأ بمتابعة استفسار بخصوص Hash Table
-
سلام عليكم. لدي أستفسار بخصوص ال Hash Table: إذا كان لدينا قاموس ضخم (فلنأخذ قاموس اللغة الأنجليزية كمثال) فإن أنسب هيكل بيانات لتخزين القاموس هو ال Hash Table لما يوفر من سرعة ثابتة علي حساب الذاكرة. كالمثال التالي: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <cs50.h> #include <ctype.h> // Global variables #define ALPHABETS 26 #define MAX 35 // Struct node typedef struct node { string word; struct node* next; } node; // Functions prototypes void EXIT(string msg); node* find_tail(node* head); void insert_node(node** head, string word); void print_linked_list(node* head); void free_linked_list(node* head); int main(int argc, string argv[]) { if (argc != 2) { EXIT("Usage: ./dictionary [N of words]\n"); } short n_of_words = atoi(argv[1]); if (!strcmp(argv[1], "0")) { EXIT("No words added\n"); } else if (!n_of_words) { EXIT("Invalid input\n"); } else if (n_of_words > MAX) { printf("%i ", MAX); EXIT("is the max number\n"); } // Hash table starts here node* dictionary[ALPHABETS] = {NULL}; // Take vocabularies & insert them for (int i = 0; i < n_of_words; i++) { string vocabulary = get_string("Word: "); short hash = toupper(vocabulary[0]) - 'A'; insert_node(&dictionary[hash], vocabulary); } // Print & Free dictionary for (int i = 0; i < ALPHABETS; i++) { printf("%c: ", i + 'A'); if (dictionary[i]) { // print current bucket print_linked_list(dictionary[i]); printf("\n"); // free current bucket free_linked_list(dictionary[i]); } else { printf("\n"); } } } // func1: Exit program function void EXIT(string msg) { printf("%s", msg); exit(0); } // func2: To find the tail of a linked list node* find_tail(node* head) { if (!head) { return NULL; } node* temp = head; while (temp->next) { temp = temp->next; } return temp; } // func3: To insert a node to a linked list void insert_node(node** head, string vocabulary) { node* n = malloc(sizeof(node)); if (!n) { return; } n->word = vocabulary; n->next = NULL; if (!*head) { *head = n; return; } find_tail(*head)->next = n; } // func4: To print linked list items void print_linked_list(node* head) { for (node* temp = head; temp; temp = temp->next) { printf("%s ", temp->word); } } // func4: To free linked list void free_linked_list(node* head) { while (head) { node* temp = head->next; free(head); head = temp; } } أعرف أنها طريقة سيئة لتخزين الكلمات؛ إذ أردنا البحث عن كلمة ما في القاموس, فنعم سنختصر الكثير من الوقت لأننا نعلم في أي Bucket سنبحث, لكن ما زال البحث بطئ (أو حتي بنفس البطئ) لأن البرنامج سيضطر للمرور علي عناصر ال Linked List واحدة تلو الأخري. لذلك قاموا بتوسيع الجدول كي تتقسم العناصر أكثر و أكثر (كل هذا علي حساب الذاكرة). هل يمكن لأحدكم أن يشرح لي هذا التقسيم (في مثال القاموس تحديدا). كما أن هناك عملية تتم علي الكلمات كي نجد ال Bucket بنفس الوقت, ما هي هذه العملية.
- 1 جواب
-
- 1
-
-
تمام هعمل كده وانا شاء الله خير بس حضرتك معندك معلوم ليه ده بيحصل مع العلم ده اول مره تحصل معي المشكله دي اول مره الحمد الله حلت المشكله وكانت من ملفات الكاش والكوكيز في المتصفح والمسحت الملفات دي المشكله اتحلت الحمد الله الف شكراا جدا لحضرتك جزاك الله كل خير
-
قم أولاً بتحميل نسخة من الـ Notebook لتفادي حدوث خطأ ويضيع مجهودك، وذلك بالضغط على File بالأعلى ثم Download Notebook. ولحل المشكلة الحفظ قم بتجربة الضغط على السهم بجانب Save Version أعلى اليسار، ثم اختار Save and Run All (Save Version) ثم اكتب Quick Save واضغط Save. إن استمرت المشكلة قم بإعادة تشغيل الجلسة، بالضغط على Run ثم Restart Session، ثم اضغط على file واختار import notebook وقم باختيار الملف الذي قمت بتحميله لاستيراده.
- 2 اجابة
-
- 1
-
-
ارجو الرد لم أعرف طريقة للتقديم
- 2 اجابة
-
- 1
-
-
Ali Ahmed55 بدأ بمتابعة اي هي حل المشكله دي في Kaggle Notebook ؟
-
السلام عليكم دي المشكله Oops something went wrong An unknown error occurred. We suggest downloading a copy of your notebook to avoid losing your work, then refresh your browser. وكمان بعد ما اعمل refresh الNotebook مش بترض تحفظ اي حاجه جديد سواء كان الحفظ التقائي او الحفظ اليدو العادي ؟
- 2 اجابة
-
- 1
-
-
عبدالباسط ابراهيم بدأ بمتابعة هل Power BI مهم في البرمجه
-
كما وضح مصطفى في التعليق السابق فإنه لا يمكنك تشغيل Power BI رسمياً على Mac ولكن إذا كنت تحتاج إلى كل ميزات Power BI Desktop فالاختيار الأفضل هو Parallels Desktop لأنه يتيح لك تشغيل نسخة كاملة من ويندوز وتثبيت برنامج Power BI Desktop عليه، مع تكامل سلس مع نظام الماك. ولكنه مدفوع
-
في الدورة الأفضل استخدام نفس الأدوات التي بالشرح، وفي حال لديك القدرة على استخدام أدوات أخرى ورأيت أنها أفضل فلا مشكلة بالطبع. عامًة عند التطوير محليًا على حاسوبك في البداية الأسهل استخدام Jupyter Notebook وبعد فترة الأفضل استخدام vscode فهو يدعم ميزة Notebook أي مثل Jupyter Notebook لكن بميزات أفضل واحترافي أكثر وأسهل في الاستخدام. لكن عند تدريب نماذج الذكاء الاصطناعي وبحاجة إلى كرت شاشة GPU قوي، الأفضل تطوير المشروع على google colab وهو يعتمد نظام الخلايا كما في Jupyter Notebook، حيث توفر موارد حاسوبية ضخمة لتحليل البيانات وتدريب النماذج بشكل سريع جدًا مقارنًة بحاسوبك.
-
مشاريع التخرج الخاصة بالإختبار في الأكاديمية، يجب تنفيذها بمفردك، عند التقدم للإختبار يُفترض منك الجاهزية لتنفيذ مشروع بنفسك وحل المشاكل التي تواجهك، ولا مشكلة في الحصول على إرشاد لكيفية تنفيذ أمر معين لكن لن يتم تقديم الحل لك بالطبع، مجرد توجيه هنا في قسم أسئلة البرمجة. ففي الواقع العملي لن يوجد أحد مساعدتك عند تنفيذ مشروع لعميل، صحيح؟ وبخصوص الذكاء الاصطناعي، سيتم مناقشتك فيما قمت بتنفيذه، ولو اعتمدت على أدوات مساعدة بنسبة كبيرة فلن تستطيع اجتياز المناقشة وسيظهر بشكل واضح أنك استخدمت أدوات لتنفيذ المشروع دونّ استيعاب منك، وأيضًا ستواجه مشاكل لن تستطيع حلها في اعتمدت عليها بنسبة كبيرة، هي مجرد مساعد لك وليس لاستبدال عقلك ومهاراتك، فما معنى كلمة مبرمج إذن؟
-
المشكلة كيف ستوفر بيانات الكتب الدراسية؟ أي يجب توافرها بشكل رقمي وذلك متاح من المصدر وذلك متاح لدى الجهة المُصدرة للكتب فقط. على ما أعتقد كتب الوزارة متاحة PDF مجاناً على موقع الوزارة، ويوجد كتب خارجية بشكل رقمي. في حال لا يوجد كتب متوفرة لمادة معينى ستحتاج إلى عمل scan للكتاب صفحة صفحة ثم حفظ الصور على الكمبيوتر ومعالجتها من خلال OCR مثلاً لقراءة النصوص كـ Google Lens متوفر بشكل مجاني أو Adobe Scan. ثم تنظيف تلك البيانات ومعالجتها، ثم ستعتمد على تقنية RAG (Retrieval-Augmented Generation) من أجل الإجابة على الأسئلة بناءًا على قاعدة البيانات التي قمت بإنشائها من الكتب. في حال البيانات متوفرة رقميًا من خلال ملفات PDF أو Word حتى لو لم تكن كاملة، فستتخطى الجزء الصعب من المشروع وهو تجميع البيانات. والتطوير محليًا سيتم من خلال Ollama كخادم و LangChain وChromaDB مع llama3.1-8b
-
الحاسوب أي PC لا يتوفر على عتاد للإتصال بالواي فاي بشكل إفتراضي، الأمر يتوقف على نوع وإصدار اللوحة الأم motherboard حيث يوجد إصدارات توفر كرت واي فاي PCIe wifi وبلوتوث أيضًا، لكن بالطبع بتكلفة مرتفعة قليلاً مقارنًة بالإصدار العادي. ولديك لا يتوفر ذلك، ستحتاج إلى شراء كرت واي فاي PCIe wifi، ولا أنصحك بشراء USB Wi-Fi Adapter فالأداء الخاص بتلك القطعة غير جيد وغير مستقر، وكذلك مدى إتصال PCIe wifi أفضل. ما أقصده هو التالي، ويتم تركيبه في اللوحة الأم بداخل الكيسة:
- آخر أسبوع
-
@عبدالباسط ابراهيم شكرا يا استاذا الله يعطيك العافيه يصير بجيب USB Wi-Fi Adapter ان شاء الله شكرا
-
نعم بالتأكيد يحتاج الحاسوب PC إلى الإتصال السلمي للانترنت إذا كان لا يحتوى على كارت wifi وجهازك لا يحتوي على كارت wifi مدمج فيحتاج إلى كيبل إنترنت. أو يمكنك استخدام USB Wi-Fi Adapter وهي فلاشة لتشغيل ال wifi على حاسوبك والأفضل من الفلاشة كارت wifi يتم تركيبه في حاسوبك.
- 3 اجابة
-
- 1
-
-
السلام عليكم ورحمة الله وبركاته، بالنسبة لجهازي، قمت بتغييره من لابتوب إلى كمبيوتر، والحمد لله، بسب التعليق وزدت الرامات من 4 جيجابايت إلى 12 جيجابايت. المهم، معليش، كل شيء جاهز لكن الإنترنت لا يعمل على الجهاز بأي طريقة جربتها. حاولت أكثر من مرة، ، لكنه لا يعمل. هل لدى أحد خبرة في هذا الموضوع؟ الله يعطيكم العافية. وهل صحيح أن الجهاز لا يصل الإنترنت إلا بالكيبل؟ مع العلم أني لا أملك كيبل حاليًا. شكرًا لكم، وهذي بعض الصور
- 3 اجابة
-
- 1
-
-
للإتصال بقاعدة البيانات محليًا على حاسوبك، ستختار الإتصال عن طريق compass وستحصل على رابط ضعه في البرنامج وسيتم الإتصال. وهو نفس الرابط الذي يجب وضعه في مشروعك في ملف env من أجل الإتصال بقاعدة البيانات، وأيضًا وضع ذلك في متغيرات البيئة على الاستضافة عند نشر المشروع. لكن تأكد من أنّ الرابط يحتوي على كلمة المرور الخاصة بقاعدة البيانات على atlas وليس نجوم ***