مشاركة

14 تشرين الثاني (نوفمبر) 2024

تحسين أدوات المطوّرين المستندة إلى الذكاء الاصطناعي باستخدام Gemini API

سكوت فيرنر

الرئيس التنفيذي لشركة Sublayer

بايج بيلي

مهندس تجربة المطوّرين في الذكاء الاصطناعي

فيشال دارماديكاري

مهندس حلول المنتجات

العنصر الرئيسي في عرض الطبقة الفرعية

خلال العام الماضي، وفّرت تكنولوجيات الذكاء الاصطناعي الفرصة للمطوّرين للاستفادة من فرصتَين كبيرتَين، وهما تسهيل دمج تقنيات الذكاء الاصطناعي المتطوّرة في مشاريعهم وتحقيق الكفاءات المستندة إلى الذكاء الاصطناعي في عملية التطوير.

Sublayer، وهو إطار عمل موظّف الذكاء الاصطناعي المستنِد إلى Ruby، يُظهر فعالية وقوة Gemini API من خلال دمج نماذج 1.5 في عروض المطوّرين الأساسية بالإضافة إلى سير عمل الأدوات الخاصة بهم.

إبقاء مستندات الطبقة الفرعية محدّثة باستخدام Gemini

من الفرص التي يوفّرها الذكاء الاصطناعي للمطوّرين هي تمكين الفِرق، خاصةً في الشركات الناشئة الصغيرة في المرحلة الأولى، من إنجاز المزيد باستخدام موارد أقل. بالنسبة إلى الكثيرين، قد يكون ذلك في شيء بسيط ولكنه مهم مثل المستندات. في سير العمل الخاص بها، تعالج Sublayer هذه المشكلة من خلال دمج مكتبتها مع Gemini 1.5 Pro وإنشاء عمليات آلية مستندة إلى الذكاء الاصطناعي لدعم عمل الحفاظ على تحديث مستنداتها وتحديد مجالات التحسين.

"لقد تمكّنت من تنفيذ هذه الأفكار لأنّ نافذة السياق الكبيرة في Gemini تمنحك مساحة كافية لتجربة أفكار جديدة بدون الغرق في عمليات التنفيذ المعقدة والمحسّنة في البداية"،

هكذا يقول "سكوت ويرنر"، الرئيس التنفيذي لشركة Sublayer، الذي كتب مؤخرًا عن هذا المفهوم في مقالة Waste Inferences!

تتم العملية على النحو التالي:

  1. في أي وقت يتم فيه دمج طلب إعادة نظر في مستودع Sublayer الرئيسي، يتم تفعيل موظّف دعم لبدء العمل على تعديل المستندات.

  2. ينشئ موظّف الدعم طلبًا يحتوي على محتوى المكتبة بالكامل ومحتوى المستندات بالكامل وجميع المحتوى ذي الصلة بالطلب المقدَّم لمراجعة الإصدار، بالإضافة إلى تعليمات توضّح المهمة، ويرسله إلى Gemini.

  3. بعد ذلك، يردّ Gemini بنتائج منظَّمة تحتوي على مسارات الملفات وأسماءها ومحتوياتها التي تحوّلها مكتبة Sublayer إلى عنصر لاستخدامه.

  4. أخيرًا، يأخذ موظّف الدعم المعلومات المنظَّمة التي تلقّاها ويستخدمها لإنشاء فرع جديد وإجراء التغييرات المطلوبة على الملفات وإرسال طلب إعادة نظر جديد.

            
              
# Get the diff from the PR
diff = GithubGetDiffAction.new(repo: repo, pr_number: pr_number).call

# Get the contents of the library repository and docs repository
code_context = GetContextAction.new(path: code_repo_path).call
doc_context = GetContextAction.new(path: doc_repo_path).call

# Use Gemini 1.5 Pro to decide whether this PR requires a documentation update
result = DocUpdateNecessityGenerator.new(
  code_context: code_context,
  doc_context: doc_context,
  diff: diff
).generate

# Use Gemini 1.5 Pro to generate suggested changes to the documentation
doc_update_suggestions = DocUpdateSuggestionGenerator.new(
  code_context: code_context,
  doc_context: doc_context,
  context_ignore_list: context_ignore_list,
    diff: diff
).generate

# Use Gemini 1.5 Pro to generate the changes to the suggested files
file_updates = DocUpdateGenerator.new(
  code_context: code_context,
  suggestions: suggestions,
  doc_context: doc_context,
  context_ignore_list: context_ignore_list
).generate

# Update each of the files returned by Gemini 1.5 Pro and create a new PR  
          
            
          

اطّلِع على رمز سير العمل الكامل في أمثلة Sublayer للبرامج المفتوحة المصدر.

بعد نجاح هذا المشروع الأول، توسّعت الشركة لتشمل موظّفي دعم يراقبون مستودعات موارد منفصلة للتركيز على إبقاء صفحة كتالوج معيّنة من مستنداتهم محدّثة. هناك أيضًا مهمة مشابهة يتم تنفيذها طوال الليل حيث يحلّل Gemini المستندات الحالية ويحدّد بعض مجالات التحسين ويصنّفها استنادًا إلى التأثير، وينشئ طلب مراجعة واحدًا لفريق Sublayer لمراجعته كل صباح.

توفير الذكاء الاصطناعي لمجتمع مطوّري Ruby باستخدام نماذج Gemini

بالإضافة إلى تحسين البنية الأساسية والأدوات الخاصة بالمطوّرين، تتيح Sublayer أيضًا استخدام نماذج Gemini ضمن وظائف المنتج الأساسية.

تتمثل مهمة Sublayer في تمكين المطوّرين الفرديين والفِرق الصغيرة من معالجة المشاريع الطموحة التي كانت غير قابلة للتحقيق في السابق بسبب التكلفة أو التعقيد. وتركز هذه التطبيقات على تنفيذ المهام المملة والمستهلكة للوقت والمتكررة، وهي حالة الاستخدام المثالية للذكاء الاصطناعي. ويمكن أن يتراوح ذلك بين عمليات نقل الرموز البرمجية على نطاق واسع، حيث يجب تكرار العمليات المشابهة آلاف المرات، إلى الكفاءات اليومية التي يتم تحقيقها من خلال التشغيل الآلي للمهام الصغيرة في قائمة التحقّق التي تستهلك الوقت والجهد.

يتمثل التحدي الأساسي لشركة Sublayer في دعم منتدى مطوّري Ruby الذي لم يحظَ باهتمام كافٍ في منظومة الذكاء الاصطناعي المتكاملة. من خلال دمج Gemini، تمكّنت من تلبية الطلب المتزايد على دعم Gemini ضمن أدواتها. إنّ عملية تنفيذ Gemini في Sublayer فعّالة للغاية، ولا تتطلّب سوى 60 سطرًا من الرموز البرمجية تقريبًا بفضل طبقة التجريد. وتستخدم هذه النماذج نتائج منظَّمة، وتتفاعل مع النماذج في عملية تكرارية ذات خطوة واحدة. ويبسّط هذا النهج عملية التطوير وتصحيح الأخطاء، ما يساعد المطوّرين على إنشاء تطبيقات فعّالة.

يُنصح "بتحليل المشكلة إلى أصغر مكوّنات ممكنة عند إنشاء تطبيقات مستندة إلى النماذج اللغوية الكبيرة"، كما يقول "فيرنر". "يجب تصميم برامجك بحيث تتعامل بفعالية مع أيّ مخرجات من النماذج، ما قد يعني حتى إضافة خطوات يراجعها ويُعدّلها المستخدم قبل المتابعة".

النماذج اللغوية الكبيرة، وهي جزء أساسي من بنية الذكاء الاصطناعي الأساسية

بالنسبة إلى Sublayer، فإنّ نماذج اللغة الكبيرة مثل Gemini هي أجزاء أساسية من البنية الأساسية، تشبه قواعد البيانات. تم تصميم إطار العمل لدمج المكالمات بسلاسة مع كلّ من Gemini 1.5 Pro وGemini 1.5 Flash، واسترداد البيانات المنظَّمة التي يمكن للمطوّرين استخدامها بسهولة في تطبيقاتهم. يفتح هذا النهج آفاقًا واسعة من الإمكانات، بدءًا من استخراج الإحصاءات من مصادر بيانات متنوعة ووصولاً إلى إنشاء الرموز البرمجية وتحويل قواعد الرموز البرمجية على مستوى اللغات والمكتبات. وتستخدم Sublayer أيضًا نماذج Gemini لإتاحة إنشاء مكوّنات وظيفية جديدة للمستخدمين ضمن إطار العمل نفسه. تشجع هذه الميزة "التجميع الذاتي" على التجريب وتسمح للمستخدمين باستكشاف أفكار جديدة بسرعة.

"يساعد Gemini في حلّ جميع المشاكل التي تم تصميم إطار العمل لدينا لتسهيلها، مثل إنشاء الرموز البرمجية وتحليل المهام واتّباع التعليمات وإنشاء هياكل بيانات جديدة استنادًا إلى الأمثلة".

— سكوت ويرنر، Sublayer

الخطوات التالية

في المستقبل، تستعدّ Sublayer لإطلاق Augmentations.ai، وهي منصة تتيح لجميع فِرق التطوير استخدام عمليات التشغيل الآلي التي تنشئها. سيتضمّن الإصدار الأول أداتَين مستندتَين إلى Gemini 1.5 Pro: ميزة "التدقيق الدلالي" التي تتيح للفرق إنشاء قواعد مراجعة رموز برمجية مستندة إلى الذكاء الاصطناعي وتفهم السياق وتفرض أفضل الممارسات المتغيّرة، وميزة "الملخّصات الأسبوعية" التي تحوّل نشاط التطوير في مستودعات متعددة وأدوات إدارة المنتجات إلى إحصاءات قابلة للتنفيذ من قِبل القادة.

تخطط الشركة لمواصلة استخدام مزيج من Gemini 1.5 Pro للمهام الأكثر تعقيدًا وGemini 1.5 Flash للوظائف الموجّهة للمستخدمين والتي تكون أكثر حساسيةً للوقت المستغرَق في المعالجة، وذلك أثناء طرح المزيد من الأدوات على منصة Augmentations. وسيؤدي هذا العمل أيضًا إلى تحسين إطار عمل المصدر المفتوح، ما يتيح لمجتمع Ruby الاستفادة من وظائف Gemini الجديدة عند طرحها، مع الاستفادة من الاستخدامات العملية التي يجريها فريق Sublayer.

توضّح قصة Sublayer الإمكانات التحويلية لواجهة برمجة التطبيقات Gemini API. ويُعدّ ذلك دليلاً على مدى سهولة دمج Gemini في سير العمل لدى المطوّرين، ما يفتح آفاقًا واسعة من الفرص للابتكار والتشغيل الآلي. لبدء إنشاء نماذج باستخدام Gemini، يُرجى الاطّلاع على مستندات واجهة برمجة التطبيقات.