عملي لقد اكتسبت برامج المساعدة البرمجية اهتمامًا كبيرًا باعتبارها حالة استخدام مبكرة للذكاء الاصطناعي التوليدي – وخاصة بعد إطلاق Microsoft GitHub Copilot. ولكن إذا لم تكن راضيًا عن فكرة السماح لشركة Microsoft بالتحكم في برمجتك أو دفع 10 دولارات شهريًا مقابل هذه الامتيازات، فيمكنك دائمًا إنشاء برنامج مساعد برمجي خاص بك.
في حين كانت مايكروسوفت من بين أوائل من قاموا بذلك تسويق إن استخدام مساعد أكواد الذكاء الاصطناعي ودمجه في بيئة تطوير متكاملة ليس الخيار الوحيد المتاح. في الواقع، هناك العديد من نماذج اللغات الكبيرة (LLMs) المدربة خصيصًا مع وضع توليد الكود في الاعتبار.
علاوة على ذلك، هناك احتمال كبير أن يكون الكمبيوتر الذي تجلس أمامه الآن قادرًا على تشغيل هذه النماذج. والحيلة هنا هي دمجها في بيئة تطوير متكاملة بطريقة مفيدة بالفعل.
وهنا يأتي دور التطبيقات مثل Continue. مساعد الكود مفتوح المصدر تم تصميمه ليتم توصيله ببيئات التطوير المتكاملة الشهيرة مثل JetBrains أو Visual Studio Code والاتصال بمشغلي LLM المشهورين الذين قد تكون على دراية بهم بالفعل – مثل Ollama و Llama.cpp و LM Studio.
مثل غيره من مساعدي التعليمات البرمجية المشهورين، يدعم Continue إكمال التعليمات البرمجية وتوليدها، فضلاً عن القدرة على تحسين التعليمات البرمجية أو التعليق عليها أو إعادة صياغتها لحالات استخدام مختلفة. بالإضافة إلى ذلك، يتميز Continue أيضًا ببرنامج دردشة آلي متكامل مع وظيفة RAG، مما يسمح لك بالتحدث إلى قاعدة التعليمات البرمجية الخاصة بك.
سننظر في استخدام Continue with Ollama في هذا الدليل، ولكن التطبيق يعمل أيضًا مع العديد من النماذج الملكية – بما في ذلك OpenAI وAnthropic – عبر واجهات برمجة التطبيقات الخاصة بكل منها، إذا كنت تفضل الدفع لكل رمز بدلاً من سعر شهري ثابت.
إليك ما ستحتاجه:
- جهاز قادر على تشغيل برامج LLM متواضعة. سيعمل نظام بمعالج حديث نسبيًا، ولكن للحصول على أفضل أداء، نوصي بوحدة معالجة رسومية من Nvidia أو AMD أو Intel بسعة 6 جيجابايت على الأقل من ذاكرة الوصول العشوائي. إذا كنت من محبي أجهزة Mac، فإن أي نظام Apple Silicon، بما في ذلك M1 الأصلي، يجب أن يعمل بشكل جيد – على الرغم من أننا نوصي بذاكرة 16 جيجابايت على الأقل للحصول على أفضل النتائج.
- يفترض هذا الدليل أيضًا أنك قمت بإعداد وتشغيل نموذج Ollama على جهازك. إذا لم يكن الأمر كذلك، فيمكنك العثور على دليلنا هنا، والذي من المفترض أن يجعلك جاهزًا للعمل في أقل من عشر دقائق. بالنسبة لأولئك الذين لديهم رسومات Intel Integrated أو Arc، يمكنك العثور على دليل لنشر Ollama مع IPEX-LLM هنا.
- بيئة تطوير متكاملة متوافقة. في وقت كتابة هذه المقالة، تدعم Continue كلا من جيت برينز و كود فيجوال ستوديوإذا كنت ترغب في تخطي القياس عن بعد الخاص بشركة Microsoft بالكامل، كما نفعل، فإن مجتمع المصدر المفتوح يبني – في إس كوديوم – يعمل بشكل جيد أيضًا.
متابعة التثبيت
في هذا الدليل، سنقوم بنشر Continue في VSCodium. للبدء، قم بتشغيل IDE وافتح لوحة الإضافات. من هناك، ابحث عن “Continue” وقم بتثبيته.
بعد بضع ثوانٍ، يجب أن يبدأ تشغيل معالج الإعداد الأولي الخاص بـ Continue، مما يوجهك لاختيار ما إذا كنت ترغب في استضافة نماذجك محليًا أو الاستفادة من واجهة برمجة التطبيقات الخاصة بمزود آخر.
في هذه الحالة، سنستضيف نماذجنا محليًا عبر Ollama، لذا سنختار “النماذج المحلية”. سيؤدي هذا إلى تكوين الاستمرار في استخدام النماذج التالية فورًا. سنناقش كيفية استبدال هذه النماذج بنماذج بديلة بعد قليل، ولكن في الوقت الحالي، تقدم هذه النماذج نقطة بداية جيدة:
- لاما 3 8ب: برنامج Llama 3 هو برنامج تعليمي عام الغرض من Meta، يستخدم للتعليق على التعليمات البرمجية وتحسينها وإعادة صياغتها. يمكنك معرفة المزيد عن Llama 3 في تغطيتنا ليوم الإطلاق هنا.
- النص المضمن: نموذج تضمين يستخدم لفهرسة قاعدة التعليمات البرمجية الخاصة بك محليًا مما يتيح لك الرجوع إلى قاعدة التعليمات البرمجية الخاصة بك عند مطالبة برنامج المحادثة المتكامل.
- ستاركودر2:3ب: هذا هو نموذج إنشاء الكود بواسطة BigCode الذي يدعم وظيفة الإكمال التلقائي لعلامة التبويب Continue.
إذا تم تخطي معالج التشغيل لأي سبب من الأسباب، فلا تقلق، يمكنك سحب هذه النماذج يدويًا باستخدام Ollama عن طريق تشغيل الأمر التالي في محطتك الطرفية:
ollama pull llama3ollama pull nomic-embed-textollama pull starcoder2:3b
لمزيد من المعلومات حول إعداد النماذج ونشرها باستخدام Ollama، راجع دليل البدء السريع الخاص بنا هنا.
تحذير القياس عن بعد:
قبل أن نستمر، تجدر الإشارة إلى أنه بشكل افتراضي، يجمع Continue بيانات القياس عن بعد مجهولة المصدر بما في ذلك:
- سواء كنت تقبل أو ترفض الاقتراحات (لا تشمل أبدًا الكود أو المطالبة)؛
- اسم النموذج والأمر المستخدم؛
- عدد الرموز التي تم إنشاؤها؛
- اسم نظام التشغيل الخاص بك و IDE؛
- عدد مرات مشاهدة الصفحة.
يمكنك إلغاء الاشتراك في هذا عن طريق تعديل .continue
يمكنك أيضًا العثور على الملف الموجود في الدليل الرئيسي لديك أو عن طريق إلغاء تحديد مربع الاختيار “متابعة: تمكين القياس عن بعد” في إعدادات VS Code.
يمكن العثور على مزيد من المعلومات حول سياسات جمع البيانات الخاصة بـContinue هنا.
اطلب وستحصل على ما تريد. هل سينجح الأمر؟ هذه قصة أخرى
بعد الانتهاء من التثبيت، يمكننا البدء في البحث في الطرق المختلفة لدمج Continue في سير عملك. الطريقة الأولى هي الأكثر وضوحًا: إنشاء مقتطفات من التعليمات البرمجية من الصفر.
على سبيل المثال، إذا كنت تريد إنشاء صفحة ويب أساسية لمشروع ما، فستضغط على Ctrl-I
أو Command-I
على لوحة المفاتيح الخاصة بك وأدخل مطالبتك في شريط الإجراءات.
في هذه الحالة، كان موجهنا هو “إنشاء صفحة وصول بسيطة بتنسيق HTML باستخدام CSS مضمن”. عند إرسال موجهنا، يقوم Continue بتحميل النموذج ذي الصلة – قد يستغرق هذا بضع ثوانٍ حسب الأجهزة لديك – ويقدم لنا مقتطفًا من التعليمات البرمجية لقبوله أو رفضه.
إعادة صياغة الكود الخاص بك
يمكن أيضًا استخدام Continue لإعادة صياغة الكود الحالي أو التعليق عليه أو تحسينه أو تحريره بطريقة أخرى.
على سبيل المثال، لنفترض أن لديك نصًا برمجيًا بلغة بايثون لتشغيل برنامج LLM في PyTorch وتريد إعادة صياغته لتشغيله على جهاز Mac من إنتاج Apple Silicon. ستبدأ بتحديد المستند، ثم النقر على Ctrl-I
على لوحة المفاتيح الخاصة بك ومطالبة المساعد بالقيام بذلك.
بعد بضع ثوانٍ، يقوم Continue بتمرير توصيات النموذج بشأن التغييرات التي يعتقد أنه يجب عليك إجراؤها – مع تمييز الكود الجديد باللون الأخضر ووضع علامة على الكود للإزالة باللون الأحمر.
بالإضافة إلى إعادة صياغة الكود الحالي، يمكن أن تكون هذه الوظيفة مفيدة أيضًا لإنشاء تعليقات و/أو سلاسل توثيقية بعد حدوث الأمر. يمكن العثور على هذه الوظائف ضمن “متابعة” في قائمة السياق عند النقر بزر الماوس الأيمن.
الإكمال التلقائي لعلامات التبويب
على الرغم من أن إنشاء التعليمات البرمجية قد يكون مفيدًا لإنشاء نماذج سريعة لإثبات المفاهيم أو إعادة صياغة التعليمات البرمجية الموجودة، إلا أنه لا يزال من الممكن أن يكون غير دقيق بعض الشيء اعتمادًا على النموذج الذي تستخدمه.
أي شخص طلب من ChatGPT إنشاء كتلة من التعليمات البرمجية سيعرف أنه في بعض الأحيان يبدأ في تخيل الحزم أو الوظائف. تصبح هذه الهلوسة واضحة جدًا، نظرًا لأن التعليمات البرمجية السيئة تميل إلى الفشل بشكل مذهل. ولكن كما ذكرنا سابقًا، مناقشةيمكن أن تصبح هذه العبوات المهلوسة تهديدًا أمنيًا إذا تم اقتراحها بشكل متكرر بما فيه الكفاية.
إذا كان السماح لنموذج الذكاء الاصطناعي بكتابة الكود نيابة عنك يمثل عقبة كبيرة، فإن Continue يدعم أيضًا وظيفة استكمال الكود. وهذا يمنحك على الأقل مزيدًا من التحكم في التعديلات أو التغييرات التي يجريها النموذج أو لا يجريها.
تعمل هذه الوظيفة بشكل مشابه إلى حد ما لإتمام علامات التبويب في المحطة الطرفية. أثناء الكتابة، ستقوم ميزة Continue تلقائيًا بإدخال الكود الخاص بك في نموذج – مثل Starcoder2 أو Codestral – وتقدم اقتراحات حول كيفية إكمال سلسلة أو دالة.
تظهر الاقتراحات باللون الرمادي ويتم تحديثها مع كل ضغطة مفتاح. إذا كانت تخمينات الاستمرار صحيحة، يمكنك قبول الاقتراح بالضغط على Tab
على لوحة المفاتيح الخاصة بك.
الدردشة مع قاعدة التعليمات البرمجية الخاصة بك
إلى جانب إنشاء التعليمات البرمجية والتنبؤ بها، يتميز Continue ببرنامج دردشة آلي متكامل مع وظائف على غرار RAG. يمكنك معرفة المزيد عن RAG في دليلنا العملي هناولكن في حالة Continue، فإنه يستخدم مزيجًا من Llama 3 8B ونموذج تضمين nomic-embed-text لجعل قاعدة التعليمات البرمجية الخاصة بك قابلة للبحث.
من المؤكد أن هذه الوظيفة معقدة بعض الشيء، ولكن إليك بعض الأمثلة حول كيفية استخدامها لتسريع سير عملك:
- يكتب
@docs
متبوعًا باسم التطبيق أو الخدمة الخاصة بك – على سبيل المثالDocker
وأضف استعلامك إلى النهاية. - للاستعلام عن معلومات دليل العمل الخاص بك، اكتب
@codebase
متبوعًا باستفسارك. - يمكن إضافة الملفات أو المستندات إلى سياق النموذج عن طريق الكتابة
@files
واختيار الملف الذي ترغب بإضافته إلى القائمة المنسدلة. - يمكن إضافة الكود المحدد في المحرر إلى برنامج المحادثة الآلي بالضغط على
Ctrl-L
. - يضعط
Ctrl-Shift-R
إرسال الأخطاء من محاكي المحطة الطرفية الخاص بـ VS Code مباشرة إلى برنامج الدردشة الآلي للتشخيص.
تغيير النماذج
تعتمد موثوقية Continue في الواقع على النماذج التي تستخدمها، حيث إن البرنامج الإضافي نفسه عبارة عن إطار عمل لدمج نماذج LLM ونماذج التعليمات البرمجية في بيئة التطوير المتكاملة الخاصة بك. وفي حين أنه يحدد كيفية تفاعلك مع هذه النماذج، فإنه لا يتحكم في الجودة الفعلية للتعليمات البرمجية الناتجة.
الخبر السار هو أن Continue لا يرتبط بأي نموذج أو تقنية واحدة. وكما ذكرنا سابقًا، فهو يتصل بجميع أنواع مشغلات LLM وواجهات برمجة التطبيقات. وإذا تم إصدار نموذج جديد مُحسَّن للغة البرمجة المفضلة لديك، فلن يمنعك شيء – باستثناء أجهزتك بالطبع – من الاستفادة منه.
وبما أننا نستخدم Ollama كخادم نموذجي، فإن تبديل النماذج يعد في الأغلب مهمة سهلة نسبيًا. على سبيل المثال، إذا كنت ترغب في تبديل Llama 3 بـ Gemma 2 9B من Google وStarcoder2 بـ Codestral، فستحتاج إلى تشغيل الأوامر التالية:
ollama pull gemma2ollama pull codestral
ملاحظة: مع 22 مليار معلمة ونافذة سياقية تحتوي على 32000 رمز، يعد Codestral نموذجًا ضخمًا للغاية لتشغيله في المنزل حتى عند تحديده بدقة 4 بت. إذا كنت تواجه مشكلة في تعطله، فقد ترغب في إلقاء نظرة على شيء أصغر مثل مبرمج DeepSeekمتغيرات 1B أو 7B.
لتبديل النموذج المستخدم في برنامج المحادثة الآلي ومولد الكود، يمكنك تحديده من قائمة اختيار “متابعة”. أو يمكنك التنقل بين النماذج التي تم تنزيلها باستخدام Ctrl-'
يعد تغيير النموذج المستخدم لوظيفة الإكمال التلقائي لعلامات التبويب أكثر صعوبة ويتطلب تعديل ملف تكوين البرنامج الإضافي.
بعد سحب النموذج الذي اخترته [1]انقر على أيقونة الترس في الزاوية اليمنى السفلية من الشريط الجانبي “متابعة” [2] وتعديل إدخالات “العنوان” و”النموذج” ضمن قسم “tabAutocompleteModel” [3]إذا كنت تستخدم Codestral، فيجب أن يبدو هذا القسم على هذا النحو:
"tabAutocompleteModel": { "title": "codestral", "provider": "ollama", "model": "codestral" },
ضبط نموذج الكود المخصص
بشكل افتراضي، يجمع Continue تلقائيًا البيانات حول كيفية إنشاء برنامجك. ويمكن استخدام البيانات لضبط النماذج المخصصة استنادًا إلى أسلوبك وسير العمل الخاصين بك.
ولكي نكون واضحين، يتم تخزين هذه البيانات محليًا تحت .continue/dev_data
في دليل منزلك، ومن ما نفهمه، لا يتم تضمينه في بيانات القياس عن بعد التي يجمعها Continue افتراضيًا. ولكن إذا كنت قلقًا، فنوصيك بإيقاف تشغيله.
إن تفاصيل ضبط نماذج اللغة الكبيرة بدقة تتجاوز نطاق هذه المقالة، ولكن يمكنك معرفة المزيد حول نوع البيانات التي يجمعها التطبيق وكيف يمكن الاستفادة منها في هذه التدوينة.
نأمل أن نستكشف الضبط الدقيق بمزيد من التفصيل في التدريب العملي المستقبلي، لذا تأكد من مشاركة أفكارك حول أدوات الذكاء الاصطناعي المحلية مثل Continue بالإضافة إلى ما ترغب في أن نحاول تجربته بعد ذلك في قسم التعليقات. ®
ملاحظة المحرر:تم تزويد The Register ببطاقة رسوميات RTX 6000 Ada Generation من Nvidia ووحدة معالجة رسوميات Arc A770 من Intel لدعم قصص مثل هذه. لم يكن لدى أي من الموردين أي مدخلات فيما يتعلق بمحتوى هذه المقالة وغيرها.