برنامه نویسی

پیاده سازی چند مدل و پشتیبانی ارائه دهنده در Tailor4Job: مدیریت تضادهای ادغام

در این پست، من تجربه خود را از افزودن دو ویژگی جدید به پروژه خود به اشتراک خواهم گذاشت، Tailor4Job:

  1. پشتیبانی از چندین مدل: فعال کردن ابزار برای پذیرش و پردازش چندین مدل هوش مصنوعی به طور همزمان.
  2. پشتیبانی ارائه دهنده: به ابزار اجازه می دهد با چندین ارائه دهنده هوش مصنوعی مانند Groq و OpenRouter کار کند.

این ویژگی‌ها در شاخه‌های موازی توسعه یافتند، که هنگام ترکیب آنها، تضادهای ادغام را معرفی کردند. بیایید روند را طی کنیم.


ویژگی های پیاده سازی شده

1. پشتیبانی از چند مدل

من عملکردی را اضافه کردم تا به Tailor4Job اجازه دهم چندین مدل را از طریق یک لیست جدا شده با کاما در CLI بپذیرد. به عنوان مثال:

python main.py --model "groq,llama3-8b-8192" --output Output
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

هر مدل تجزیه و تحلیل خود را بر روی فایل های ورودی (رزومه، نامه پوششی) اجرا می کند و یک فایل خروجی جداگانه تولید می کند که به کاربران امکان مقایسه نتایج را می دهد.

2. پشتیبانی ارائه دهنده

Tailor4Job اکنون از چندین ارائه دهنده هوش مصنوعی مانند Groq و OpenRouter پشتیبانی می کند. من API ها را برای هر دو ارائه دهنده یکپارچه کردم و گزینه های CLI را برای انتخاب ارائه دهنده اضافه کردم:

python main.py --model "google/gemma-2-9b-it:free" --provider "openrouter"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این انعطاف‌پذیری به کاربران اجازه می‌دهد به راحتی بین ارائه‌دهندگان جابجا شوند.


فرآیند ادغام و تضادها

پس از پیاده سازی هر دو ویژگی در شاخه های جداگانه، با آن مواجه شدم ادغام تضادها هنگام ادغام آنها در main شاخه Git نتوانست یک ادغام سریع به جلو را انجام دهد زیرا هر دو شاخه فایل های مشابهی را تغییر دادند (main.py و utils.py).

حل تعارضات

تضاد اصلی در نحوه مدیریت گزینه های CLI و تعاملات API بود. استفاده از نشانگرهای تضاد Git (به عنوان مثال، <<<<<<< و >>>>>>>من منطق را از هر دو شاخه ادغام کردم:

  • ترکیب منطق برای چند مدل و ارائه دهندگان متعدد.
  • کدهای متناقض در نحوه پردازش فایل ها بر اساس مدل و ارائه دهنده انتخاب شده حل شد.
  • من از ویرایشگر ادغام VS CODE استفاده کردم که به من کمک کرد تضادهای ادغام را ردیابی کنم.

پس از ادغام، من به طور کامل هر دو ویژگی را آزمایش کردم تا مطمئن شوم همه چیز به درستی کار می کند و همچنین تغییراتی را در صورت لزوم انجام دادم تا هر دو قابلیت کار کنند.[Note: I think I encountered greater number of Merge Conflicts because both the functionalities were related to each other, the second functionality cannot work without first as before I only had Groq’s Model to use, The second model was added while adding another Provider/Model]


درس های آموخته شده

  1. تضادهای ادغام اجتناب ناپذیر هستند: هنگام کار در شاخه های موازی، درگیری اتفاق می افتد. نکته کلیدی این است که تغییرات خود را جدا کنید و تعهدات خود را واضح و متمرکز نگه دارید.
  2. تست حیاتی است: پس از رفع تضادها، چندین مورد آزمایشی را اجرا کردم تا مطمئن شوم که هر دو ویژگی به طور یکپارچه با هم کار می کنند.
  3. برنامه ریزی برای ادغام: دفعه بعد، قبل از شروع کار موازی، برای ادغام ویژگی‌ها بهتر برنامه‌ریزی می‌کنم که احتمال درگیری را کاهش می‌دهد.

افکار نهایی

این آزمایشگاه تجربیات ارزشمندی را در مدیریت گردش‌های کاری Git، به ویژه مدیریت ادغام‌های پیچیده به من داد. اکنون در حل تعارضات و کار با چندین شاخه احساس اطمینان بیشتری می کنم.


پیوندها

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا