tech-afternoon dan repost
🧠 مروری بر Semantic Kernel، نرمافزار، ولی باهوش!
شاید شوخی دور از واقعیتی نباشه که طی این چند سال، اینقدر که همه روی AI تمرکز کردن یا باهاش شوآف کردن، اگر روی پیدا کردن قاتل بروسلی وقت گذاشته بودن حتمن اون نامرد رو دستگیر کرده بودن!
مایکروسافت هم که به لطف سرمایهگذاریهای هوشمندانهای که روی استارتاپها و شرکتهای مستعد داشته، اوضاع خیلی خوبی داره. یادمون نره همونطور که برنامهنویسی وب یا معماری سرویسگرا، ۲۵ سال پیش چیزهای مدرنی بودن ولی الان بدیهی و پیشپا افتاده به شمار میان؛ استفاده از AI توی نرمافزارها هم تا چند وقت دیگه (خیلی خیلی کمتر از ۲۵ سال، حتی کمتر از ۵ سال دیگه) یه موضوع بدیهی خواهد بود.
🎅 دو تا خاطره توی کامنت این مطلب میگذارم (خاطره است و اگر نخونید چیزی از مطلب رو از دست ندادید)
البته منظورم چپوندن زورکی و شوآف نیست، بلکه چیزی برای تسهیل نیازهای کاربر نهایی و ارتقاء عملکرد خود سیستمه.
کتابخونه Semantic Kernel که فقط هم برای داتنتیها نیست و پایتون و جاوا رو هم پشتیبانی میکنه؛ یک کتابخونهی متنبازه که به عنوان میانافزار (middleware) عمل میکند.
❓یعنی چی؟ یعنی این کتابخونه به توسعهدهنده کمک میکنه تا به سادگی مدلهای هوش مصنوعی مختلف رو با کدهای موجودش ترکیب کنه و عاملهای هوشمند (AI agents) بسازه، (بدون داشتن درک عمیق از دل و رودهی AI یا LLM)
❓ یکم بیشتر؟ چشم. مثلا شما میخواهید از مدلی که یه بابایی یا یه شرکتی، رایگان یا پولی، روی کامپیوتر خودتون یا روی کلاد، وجود داره و مثلا بهش یه متن میدید و میگید با صدای فلان خواننده بخونه؛ یا یه متن میدید میگید یه عکس بر اساسش بسازه؛ یا سوال و جواب عادی؛ یا سوال و جوابی که مبنای پاسخش دیتای توی دیتابیس شماست؛
مثلا شما یه نرمافزار سنتی فروشگاه آنلاین لباس داری؛ کاربر میگه برام یه ست لباس مهمونی برای فصل پاییز و سقف قیمت فلان، برای یک خانم ۳۰ ساله با سایز M پیشنهاد کن، این یه متنه، ولی Semantic Kernel این امکان رو میده به راحتی از دل دیتای ساختار یافته دیتابیس، فرض کنید جدولی که نام کالا، قیمت، رنگ و سایز رو داره، کوئری مورد نیاز رو بسازه. چجوری؟ با دیتایی که توی مدل زبانی داره میفهمه رنگهای مناسب با پاییز، یا نوع لباسهای مورد نیاز برای یک مهمانی (شلوار، پیراهن، پالتو، کفش، شالگردن برای پاییز و یک خانم نیازه) اینا رو از دل دیتابیس میکشه بیرون و متن هم از نتیج خروجی که احتمالا یه لیست از آبجکت کالا است بسازه که: فلانیجون اگر اینو اونو اونیکی رو ست کنی برای پاییز خوبه و به بودجهات هم میخوره!
🧞♂️ این یه روزی جادو بود، یه روز رویا بود، یه روز محال بود؛ الان با وجود امکانات ساختاری وکتورها و کتابخونهها به راحتی شدنیه، حتی با تغییرات کم در کدهای فعلی!
این Semantic Kernel در حقیقت یه پُله بین دنیای برنامهنویسی سنتی و مدلهای زبانی بزرگ (LLM).
فعلا هم با زبونهای C#، Python و Java قابل استفاده است. یه لایهی میانی که درخواستهای مدلهای AI رو به توابع تعریفشده توی کد ترجمه میکنه و پاسخها را مدیریت میکنه (تبدیل متن به یه کلاس، و ساخت متن با استفاده از دیتای ساختاریافته).
مدلهای هوش مصنوعی مثل GPT و DALL-E و… تحول بزرگی توی نحوه تعامل ما با نرمافزار ایجاد کردن. اما استفاده از این مدلها توی محیطهای واقعی چالشهایی هم داره:
🔤 مدیریت درخواستها: چجوری درخواستهای پیچیده کاربر رو به توابع کدنویسی ترجمه کنیم؟ (مثلا ورودیهای متد GetProductsByDescription)
🔤 اتصال به سیستمهای موجود: چجوری هوش مصنوعی با APIها، دیتابیسها، یا فرآیندهای کسبوکاری تعامل داشته باشه؟
🔤 امنیت و مقیاسپذیری: چجوری میشه این قابلیتها رو بهصورت ایمن (جلوگیری از نشت اطلاعات یا دسترسی به دادههایی که نباید بهش دسترسی داشته باشع) و توی مقیاس بزرگ ارائه کرد؟
و Semantic Kernel برای پاسخ به این چالشها طراحی شد؛ و هدفش سادهسازی یکپارچهسازی هوش مصنوعی در پروژههای واقعیه.
👀 چی کار میشه باهاش کرد حالا؟
- ایجاد رباتها و عاملهای هوشمند: مثل چتباتهایی که بهصورت پویا تصمیم میگیرن یا فرآیندها رو خودکار میکنن.
- یکپارچهسازی آسون با کد موجود: با استفاده از قابلیت Function Calling، میشه مدلهای AI رو به کدهای موجود متصل کرد.
- اتوماسیون فرآیندهای کسبوکار: مثل پردازش خودکار درخواستهای مشتریها یا مدیریت منابع سازمانی.
- مدیریت آسون هوش مصنوعی: فراهم کردن قابلیت مشاهده و نظارت بر عملکرد مدلهای مختلف.
- اتصال به مدلهای مختلف AI (مثل OpenAI، یا مدلهایی که روی ماشین خودتون دارید)
- پشتیبانی از Vector Storeها
✨ اگر دوست دارید این موضوع ادامه بدم:
ریاکشن 🤓
شاید شوخی دور از واقعیتی نباشه که طی این چند سال، اینقدر که همه روی AI تمرکز کردن یا باهاش شوآف کردن، اگر روی پیدا کردن قاتل بروسلی وقت گذاشته بودن حتمن اون نامرد رو دستگیر کرده بودن!
مایکروسافت هم که به لطف سرمایهگذاریهای هوشمندانهای که روی استارتاپها و شرکتهای مستعد داشته، اوضاع خیلی خوبی داره. یادمون نره همونطور که برنامهنویسی وب یا معماری سرویسگرا، ۲۵ سال پیش چیزهای مدرنی بودن ولی الان بدیهی و پیشپا افتاده به شمار میان؛ استفاده از AI توی نرمافزارها هم تا چند وقت دیگه (خیلی خیلی کمتر از ۲۵ سال، حتی کمتر از ۵ سال دیگه) یه موضوع بدیهی خواهد بود.
🎅 دو تا خاطره توی کامنت این مطلب میگذارم (خاطره است و اگر نخونید چیزی از مطلب رو از دست ندادید)
البته منظورم چپوندن زورکی و شوآف نیست، بلکه چیزی برای تسهیل نیازهای کاربر نهایی و ارتقاء عملکرد خود سیستمه.
کتابخونه Semantic Kernel که فقط هم برای داتنتیها نیست و پایتون و جاوا رو هم پشتیبانی میکنه؛ یک کتابخونهی متنبازه که به عنوان میانافزار (middleware) عمل میکند.
❓یعنی چی؟ یعنی این کتابخونه به توسعهدهنده کمک میکنه تا به سادگی مدلهای هوش مصنوعی مختلف رو با کدهای موجودش ترکیب کنه و عاملهای هوشمند (AI agents) بسازه، (بدون داشتن درک عمیق از دل و رودهی AI یا LLM)
❓ یکم بیشتر؟ چشم. مثلا شما میخواهید از مدلی که یه بابایی یا یه شرکتی، رایگان یا پولی، روی کامپیوتر خودتون یا روی کلاد، وجود داره و مثلا بهش یه متن میدید و میگید با صدای فلان خواننده بخونه؛ یا یه متن میدید میگید یه عکس بر اساسش بسازه؛ یا سوال و جواب عادی؛ یا سوال و جوابی که مبنای پاسخش دیتای توی دیتابیس شماست؛
مثلا شما یه نرمافزار سنتی فروشگاه آنلاین لباس داری؛ کاربر میگه برام یه ست لباس مهمونی برای فصل پاییز و سقف قیمت فلان، برای یک خانم ۳۰ ساله با سایز M پیشنهاد کن، این یه متنه، ولی Semantic Kernel این امکان رو میده به راحتی از دل دیتای ساختار یافته دیتابیس، فرض کنید جدولی که نام کالا، قیمت، رنگ و سایز رو داره، کوئری مورد نیاز رو بسازه. چجوری؟ با دیتایی که توی مدل زبانی داره میفهمه رنگهای مناسب با پاییز، یا نوع لباسهای مورد نیاز برای یک مهمانی (شلوار، پیراهن، پالتو، کفش، شالگردن برای پاییز و یک خانم نیازه) اینا رو از دل دیتابیس میکشه بیرون و متن هم از نتیج خروجی که احتمالا یه لیست از آبجکت کالا است بسازه که: فلانیجون اگر اینو اونو اونیکی رو ست کنی برای پاییز خوبه و به بودجهات هم میخوره!
🧞♂️ این یه روزی جادو بود، یه روز رویا بود، یه روز محال بود؛ الان با وجود امکانات ساختاری وکتورها و کتابخونهها به راحتی شدنیه، حتی با تغییرات کم در کدهای فعلی!
این Semantic Kernel در حقیقت یه پُله بین دنیای برنامهنویسی سنتی و مدلهای زبانی بزرگ (LLM).
فعلا هم با زبونهای C#، Python و Java قابل استفاده است. یه لایهی میانی که درخواستهای مدلهای AI رو به توابع تعریفشده توی کد ترجمه میکنه و پاسخها را مدیریت میکنه (تبدیل متن به یه کلاس، و ساخت متن با استفاده از دیتای ساختاریافته).
مدلهای هوش مصنوعی مثل GPT و DALL-E و… تحول بزرگی توی نحوه تعامل ما با نرمافزار ایجاد کردن. اما استفاده از این مدلها توی محیطهای واقعی چالشهایی هم داره:
🔤 مدیریت درخواستها: چجوری درخواستهای پیچیده کاربر رو به توابع کدنویسی ترجمه کنیم؟ (مثلا ورودیهای متد GetProductsByDescription)
🔤 اتصال به سیستمهای موجود: چجوری هوش مصنوعی با APIها، دیتابیسها، یا فرآیندهای کسبوکاری تعامل داشته باشه؟
🔤 امنیت و مقیاسپذیری: چجوری میشه این قابلیتها رو بهصورت ایمن (جلوگیری از نشت اطلاعات یا دسترسی به دادههایی که نباید بهش دسترسی داشته باشع) و توی مقیاس بزرگ ارائه کرد؟
و Semantic Kernel برای پاسخ به این چالشها طراحی شد؛ و هدفش سادهسازی یکپارچهسازی هوش مصنوعی در پروژههای واقعیه.
👀 چی کار میشه باهاش کرد حالا؟
- ایجاد رباتها و عاملهای هوشمند: مثل چتباتهایی که بهصورت پویا تصمیم میگیرن یا فرآیندها رو خودکار میکنن.
- یکپارچهسازی آسون با کد موجود: با استفاده از قابلیت Function Calling، میشه مدلهای AI رو به کدهای موجود متصل کرد.
- اتوماسیون فرآیندهای کسبوکار: مثل پردازش خودکار درخواستهای مشتریها یا مدیریت منابع سازمانی.
- مدیریت آسون هوش مصنوعی: فراهم کردن قابلیت مشاهده و نظارت بر عملکرد مدلهای مختلف.
- اتصال به مدلهای مختلف AI (مثل OpenAI، یا مدلهایی که روی ماشین خودتون دارید)
- پشتیبانی از Vector Storeها
✨ اگر دوست دارید این موضوع ادامه بدم:
ریاکشن 🤓