اشتراک گذاری

۱۴ نوامبر ۲۰۲۴

بهبود ابزارهای توسعه‌دهندگان مبتنی بر هوش مصنوعی با Gemini API

اسکات ورنر

مدیرعامل ساب‌لایِر

پیج بیلی

مهندس تجربه توسعه‌دهنده هوش مصنوعی

ویشال دارمادیکاری

مهندس راهکارهای محصول

قهرمان ویترین زیرلایه

دموکراتیزه شدن هوش مصنوعی در طول سال گذشته دو فرصت بزرگ را برای توسعه‌دهندگان فراهم کرده است - ادغام هوش مصنوعی پیشرفته در پروژه‌هایشان را فوق‌العاده آسان کرده و بهره‌وری مبتنی بر هوش مصنوعی را در فرآیند توسعه آنها به ارمغان آورده است.

Sublayer ، یک چارچوب عامل هوش مصنوعی مبتنی بر Ruby، با ادغام مدل‌های ۱.۵ ما در پیشنهاد توسعه‌دهنده اصلی و همچنین در گردش‌های کاری ابزار خود، قدرت و کارایی Gemini API را نشان می‌دهد.

به‌روز نگه داشتن مستندات زیرلایه با Gemini

یکی از فرصت‌های هوش مصنوعی برای توسعه‌دهندگان، قادر ساختن تیم‌ها، به ویژه در استارت‌آپ‌های کوچک و نوپا، برای انجام کارهای بیشتر با منابع کمتر است. برای بسیاری، این امر می‌تواند در چیزی به سادگی اما حیاتی مانند مستندسازی باشد. Sublayer در گردش‌های کاری خود، با ادغام کتابخانه خود با Gemini 1.5 Pro و ایجاد اتوماسیون‌های هوش مصنوعی برای پشتیبانی از کار به‌روز نگه داشتن مستندات و شناسایی زمینه‌های بهبود، به این مهم می‌پردازد.

«همه اینها به این دلیل اتفاق افتاد که پنجره گسترده Gemini واقعاً به شما فضای تنفس می‌دهد تا ایده‌های جدید را امتحان کنید، بدون اینکه در پیاده‌سازی‌های پیچیده و بهینه از قبل گرفتار شوید.»

— اسکات ورنر، مدیرعامل Sublayer، که اخیراً در مورد این مفهوم در Waste Inferences نوشته است، می‌گوید!

این فرآیند به این صورت عمل می‌کند:

  1. هر زمان که یک PR در مخزن اصلی زیرلایه ادغام شود، یک عامل را برای به‌روزرسانی مستندات فعال می‌کند.

  2. عامل، پیامی تولید می‌کند که شامل کل محتوای کتابخانه، کل محتوای مستندات و تمام محتوای مرتبط با PR به همراه دستورالعمل‌های توضیح وظیفه است و آن را به Gemini ارسال می‌کند.

  3. سپس Gemini با خروجی‌های ساختاریافته‌ای حاوی مسیر فایل‌ها، نام‌ها و محتویاتی که کتابخانه زیرلایه به یک شیء برای استفاده تبدیل می‌کند، پاسخ می‌دهد.

  4. در نهایت، عامل اطلاعات ساختاریافته‌ای را که دریافت کرده است، دریافت کرده و از آن برای ایجاد یک شاخه جدید، اعمال تغییرات درخواستی در فایل‌ها و ارسال یک PR جدید استفاده می‌کند.

            
              
# 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 مستندات فعلی را تجزیه و تحلیل می‌کند، چند حوزه بهبود را شناسایی می‌کند، آنها را بر اساس تأثیر رتبه‌بندی می‌کند و یک PR واحد برای تیم Sublayer ایجاد می‌کند تا هر روز صبح با آن از خواب بیدار شوند و آن را بررسی کنند.

آوردن هوش مصنوعی به جامعه توسعه‌دهندگان روبی با مدل‌های Gemini

Sublayer علاوه بر کارآمدتر کردن زیرساخت‌ها و ابزارهای توسعه‌دهندگان خود، از مدل‌های Gemini در عملکرد اصلی محصول خود نیز پشتیبانی می‌کند.

ماموریت Sublayer توانمندسازی توسعه‌دهندگان انفرادی و تیم‌های کوچک برای انجام پروژه‌های بلندپروازانه‌ای است که قبلاً به دلیل هزینه یا پیچیدگی غیرقابل اجرا بودند. آن‌ها بر خودکارسازی وظایف خسته‌کننده، زمان‌بر و تکراری تمرکز دارند - که مورد استفاده‌ی ایده‌آل برای هوش مصنوعی است. این می‌تواند از مهاجرت کد در مقیاس بزرگ، که در آن عملیات مشابه باید هزاران بار تکرار شوند، تا بهره‌وری‌های روزانه که با خودکارسازی وظایف کوچک در یک چک‌لیست که زمان و انرژی را هدر می‌دهند، حاصل می‌شود، متغیر باشد.

یکی از چالش‌های اصلی Sublayer، پشتیبانی از جامعه توسعه‌دهندگان Ruby است که در اکوسیستم هوش مصنوعی نسبتاً مورد توجه قرار نگرفته است. ادغام Gemini به آنها این امکان را داد تا تقاضای روزافزون برای پشتیبانی Gemini را در ابزارهای خود برآورده کنند. پیاده‌سازی Gemini در Sublayer بسیار کارآمد است و به لطف لایه انتزاعی خود، تنها به حدود ۶۰ خط کد نیاز دارد. آنها از خروجی‌های ساختاریافته استفاده می‌کنند و در یک فرآیند تکراری تک نوبتی با مدل‌ها تعامل دارند. این رویکرد، توسعه و اشکال‌زدایی را ساده می‌کند و به توسعه‌دهندگان کمک می‌کند تا برنامه‌های قوی بسازند.

ورنر توصیه می‌کند: «هنگام ساخت برنامه‌های مبتنی بر LLM، مشکل را به کوچکترین اجزای ممکن تقسیم کنید. شما می‌خواهید برنامه‌های خود را طوری طراحی کنید که هر خروجی مدل را به طور مؤثر مدیریت کنند، که حتی ممکن است به معنای اضافه کردن عمدی مراحلی برای بررسی و ویرایش توسط یک فرد قبل از ادامه کار باشد.»

LLM ها، قطعه اصلی پازل زیرساخت هوش مصنوعی

برای Sublayer، LLMهایی مانند Gemini بخش‌های اساسی زیرساخت هستند، شبیه به پایگاه‌های داده. چارچوب آنها به گونه‌ای طراحی شده است که فراخوانی‌ها را به طور یکپارچه به Gemini 1.5 Pro و Gemini 1.5 Flash ادغام کند و داده‌های ساختاریافته‌ای را بازیابی کند که توسعه‌دهندگان می‌توانند به راحتی در برنامه‌های خود از آنها استفاده کنند. این رویکرد دنیایی از امکانات را فراهم می‌کند، از استخراج بینش از منابع داده متنوع گرفته تا تولید کد و تبدیل پایگاه‌های کد در زبان‌ها و کتابخانه‌ها. Sublayer حتی از مدل‌های Gemini استفاده می‌کند تا کاربران را قادر سازد اجزای کاربردی جدیدی را در خود چارچوب تولید کنند. این ویژگی "خود-مونتاژ" آزمایش را تشویق می‌کند و به کاربران اجازه می‌دهد تا ایده‌های جدید را به سرعت کشف کنند.

«جمینی در حل تمام مسائلی که چارچوب ما برای آسان کردن آنها طراحی شده است، عالی عمل می‌کند - تولید کد، تجزیه وظایف، دنبال کردن دستورالعمل‌ها و تولید ساختارهای داده جدید بر اساس مثال‌ها»

— اسکات ورنر، ساب‌لایِر

قدم بعدی چیست؟

با نگاهی به آینده، Sublayer در حال آماده شدن برای راه‌اندازی Augmentations.ai است، پلتفرمی که اتوماسیون‌های ایجاد شده توسط آنها را در دسترس همه تیم‌های توسعه قرار می‌دهد. نسخه اولیه آنها شامل دو ابزار مبتنی بر Gemini 1.5 Pro خواهد بود: Semantic Linting، که به تیم‌ها اجازه می‌دهد قوانین بررسی کد مبتنی بر هوش مصنوعی ایجاد کنند که زمینه را درک کرده و بهترین شیوه‌های در حال تکامل را اجرا می‌کنند، و Weekly Summaries، که فعالیت توسعه در چندین مخزن و ابزار مدیریت محصول را به بینش‌های عملی برای رهبری تبدیل می‌کند.

آنها قصد دارند همزمان با انتشار ابزارهای بیشتر روی پلتفرم Augmentations، به استفاده از ترکیبی از Gemini 1.5 Pro برای کارهای پیچیده‌تر و Gemini 1.5 Flash برای عملکردهای حساس‌تر به تأخیر و کاربرپسندتر ادامه دهند. این کار همچنین به چارچوب متن‌باز آنها بازخورد خواهد داد و جامعه Ruby را قادر می‌سازد تا از قابلیت‌های جدید Gemini همزمان با انتشار آن بهره‌مند شود، در حالی که توسط تیم Sublayer در دنیای واقعی هدایت می‌شود.

داستان Sublayer پتانسیل دگرگون‌کننده‌ی رابط برنامه‌نویسی نرم‌افزار Gemini را به نمایش می‌گذارد. این داستان گواهی بر این است که توسعه‌دهندگان چقدر آسان می‌توانند Gemini را در گردش‌های کاری خود ادغام کنند و دنیایی از فرصت‌ها را برای نوآوری و اتوماسیون به روی خود باز کنند. برای شروع ساخت با مدل‌های Gemini، مستندات API ما را مطالعه کنید.

تونسوترا

با بهره‌گیری از قابلیت‌های ترجمه چندزبانه متنی Gemini 2.0، کمیک‌ها و وب‌تون‌ها برای مخاطبان هندی در سراسر زبان‌های منطقه‌ای قابل دسترسی خواهند بود.