همه‌ی نوشته‌های محمدرضا حقیری

نیازی نمی بینم تا اینجا رو پر کنم، ترجیح میدم یه صفحه داشته باشم و کامل توضیح بدم داستان خودم رو :)

وداع با «ناجامعه» – مطلبی عصبانی پیرامون جامعه نرم‌افزار آزاد ایران

خیلی وقت پیش، در مورد این که جماعتی که خود را به نام نرم‌افزار آزاد معرفی می‌کنند، چگونه با پروژه جبیر و من برخورد کردند (لینک) و خب در سال گذشته هم گروه موسوم به «گروه کاربران گنو/لینوکس تهران» که به اختصار تهلاگ نامیده میشه هم برخورد جالبی نداشت (لینک) و خب این موضوعات، مجدد در یکی دو ماه گذشته داغ شدند. تصمیم گرفتم هرچه لازمه، بنویسم. البته بهتره قبل از اون، این مطلبی که در مورد تیر ۹۹ و اتفاقات پیرامونش هم نوشتم بخونید.

و این رو هم پیشاپیش، هشدار می‌دم که این مقاله، احتمالا شروعی بر اتفاقی به بزرگی و با حاشیه‌های تیر ۹۹ باشه، اما شخصا ترجیح خواهم داد که دور از گود بایستم. همانگونه که بسیاری از آقایان، دعواها را می‌سازند و بیرون گود می‌ایستند و می‌گویند «لنگش کن».

نرم‌افزار آزاد، محلی است برای یادگیری، نه دعوا و ترول‌بازی

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

زمانی، دقیقا همان زمان که انجمن اوبونتو – که شاید هنوز هم از معدود هاب‌های نرم‌افزار آزاد در وب فارسی باشد – شخص من را ترول می‌کرد و به سیبل پرتاب عقده‌ها و کمبودهای شخصیتی ادمین‌ها و ناظران تبدیل شده بودم، به من عنوان ترول را دادند.

به قدری روی این عنوان پافشاری کردند که سال‌ها بعد، افراد معلوم‌الحال و پرونده‌سازی که در اکوسیستم شهره شهر هستند نیز مدام به این موضوع اشاره می‌کردند و سعی می‌کردند با این موضوع، دفاعیات شخص من از خود را تا حد زیادی بی‌معنا کنند.

این در حالیست که فلسفه نرم‌افزار آزاد، خلاف این موضوع است. نرم‌افزار آزاد ذاتا یک مفهوم Intersectional است و به افراد متفاوتی اجازه حضور می‌دهد، اما با سیستمی که به راه افتاده، هرچیزی را شاهدیم جز این مورد. در واقع به سبک اتحاد جماهیر شوروی، هرکس که در کمیته مرکزی تایید نشود، حق فعالیت ندارد. نمونه‌های زیادی از این موضوع هم در برخورد با پروژه‌ها و اشخاص دیده‌ایم.

این‌ها در حالیست که افرادی با گرایش واضح تجزیه‌طلبانه، نئونازیستی، چپ‌گرای افراطی و … در گروه‌ها جولان می‌دهند، دارای تریبون هستند و برای مثال وقتی کسی می‌گوید «چرا زنی در میان ارائه‌دهندگان نیست؟» یکهو یادشان می‌افتد که باید به آزادی برگزارکنندگان احترام گذاشت!

نرم‌افزار آزاد، در مورد شفافیت است!

در زمانی که در حوزه نرم‌افزار آزاد فعالیت می‌کردم (و بلاشک انتشار چندین کتاب آزاد، انتشار هزاران خط کد آزاد و حتی انتشار مدل‌های هوش مصنوعی آزاد که از صفحه گیتهاب من در دسترسند) بلاشک هر «ننه قمری» از راه می‌رسید یک سوال داشت «پول این کارها را از کجا می‌آوری؟»

بارها با شفافیت تمام گفتم که هزینه خیلی از این پروژه‌ها، از جیب تامین می‌شود. برخی را بعضی دوستان حمایت مالی می‌کنند (برای مثال مدتی شرکت ایران‌سرور، اسپانسر پروژه‌های هوش مصنوعی من بود) و برخی دیگر نیز بخاطر گرنت‌ها (تسهیلات)یی است که خارجی‌ها، برخلاف داخلی‌ها – که فقط ادعای تو خالی و بادمعده‌ای هستند – داده‌اند. جدی بگویم، بسیاری از این خارجی‌ها صرفا تا می‌شنیدند که قرار است تلاشی مانند مدل‌های مانی آزاد باشد، حساب را بدون چون و چرا چند هزار دلار شارژ می‌کردند و در تبلیغ و بازاریابی نتیجه نیز کمک بسزایی می‌دادند.

حتی یاد دارم که زمانی که استارتاپ مانی – که شاهدان زیادی مانند دوستان قدیمی‌ام در استارتاپ آرمو داشتم – که با هزینه شخصی ساخته شده بود بسیاری از دوستان می‌گفتند «از کجا آوردی که چنین چیزی راه‌اندازی کرده‌ای؟» شاید بهتر بود می‌گفتم «از سر قبر پدر فلان‌فلان‌شده‌ات» و انقدر خود را آزار نمی‌دادم.

حالا بیایید فرض کنید که از یک دوستی بپرسید تو که انقدر دست به رویدادت خوب است (با فرض این که تا الان در مورد هزینه و حمایت رویداد شفافیت نداشته) چه پاسخی بدهد خوب است؟ هیچ. در نهایت شما را متهم به ترول و دلقک بودن می‌کند و خودش می‌رود به رویدادهایش می‌رسد. که البته برگزاری رویداد اصلا چیز بدی نیست، من هم ضد آن نیستم فقط میخواستم بگویم که چه در جریان است.

در یک جامعه درست، مخفی‌کاری جایی ندارد.

تیر ۹۹، با تمام شک و شبهه‌های دور خودش یک خوبی داشت. مشخص کرد جماعت عریضه‌نویس همیشه معترض، آن هم از نوع معترض زیرلحافی، شناگران ماهر آب‌ندیده هستند. این شناگران ماهر آب‌ندیده آنجایی خود را نشان دادند که در برابر انجمن نام – که همه چیزش داشت شفاف و درست پیش می‌رفت – دک و پوز مبارزین عدالت اجتماعی داشتند، اما به خودشان که رسید، تپید!

چرا تپید؟ بسیاری از پروژه‌هایی که واضحا در داخل توسعه می‌یابند را به نام پروژه‌های خارجی مطرح کردند. گفتند مشارکت‌کننده از ایران دارد. در نهایت فهمیدیم که شخصی از ایران، در حال کار روی این پروژه‌ است و اتفاقا شرکت بزرگی از ایران هم پشت آن پروژه ایستاده، فقط برای این که خدای نکرده مورد اصابت ۹۹ تیر سه‌شعبه قرار نگیرند (چون بهرحال هم‌نوعان خودشان را خوب می‌شناسند) وانمود کردند که اینطور نیست. وانمود کردند رفت و آمد مالی اینجا اتفاق نمی‌افتد و صرفا حمایت از نرم‌افزار آزاد است.

بگذارید دوباره بگویم که حمایت از نرم‌افزار آزاد بسیار هم خوب است. اما چرا یک بار یکی از این دوستان از پروژه‌هایی مانند پارچ‌لینوکس یا پرسپولیس حمایت نکرد؟ چرا زمانی که مرحوم راستی‌کردار هنوز در قید حیات بود از ایشان دعوتی به عمل نیامد که سخنران یکی از رویدادها باشد؟ بگذارید باور نکنیم که تنها هدفتان توسعه آزادی نرم‌افزار است!

از طرف دیگر نیز وقتی دوستان برای اسپانسرهای مورددار – که انصافا انقدر شرف داشتند که نامی از آن‌ها بیاورند – مورد پرسش قرار می‌گیرند، تنها بازخوردشان مسدود کردن یک کاربر از گروه است؟ علاوه بر آن، از پاسخگویی درست در موردش طفره می‌روند؟ چرا پیرامون این که کانال‌های اجتماعی این رویدادها و اجتماعات بخصوص توسط چه کسی چرخانده می‌شود صحبت نمی‌شود؟ یا حتی گفته نمی‌شود که به نفع چه کسی درآمدزا یا مانتایز شده است؟ پاسخ این سوالات اگر داده شود، بسیاری از این مشکلات حل خواهند شد.

و اما وداع…

گرچه من طبق معمول، به انتشار محتوا، نرم‌افزار، مدل و … آزاد ادامه خواهم داد و این رویه را متوقف نخواهم کرد. اگر پروژه‌ای ببینم که قابل مشارکت باشد، قطعا در آن مشارکت می‌کنم.

وداع من با جامعه این است که در هیچ رویدادی مشارکت فعال نخواهم داشت. نه لاگ نه SFD نه رویداد دیگری که اسم «نرم‌افزار آزاد ایران» را یدک بکشد. همانطور که مانی نیز به زودی با اکوسیستم استارتاپی ایران وداع می‌کند تا مدتی را صرف تحقیق و تفحص پیرامون بازارهای جدید کنم، ترجیحم این خواهد بود که تمرکزم به جای این رویدادهای بی‌حاصل – به جز برای برگزارکنندگانی که جیب و رزومه خود را پرمی‌کنند – بر روی رشد دانش فردی و جمعی باشد.

در نهایت، پیش از آن که این مطلب به پایان برسد، خواهش می‌کنم این را به خود بگیرید و بدانید که حاضر به شرکت در هیچگونه صحبت دونفره، مصاحبه، مناظره و … پیرامون این مطلب خاص نیستم. چنانچه هم به دنبال مطالعات من در زمینه کارآفرینی هستید، به شما توصیه می‌کنم که به کانال تینک‌تانک بپیوندید.

در نهایت از تمامی افرادی که واقعا به مفهوم آزادی احترام گذاشتند، بدون ذره‌ای چشم‌داشت مادی رویداد برگزار کردند و مشارکت کردند، نرم‌افزار و توزیع و سخت‌افزار ساختند، تشکر ویژه می‌کنم. چنین افرادی در این ناجامعه، بسیار نایابند. امیدوارم در آینده قدردانشان باشیم.

پی‌نوشت: من این مطلب را فقط و فقط در کانال تلگرام ذهن زیبا قرار خواهم داد. انتشار آن در گروه‌ها و کانال‌های دیگر توسط دوستان دیگری رخ خواهد داد. 

Share

قهوه سرد آقای برنامه‌نویس

شاید بسیاری از شما که این پست رو میخونید، با این موضوع آشنایید که برنامه‌نویسان موجوداتی هستند که قهوه را به کد تبدیل می‌کنند و خب شاید یکی از دلایل این جمله خنده‌دار، علاقمندی زیاد برنامه‌نویسان به قهوه به جهت حفظ سرحالی و بیداری خودشان باشد.

اما خب، گاهی هم پیش میاد که قهوه آقای برنامه‌نویس، حسابی سرد می‌شه و شاید حتی تمایلی به نوشیدن قهوه نداشته باشد. پیش‌تر در این بلاگ، داستان برنامه‌نویس شدن خود را نوشته بودم (+، +) و در حال حاضر، خوندن این داستان‌ها برای دوستان Vibe Coder شاید اتفاق بدی نباشه.

اما خب این مطلب را هم می‌نویسم که به نوعی به شما بگم که «آواز دهل از دور شنیدن خوش است» و کمی هم شما رو با حقایقی در مورد بازار کار برنامه‌نویسی – یا توسعه نرم‌افزار به هر شکلی – آشنا کنم.

کوه یخ برنامه‌نویسی در بازار تکنولوژی ایران

همانطوری که می‌دونید، کوه‌های یخی معمولا سازه‌های طبیعی بزرگ از جنس یخ هستند که مقدار کمی ازشون رو بیرون از آب می‌بینیم و مقدار بسیار زیادیشون زیر آب قرار گرفته (یکی از دلایل علمی که براش خوندم – که می‌تونه اشتباه هم باشه – حبس شدن گازهای سنگین‌تر از آب مثل کربن دی‌اکسید در میان یخ‌هاست). و خب کوه یخ وقتی از بیرون دیده بشه، شبیه یک جزیره برفی زیباست.

بسیاری از کوه‌های یخی، به دلیل سرعت حرکت پایینی که دارند میزبان اکوسیستم‌های جذابی هم شدند و بسیاری از کاشفان و علاقمندان ممکنه اون‌ها رو بررسی کنند. اما اون پایین رو چطور؟ هرقدر که پایین‌تر بریم ممکنه با چیزهای ترسناک‌تری مواجه بشیم، بخصوص جایی که دیگه نور خورشید نمی‌رسه و حتی در همین سال ۲۰۲۵ هم نمی‌دونیم که چند درصد از گونه‌های حاضر در اونجا رو کشف کردیم.

بازار برنامه‌نویسی در ایران هم همین شکلیه، یک کوه یخه که در اینجا سعی می‌کنم لایه لایه به شما توضیح بدم در هر کدوم از اون لایه‌ها چی رخ می‌ده و چطور میشه ازشون جان سالم به در برد!

لایه اول: آسمان و نوک کوه یخ

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

همچنین پروسه‌های ورود و خروج، ساعت کاری، سیستم فورس‌ماژور (مثل جنگ، بلایای طبیعی، رخدادهای غیرمنتظره مثل کرونا و …) همه شفاف ذکر می‌شن و شما نیازی نیست برای کوچکترین اتفاقی که میفته، معترض بشید.

لایه دوم: استارتاپ‌ها

استارتاپ جاییه که هوا سرده ولی میشه ازش در رفت 😁 ضمن این که صرف استارتاپ بودن یک کسب و کار، اصلا چیز بدی نیست. استارتاپ‌ها هم تلاششون اینه که تا حد امکان بتونند صاف و شفاف باشند و پروسه‌ها رو درست پیش ببرند.

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

یا راه‌حل دیگر اینه که بپذیرید تا وقتی استارتاپ به درآمد نرسیده، سهام داشته باشید و وقتی درآمد مکفی داشت، سهامتون توسط سهامداران یا بنیان‌گذاران خریداری شه و در ازاش هزینه دریافت کنید.

بعنوان مورد آخر بگم که چون معمولا استارتاپ به سیستم «هیئتی» اداره میشه، شفافیت روی وظایف محوله کمتره و این می‌تونه برای شما خسته‌کننده‌تر بشه، بخصوص اگر بعنوان شخصی که بنیان‌گذار نیست، بهش ورود کنید.

لایه سوم: آب‌های سرد

شنیدید می‌گن «فلانی فقط دست بگیر داره؟» حکایت این‌هاست. مهم نیست که نیروی تمام‌وقتید، پاره‌وقتید، پروژه انجام می‌دید یا چی. تنها چیزی که برای این دست افراد مهمه اینه که شما یه چیزی فراهم کنید و تمام تلاششون اینه که به بهونه‌های مختلف، حق شما رو پرداخت نکنند.

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

بگذارید راحتتر بگم، طوری هزینه‌های الکی تراشیدند که برای شما، به شکل واقعی قرار نیست هزینه‌ای رخ بده و همه چیز در سه کلمه که با «چ» شروع میشه خلاصه میشه!

لایه چهارم: ما اینجا یک خونواده‌ایم!

این مورد اونقدر تاریک بود که بشه اولین جایی که نور خورشید بهش نمی‌رسه 😁 دوستان دقت کنید، هربار در شرکتی از این لفظ استفاده شد یک پاسخ خیلی خوب وجود داره که می‌تونید بهشون بگید:

خونواده من بدون هیچ انتظاری از من بهم پول توجیبی میده، بدون این که بخواد زمان رفت و آمدم رو کنترل کنه میذاره از خونه برم بیرون، بدون این که لقمه‌هام رو بشماره بهم غذای رایگان می‌ده. ضمن این که تو خونه می‌تونم پیژامه بپوشم. شما کدام مورد رو برای من فراهم می‌کنید؟

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

لایه پنجم: برات رزومه میشه!

خب از اونجایی که این مطلب به طور خاص در مورد برنامه‌نویسان و شغل برنامه‌نویسیه (گرچه می‌تونه به سایر شغل‌ها هم map بشه) پاسخ این یکی هم به خوبی میشه داد.

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

گرچه کار در هر شرکتی، پروژه‌ای یا هرچیزی از این قبیل داره به رزومه شما کمک می‌کنه اما این رو یادتون باشه که به هیچ عنوان قرار نیست کل رزومه‌تون رو در همون یک شرکت یا پروژه خلاصه کنید!

لایه آخر، در اعماق

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

سخن نهایی

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

نوشته شدن چنین مطلبی، قطع به یقین برای بهبود فضای کاری در اکوسیستم استارتاپی ایران، از لزومات بود و خب بالاخره بابت این که چنین مطلبی رو تونستم انقدر منسجم بنویسم، خوشحالم.

اگر به مطالب مشابه علاقمندید، می‌تونید کانال تلگرام شخصی من رو دنبال کنید و اونجا هم مطالب مشابه رو مطالعه بفرمایید.

Share

چطور MCPها مشکل زبان‌نفهمی مدل‌ها را حل می‌کنند؟

از زمانی که مدل‌های هوش مصنوعی متنی یا همان مدل‌های بزرگ زبانی (Large Language Model) مثل ChatGPT ارائه شدند، همیشه یک مشکل بزرگ داشتند، این که زبان‌نفهم بودند! در واقع این زبان نفهمی در مدل‌های کوچک‌تر مثل مارال شاید بیش‌تر دیده می‌شد اما منظور و مقصود این مطلب، هذیان‌گویی یا درک نکردن مطالب ورودی نیست، بلکه عدم درک درست از ابزارهاییه که به خورد مدل‌ها داده میشه. این مساله، در ابتداء با عوامل هوش مصنوعی یا همان ایجنت‌ها حل شد. ساخت یک ایجنت کار بسیار ساده‌ایه و خب این موضوع اینجا پوشش داده شده و می‌تونید اون رو بخونید.

اما در سال گذشته شرکت Anthropic که سازنده مدل Claudeئه ابزاری ارائه کرد به اسم MCP که باید ببینیم چیه و چطور کار می‌کنه. در این پست، تمام تلاشم اینه که به ساده‌ترین زبان ممکن، MCP Serverها و این که چطور مشکل زبان‌نفهمی رو حل کردند رو برای شما توضیح بدم چون تا جایی که گشتم مطالب فارسی خوبی در موردش نبود یا اگر هم بود، در صفحات اینستاگرامی و تلگرامی بود که در وب قابل دسترسی نیستند.

اصلا MCP چیه و چطور کار می‌کنه؟

خب این یک سوال خیلی مهمه. ابتدا باید ببینیم MCP یعنی چی و چطور کار می‌کنه و چرا انقدر مهمه. پس اول بیایید یک فرض داشته باشیم. این فرض ممکنه خیلی شبیه به تست اتاق چینی (یکی از تست‌های مطرح و مشهور هوش مصنوعی) به نظر بیاد و خب تا حد زیادی همونه. اول اتاق چینی رو توضیح میدم و بعد یک مثال ملموس‌تر می‌زنم و بعد می‌ریم سراغ ادامه ماجرا.

تست اتاق چینی به این شکله که اگر شما در یک اتاق گیر بیفتید و یک سری ابزار و وسایل باشه، همراه اونا هم یه سری راهنما به زبان چینی، احتمالا صرفا با دنبال کردن نمادهایی که در راهنماها وجود داره می‌تونید در اون اتاق زنده بمونید و یا ازش بیایید بیرون. این موضوع در زبان‌آموزی و مثال ملموس‌تر ما، کاربردیه. چطور؟

فرض کنیم شما بخواهید زبان اسپانیایی یاد بگیرید (زبانی به شدت راحت‌تر از چینی) و خب احتمالا یکی از کارهایی که می‌کنید اینه که زبان گوشی یا رایانه شخصیتون رو به زبان اسپانیایی تغییر می‌دید. در این حالت جاهای آشنا رو می‌بینید. مثلا می‌تونید درک کنید که دکمه‌های قرمز احتمالا برای پاک یا متوقف کردن هستند، دکمه‌های سبز برای تایید و اجرا و الی آخر.

حالا MCP دقیقا همینه، یک راهنماست که مدل هوش مصنوعی بتونه از اتاق چینی بیاد بیرون. چطوری؟ با کمک Context. در واقع اسمش روشه Model Context Protocol یا «شیوه‌نامه متن مدل». و حتی چیز خیلی جدیدی هم نیست، فقط یک روش متفاوت از روش‌های پیشینه که برای اجرای ایجنت‌ها داشتیم.

ساز و کار  MCP زیر ذره‌بین

به جای این که این قسمت رو با دیاگرام‌های غیرقابل فهم پر کنم، خیلی ساده در مورد یک مساله فرضی توضیح می‌دم و MCP رو بیشتر می‌شکافم.

اول از همه، اگر دقت کنید اکثر MCP ها عنوان Server رو یدک می‌کشن، یعنی یک خدمتی ارائه میدن. پس کلاینت ما اینجا، خود مدل هوش مصنوعیمونه. مثلا Claude, ChatGPT یا حتی مدلی که توسط Ollama داریم روی کامپیوتر شخصیمون ران می‌کنیم.

یک سناریوی فرضی داریم. مثلا شما می‌خواهید از جایی مثل «اسنپ‌فود» سفارش ثبت کنید. وارد رابط هوش مصنوعی می‌شید و بهش می‌گید «برای من از رستوران X یک کارامل ماکیاتو ۱۰۰٪ عربیکا سفارش بده».

حالا چه اتفاقاتی در پشت صحنه رخ می‌ده؟

  • اول، MCP Server لیست ابزارهای خودش رو برمی‌گردونه. اینجا می‌تونه list_cafes باشه، می‌تونه get_order باشه و … . هرکدوم از این ابزارها، همراه یک توضیح ریزی بر می‌گردند. شبیه به چیزی که در Open API یا همون Swagger داریم.
  • اینجا مطابق ابزارها و توضیحاتشون، مدل ما باید درخواست رو بشکنه. پس چه کار می‌کنه؟
    • طبق پرامپت اولیه ما، اسم رستوران رو تشخیص میده و منوش رو از ابزار مورد استفاده، دریافت می‌کنه.
    • با ابزار جست و جو در منو، درک می‌کنه آیا کارامل ماکیاتو به صورت ۱۰۰ عربیکا موجود دارند یا نه. ممکنه اینجا از ابزار «بررسی موجودی» هم استفاده کنه.
    • در صورت موجود بودن، ممکنه به ما بگه موجوده و قیمتش ۱۰۰ هزار تومان به ازای هر فنجانه. ۲۰ هزار تومان هم هزینه ارسالش به آدرس شماست.
    • اینجا شما می‌گید «بسیار عالی سفارش رو ثبت کن».
    • بعد اینجا، ابزار ثبت سفارش رو صدا می‌زنه. بعد از اون، به شما یک سفارش تایید نشده میده، همراه لینک پرداخت. بعد از پرداخت شما، احتمالا یک ریکوئست دیگه میره سمت سرور که چک کنه پرداخت شده یا نه. حتی اینجا ممکنه شماره پرداخت و … هم از شما دریافت بشه که با ابزار متناسب، چک کنند آیا این پرداختی انجام شده که سفارش انجام شه یا خیر.
    • بعد از اون شما صرفا با «چت کردن» می‌تونید از وضعیت سفارشتون آگاه شید.
  • پس از این، هربار بخواهید سفارشی ثبت کنید، یک MCP بین شما و اسنپ‌فود هست که سفارشتون رو مثل سابق (زنگ زدن به رستوران و درخواست یک سفارش خاص) ثبت و پردازش کنه.

عملکرد MCP به این شکله و خب همونطوری که می‌بینید، در واقع به جای این که چند ابزار رو به زور بخواهیم به خورد مدل زبانی بدیم، همه رو می‌بریم زیر پرچم یک ابزار و اون رو تبدیل می‌کنیم به یک MCP سرور.

مزایا و معایب MCP ها

طبیعتا وقتی یک ابزار جدید معرفی میشه، مزایا و معایب اون هم باید زیر نظر داشته باشبم. به همین خاطر، اینجا مزایا و معایبی که خودم بهش رسیدم رو هم براتون لیست می‌کنم که خب شاید در استفاده از MCPها مد نظر داشته باشیدش.

مزایای MCPها

  • استانداردسازی ارتباط با ابزارها: از اونجایی که MCP یک پروتکل یا شیوه‌نامه به حساب میاد، میشه گفت که همه چیز رو به شکل استانداردی درمیاره. پس این موضوع، موضوع مهم و حائز اهمیتی خواهد بود. در واقع می‌دونیم که یک استاندارد جامع داریم که مدل‌های زبانیمون بتونن بفهمنشون.
  • کنترل بهتر روی جریان داده: از اونجایی که وظیفه اصلی مدل زبانی ما میشه تبدیل محتوای «قابل خواندن برای انسان» یا Human Readable به محتوای «قابل خواندن برای کامپیوتر» یا Machine Readable (محتوایی مثل XML, JSON, YAML و …) کنترل بهتری روی جریان داده‌ها هم خواهیم داشت. در واقع می‌تونیم اینجا داده‌های ورودی کاربر رو هم ذخیره کنیم و مورد بررسی قرار بدیم (طبیعتا با اطلاع کاربر).
  • مقیاس‌پذیری: یکی از بزرگترین گلوگاه‌های بیزنس‌های هوش مصنوعی، همیشه مقیاس‌پذیری نسبتا پایینیه که دارند. تقریبا هرجایی که مانی رو پرزنت می‌کردم، بعد از این سوال کلیشه‌ای مسخره که با میدجرنی چه فرقی داره می‌پرسیدند شما چطوری اسکیل می‌کنید؟ خب MCPها این مساله رو هم حل می‌کنند. در واقع می‌تونن برای چند مدل، چندین و چند کاربر و … همزمان کار کنند و مشکلات مرتبط رو به راحتی کاهش بدن.

معایب MCPها

  • پیچیدگی در پیاده‌سازی اولیه: از اونجایی که میشه MCPها رو نوعی از IaC یا Infrastructure as Code دونست، میشه گفت این مشکل جهان‌شمول پیاده‌سازی اولیه طولانی رو همه ابزارهای این‌چنینی دارند. حداقل روی خوب ماجرا اینه که این کار «فقط یک بار» انجام داده میشه و بعدش نیاز به تکرار مکررات نیست.
  • وابستگی به کیفیت مدل: طبیعتا مدلی مثل Gemma 27B با مدلی مثل OpenAI GPT 5 در کیفیت یکسان نیست و باید این رو هم خودتون و هم مشتری‌های احتمالیتون در نظر بگیره. حالا باز با استفاده از مدل‌های بزرگتر، این مشکل تا حد زیادی پوشش داده میشه. یعنی رفتن سمت مدلی مثل GLM یا Kimi K2 یا DeepSeek V3.1 و …، این مسائل رو می‌تونیم تا حد بسیار خوبی حل کنیم.
  • استفاده زیاد از توکن: در نهایت، از اونجایی که هربار مدل رو در نقش «کلاینت» قرار می‌دیم، تعداد زیادی توکن مصرف میشه که البته این موضوع هم تا حد خیلی خوبی، توسط شرکت‌هایی مثل Cloudflare یا حتی خود آنتروپیک، در حال حل شدنه که در آینده نه چندان دور در موردش خواهم نوشت.

همانطور که می‌بینید، MCP هم روش خالی از عیب و ایرادی نیست ولی روش مطمئن و خوبی برای اجرای ابزارهامون از طریق مدل‌های زبانیه. شما می‌تونید از این روش استفاده کنید و مثلا گوگل کلندر یا اینستاگرامتون رو مدیریت کنید یا چند مدل رو به هم متصل کنید و یک ابرابزار بسازید. در نهایت، همه چیز برمی‌گرده به این که خودتون قصد انجام چه کاری داشته باشید.

سخن پایانی

در پایان باید این موضوع رو متذکر بشم که هوش مصنوعی، مثل همه ابزارهایی که تا الان ازش استفاده کردیم، یک ابزاره. یک ابزار برای پیش‌برد کارهامون و به قول سرمایه‌گذاران سیلیکون‌ولی، برای انجام کارهای بیشتر در زمان کوتاهتر و خب دلیل محبوبیت و جذابیت زیادش هم برای عموم مردم، تا الان همین بوده. هرچیزی که هم که حول هوش مصنوعی ساخته شده مثل همین MCP ها، دقیقا برای اینه که زندگی ما راحتتر بشه و کارهای تکرار پذیرمون کمتر.

اگر علاقمند به محتوای هوش مصنوعی در این سبک هستید، علاوه بر این بلاگ می‌تونید کانال تلگرام من رو هم دنبال کنید و اونجا هم مطالب کوتاه و اخباری که در این مورد می‌نویسم رو مطالعه کنید.

Share

چگونه بهتر یاد بگیریم؟

فرآیند یادگیری آن هم در عصری که هوش مصنوعی (بخصوص این ChatGPT و Perplexity و ابزارهایی که به نوعی جایگزین گوگل و موتورهای جستجو هم شدند) به نظر ساده‌تر میاد، در صورتی که اینطور نیست. یادگیری سریع‌تر شده اما طبیعتا با پیشرفت سریع و با سرعت نزدیک به سرعت نور علم و تکنولوژی، یادگیری رو برای ما کمی سخت‌تر کرده.

در این پست بلاگ، ابتدا عمومیات و بدیهیات یادگیری رو پوشش می‌دم. پس از اون، در مورد Polymath (یا بعبارتی همه‌چیزدان) شدن صحبتی خواهم کرد و بررسی خواهیم کرد که شما چطور می‌تونید هم یک مبحث رو بهتر یاد بگیرید، هم در نهایت یک Polymath باشید.

فرآیند یادگیری، آنالوگ است

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

چرا که علاوه بر این که ما سیستمی برای درک و شهود از طریق فرآیندهای الکتروشیمایی (سلول‌ها و دستگاه عصبی) داریم، فرایندهای مکانیکی هم داریم که به شکل «حافظه عضلانی» خودشون رو نشون می‌دن. گرچه این موارد رو اصولا توجه زیادی بهش نمی‌کنیم اما مساله ساده‌ای مثل راه رفتن، نفس کشیدن، درخواست کمک کردن موقع درد داشتن و …؛ همه برمی‌گردند به این ماهیت مکانیکی و الکترومکانیکی ما.

حالا از این‌ها بگذریم، چرا باید در نظر بگیریم که یادگیری دیجیتال نیست؟ چون بسیاری از توصیه‌ها اینه که «از یوتوب یا AI یاد بگیرید». این جمله گرچه می‌تونه جمله درستی باشه، اما کاملا هم درست نیست. شما با تماشای ویدئوهای یوتوب، قطعا اطلاعات خوبی در زمینه‌های مختلف کسب می‌کنید و در این شکی نیست. اکثر نرم‌افزارهای مبتنی بر هوش مصنوعی هم به شما در درک مفاهیم کمک می‌کنند و باز هم در این نباید شکی کنید اما یادتون باشه که هوش مصنوعی به ما کمک می‌کنه کارهامون رو هوشمندانه‌تر انجام بدیم، نه این که کلا مغزمون رو بدیم دست یک مشت کد کامپیوتری 🙂

در واقع در فرایند درست یادگیری، شما علاوه بر چشم و گوش، باید سایر نقاط بدن هم (مرتبط با کاری که دارید یاد می‌گیرید) رو حتما درگیر کنید. یعنی چی؟ برگردیم به زمان دانشگاه و مدرسه و … . یادتون هست که وقتی استاد یا معلم چیزی پای تخته می‌نوشت ما هم جزوه‌برداری می‌کردیم؟ به همین دلیل همین الان هم شما یکم زور بزنید احتمال زیاد خیلی مفاهیم از اون زمان یادتون خواهد آمد.

یکی از دلایلش دقیقا درگیر سیستم آنالوگ یعنی عضلات دست شما در موضوعی بوده که داشتید نوت‌برداری می‌کردید.

حالا که این همه در مورد آنالوگ بودن فرایند یادگیری صحبت کردم، به نظرم بهتره که یکم هم در این مورد صحبت کنیم که چطور فرآیند یادگیری رو برای خودمون بهینه کنیم.

یادگیری خود را مهندسی کنید.

از اونجایی که ما مهندس هستیم و دوست داریم همه چیز رو مهندس‌وار ببینیم، به نظرم بهتره که یادگیری خودمون رو هم مهندسی کنیم. در ادامه یک سری راهکار برای شما میارم که می‌تونه به مهندسی روش یادگیری شما کمک کنه.

  • گام اول: کاغذ و قلم فراموش نشه. همونطوری که در بخش پیش گفته شد، یادگیری یک فرآیند آنالوگه و برای این که بتونیم این فرایند آنالوگ رو هرچه بهتر کنیم، نیازمند این هستیم که بخش آنالوگ بدن و ذهن رو هم روشن کنیم. همراه داشتن کاغذ و قلم و یادداشت کردن نکات مهم، واقعا به شما کمک می‌کنه در بخاطر سپردن آنچه که درحال یادگیری هستید. فرقی نداره که دارید کتاب می‌خونید یا دارید از یوتوب و ChatGPT یاد می‌گیرید، مهم اینه که بتونید کاری که دارید می‌کنید رو به شکل خلاصه و با ادبیات خودتون بازنویسی کنید.
  • گام دوم: از ابزارها کمک بگیرید. یکی از ابزارهایی که چندوقت اخیر واقعا در بهبود پروسه یادگیری به من کمک کرده ابزار NotebookLM گوگل بوده. این ابزار از شما لینک و منابع می‌گیره و بهتون کمک می‌کنه که چطور پروسه یادگیری خودتون رو بهبود بدید و بهتر یاد بگیرید. همچنین یکی دیگر از ابزارهای خوبی که ازش می‌تونید استفاده کنید قابلیت Deep Research از هوش مصنوعی گوگل یا همون Gemini می‌تونه باشه.
  • گام سوم: منفعل نباشید، از این که بزنید به دل کار؛ نترسید. فرض کنید می‌خواهید یک ابزار خاصی تولید کنید. حالا چه به قصد این که این ابزار قراره برای شما حکم سرگرمی داشته باشه چه پروژه‌ای باشه مثل مانی برای من. مهم اینه که بعد زا این که منابع خوب رو پیدا کردید و مطالعاتتون رو انجام دادید، حتما یه چیزی پیاده کنید.
  • گام چهارم: در محیط باشید. در محیط مناسب قرار گرفتن، از ارکان بسیار مهم یادگیریه. برای مثال، شرکت در یک دوره برنامه‌نویسی ممکنه از شما برنامه‌نویس نسازه (حداقل تا وقتی سه گام اول رو درست تجربه نکنید) اما در محیطی قرار می‌گیرید از افرادی که به شما ایده می‌دن. بله، ایده‌های خوب همه‌جا پیدا میشن اما مناسب‌ترین جا، جاییه که افراد هم‌فکر شما حضور داشته باشند.
  • گام پنجم: یادگیری خودتون رو به اشتراک بگذارید. حجم زیادی کانال یوتوب و بلاگ و کانال تلگرام و … وجود داره که شخص صرفا ایجادش کرده که پروسه یادگیری خودش رو به اشتراک بگذاره، این یعنی چی؟ یعنی ایجاد یک commitment یا تعهد خوب برای این که به کارش ادامه بده. شما هم اگر چنین کاری کنید احتمالا تداوم بهتری در یادگیری خواهید داشت. این رو هم بهتون بگم که هیچ کس از روز اول برنامه‌نویس، موزیسین، شاعر و … نبوده. همه وقت گذاشتند، مداومت به خرج دادن و یاد گرفتند و شدند چیزی که ما می‌شناسیم.

حالا که مهندسی یادگیری رو یاد گرفتیم، وقتشه بریم سراغ این که Polymath بشیم. البته قبل از اون شاید بهتر باشه که یکم تعاریف رو بررسی کنیم اول و بعد بریم سراغ این که چطور میشه Polymath شد.

شخص Polymath کیست؟

آیا شخصی رو می‌شناسید که در چند حوزه مختلف به معنای واقعی خبره باشه؟ در دنیای واقعی به شخصی مثل لئوناردو داوینچی که نقاش، مهندس و آناتومیست بود می‌گفتند Polymath.

در حال حاضر افراد زیادی چنین عنوانی رو یدک می‌کشند ولی خب در زمان قدیم، شایع‌تر بوده. نیوتن، گالیله، لایبنیتز، تسلا و … همه و همه Polymath بودند اما همیشه یک کژفهمی بزرگ در مورد این افراد وجود داره. می‌دونید اون چیه؟ اینه که این افراد «یه مقدار کم از هر علمی بلدند». در صورتی که اینطور نیست.

شخصی رو میشه بهش گفت Polymath که اگر پزشک، برنامه‌نویس و فوتبالیسته، در همه اون‌ها خوبه. این موضوع رو اینجا بیان کردم که بهتون بگم راه polymath شدن رو چطوری رفتم و خب در حوزه موسیقی و همچنن هوش مصنوعی، می‌تونم مدعی بشم که polymath هستم. پس کمربندها را ببندیم.

چطور Polymath بشیم؟

اولین گامش اینه که بدونید چه حوزه‌های مورد علاقه شماست. از یکی که فکر می‌کنید در دسترس‌تره، شروع کنید. احتمالا با توجه به دنیایی که امروز در پیش داریم، حرفه‌ای شدن و utilize کردن ابزارهای هوش مصنوعی براتون گزینه خوبیه.

بعد از این که به نقطه‌ای رسیدید که بتونید چنین ادعایی کنید یا خروجی‌های هوش مصنوعی و pipeline هاتون و …؛ تونست در یک محصول واقعی استفاده بشه، احتمالا می‌تونید برید سراغ برنامه‌نویسی.

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

این که یک قسمت رو نیمه‌کاره رها کنید و بعد برید سراغ یکی دیگه، اسمش polymath بودن نیست. بلکه باید در یک زمینه به حد مورد نظر خودتون برسید و سپس برید سراغ گزینه بعدی. به این شکل احتمالا می‌بینید که یادگیری موضوع بعدی چقدر هم براتون ساده‌تر خواهد شد.

خلاصه کنم، اگر یک روند منظم و با ثبات قدم داشته باشیم، احتمالا راحت می‌تونیم در زمینه‌های مورد علاقمون استاد شیم و به خودمون عنوان Polymath رو بدیم.

سخن پایانی

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

این رو هم اضافه کنم که متاسفانه در هیچ کجای سیستم آموزشی «چطور یاد گرفتن» رو به ما یاد ندادند. حتی در سال کنکور (توصیه می‌کنم که ناندانی گرگها رو که سال کنکورم نوشتم بخونید) هم به ما فقط «حذف گزینه» یاد دادند (که بخش بسیار کوچکی از یادگیری به شمار میاد) و خب همونطور که می‌بینید، من هم در ۳۰ سالگی تازه تونستم به نقطه‌ای برسم که مدعی بشم خود یادگیری رو، یاد گرفتم. امیدوارم که این مطلب، مفید باشه و به کارتون بیاد.

ضمنا مطالب کوتاه‌تر و «از هر دری سخنی» من رو می‌تونید در کانال تلگرامی ذهن زیبا بخونید و اونجا هم با هم تعامل داشته باشیم.

Share

اقتصاد API محور – چگونه Wrapper ها ما را به کشتن خواهند داد؟

مدت زیادی می‌شد که هرجا برای جذب سرمایه یا حتی حمایتی برای پلتفرم هوش مصنوعی مانی می‌رفتم، سوال اصلی این بود «چرا یک API از دالی یا میدجرنی نمی‌گیری خودتو راحت کنی؟» و حتی با این که خیلی هم حرف بی‌راهی نیست و تولیدکننده تصویر چیز خاصی نیست که بابت دیتا بخواهیم نگرانی بزرگی داشته باشیم، پاسخ‌های متعددی می‌دادم.

و خب طبیعیه که در طی چند سال گذشته سرویس‌های زیادی مانند اول‌ای‌آی اومدند که به شما امکان ساخت wrapper روی APIهای مدل‌های زبانی و تصویری متعددی رو میدن. در این مطلب، میخواهیم یک بررسی جامعه داشته باشیم که چرا این API wrapper ها می‌تونن ما و کسب و کارمون رو به ته دره هدایت کنند 🙂

اصلا API Wrapper یعنی چی؟

در دنیای هوش مصنوعی ما دو تا راه داریم که یک محصول بسازیم. تقریبا میشه گفت بسته به شرایط، یکی می‌تونه نسبت به اون یکی برتری داشته باشه اما در این مطلب، میخواهیم ببینیم که «معایب» ساخت API Wrapper چیه. به همین خاطر اول به این پرسش باید پاسخ داد که «اصلا API Wrapper یعنی چی؟»

فعل wrap در زبان انگلیسی یعنی چیزی که به چیز دیگر احاطه پیدا می‌کنه و اون رو می‌پوشونه. یعنی ما ابزاری بسازیم که در واقع فقط فرانت‌اند یک API معروف (مثل OpenAI) باشه.

حالا خیلی‌ها این API رو مستقیم از OpenAI یا DeepSeek یا MiniMax تهیه می‌کنند، یا از واسطه‌های خارجی مثل UseAPI و OpenRouter و یا این که از واسطه داخلی مثل اول‌ای‌آی و لیارا.

در این مقاله، کاری نداریم که API از کجا تهیه میشه، بلکه اصل داستان اینه که چرا این روش، در خیلی موارد روش خوبی برای توسعه محصول نیست و راه‌حل‌های جایگزین چی می‌تونه باشه.

چرا ساخت API Wrapper ایده خوبی نیست؟

در اینجا مواردی رو میارم که ساخت API Wrapper ایده خوبی نیست. شاید در پستی در آینده، مواردی رو برشمردم که اتفاقا می‌تونه ایده خوبی هم باشه.

در حال حاضر، تمرکز ما روی اون دوستانیه که با API دمو می‌کنند و مدعی میشن مدل خودشونه و این داستانا که اتفاقا عمدتا هم وقتی به سیستم‌های Air Gap یا لوکال میان، تازه مشخص میشه دموشون چقدر دروغ و دغل بوده.

خلاقیت رو ازمون می‌گیره

اولین و شاید مهم‌ترین بخش استفاده از APIها دقیقا اینه که خلاقیت ما رو می‌گیره. مثلا در نسخه‌های اولیه مانی، یک جا روشی که «میدجرنی» برای تولید عکس پیش می‌گرفت رو برای ساخت تصویر با کمک مدل خودمون تست کردم و نتیجه‌ش رو می‌تونید از این لینک مطالعه کنید.

اینجا، اگر خودم دست به Google Colab و Stable Diffusion نمی‌بردم، قاعدتا امکان این که بتونم پروسه میدجرنی رو تا حد زیادی مهندسی معکوس کنم، وجود نداشت.

جریان داده دست خودمون نیست

جریان داده در کسب و کارهای مختلف مهمه، کدهای شما، نامه‌های اداری و اطلاعات مشتریانتون مهمه. نتیجتا اگر میخواهید امنیت بالاتری رو داشته باشید، بهتره از APIها استفاده نکنید.

یا اگر هم سراغ API ها می‌رین، برید سراغ خود تامین‌کننده‌های رسمی. به جز خود OpenAI و Anthropic و DeepSeek معمولا Open Router و Together AI هم جزء تامین‌کنندگان رسمی مدل‌های زبانی هستند. همچنین Fal AI, Runware و Replicate هم جزء تامین‌کنندگان رسمی مدل‌های ویدئویی و تصویری هستند و می‌تونید از این دوستان هم API رو تهیه کنید.

آفلاین نیست

آخرین و شاید یکی از مهم‌ترین ارکان APIها – بخصوص برای مایی که در ایران زندگی می‌کنیم – این موضوعه. این موضوع یک عیب بزرگه و خب میشه با ابزارهایی مانند Ollama تا حدی از پسش بر اومد.

چطور ممکنه API Wrapper به کشتنمون بده؟

سناریوها رو به ترتیب می‌نویسم، این‌ها توضیحات زیادی ندارند چون کاملا موردی بهشون رسیدم و اگر توضیحات اضافه‌ای به ذهنم برسه قطع به یقین، در مطلبی جداگانه همه رو توضیح میدم.

  • تعطیلی ارائه‌دهنده
  • قطع و وصل شدن API (چیزی که بخصوص در APIهای واسط مثل اول‌ای‌آی کاملا پیش میاد)
  • هک شدن API و لو رفتن دیتا
  • ارسال دیتا به واسطه‌هایی که ازشون مطمئن نیستیم
  • عدم کنترل روی محصول وقتی اینترنت با مشکل مواجه می‌شه.

ممکنه مشکلات دیگری هم در میان باشه، اگر شما هم چیزی به ذهنتون رسید می‌تونید همینجا در بخش نظرات بهم بگید.

جمع‌بندی

در کل API Wrapper نوشتن برای پروژه‌های عام‌منظوره، کار عجیب و بدی نیست و خب هزینه خروج و شکست رو به وضوح کمتر می‌کنه، در حالی که برای انجام کار جدی و حساس، گزینه مناسبی نیست. اگر هرکدوم از معایبی که برشمرده شد رو تونستید برطرف کنید، احتمالا گزینه مناسبی برای شما، پروژه یا کسب و کارتونه؛ در غیر اینصورت باید کمی Local تر فکر کنید.

در نهایت، ازتون ممنونم که وقت گذاشتید و این مطلب رو خوندید. باز هم اگر نظر و پیشنهادی پیرامونش داشتید، ممنون میشم در بخش نظرات همین بلاگ یا بخش گفتگوی کانال تلگرام به من بگید.

Share

یک تخم مرغ اضافه کن: رساله‌ای در باب اثر IKEA

احتمالا شما هم در دهه هشتاد شمسی، تبلیغ معروف تلویزیونی «به همین سادگی، به همین خوشمزگی، پودر کیک رشد» رو یادتون باشه. پودرهای کیک آماده، یکی از اختراعات جالب بشر بودند که هنوز هم فکر کردن بهشون برای من شخصا جالبه. اما موضوعی که وجود داره، اینه که این پودرها، باعث شدند مفهومی به اسم اثر IKEA یا IKEA Effect به وجود بیاد.

در این مقاله، قصد دارم که ربط پودر کیک آماده به آیکیا رو توضیح بدم و بگم که چرا مهمه که از اثر آیکیا در تولید محصول استفاده کنیم و در نهایت هم یک نمونه خیلی خوبی از اثر آیکیا رو با هم نظاره‌گر خواهیم بود.

پودر کیک آماده: مردها هم آشپزی می‌کنند!

در سال ۱۹۳۰ میلادی شرکتی با نام Duff and Sons محصولی به بازار ارائه کرد. پودر کیک آماده! این محصول با شعار مردها هم آشپزی می‌کنند سعی داشت بگه در حدی کار پختن کیک رو ساده کرده که آقایون هم می‌تونن صرفا با اضافه کردن آب یا شیر به این پودر و قرار دادنش در فر، کیک بپزند.

اما یک مشکلی به مدت دو دهه، گریبان این محصول رو گرفت. نه فقط شرکت Duff and Sons بلکه هر شرکت دیگری که پودر کیک تولید می‌کرد، چنین معضلی رو باهاش روبرو بود. نمی‌تونستند بفروشند.

اما چرا یک محصولی که همه جوره کامل بود نمی‌تونست بفروشه؟ آیا مساله اعتماد بود؟ آیا مساله کیفیت بود؟ نه. اتفاقا مشتریان هرچند اندک این شرکت‌ها، از کیفیت کیکی که به دست می‌آوردند راضی بودند و کاملا به تولیدکننده اعتماد می‌کردند.

باگ ماجرا جای دیگری بود. شاید جایی که این محصول سعی داشت به طور کلی دخالت انسان در پخت کیک رو حذف کنه و این خوشایند خیلی از افراد نبود. مثل همون کاری که خیلی‌ها انتظار دارند ایجنت‌های هوش مصنوعی انجام بدند.

یک تخم مرغ اضافه کنید!

بالاخره بعد از دو دهه که محصول «پودر کیک آماده» در بازار موجود بود، شرکتی به نام Betty Crocker اومد و یک ایده بهتری داد. این‌ها گفتند که چطوره خود مشتری هم بخشی از پروسه تولید کیک بشه؟

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

همین هک ساده، باعث افزایش چند برابری فروش این محصول شد. اما حالا ربطش به آیکیا چیه؟ بهتره یه بررسی روی آیکیا داشته باشیم!

آیکیا: کسب و کار اضافه کردن تخم مرغ به پودر کیک

اگر در فضای کسب و کار و بخصوص حوزه لوازم خانگی فعال باشید حتما اسم آیکیا رو شنیدید. یک برند سوئدی که بخاطر یک موضوع خیلی معروفه:

هرچیزی که ازش می‌خرید رو خودتون باید سر هم کنید.

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

اما چرا این موضوع «سرهم کردن کتابخونه توسط خودمون» خیلی مهمه؟ چون داره مشتری رو وارد پروسه تولید می‌کنه و این یعنی فروش حس به مشتری.

اگر دقت کنید، خیلی از برندهای معروف جهان، مثل اپل، رولکس، گوچی، لامبورگینی و … بیش از این که روی محصول تمرکز کنند دارند روی حسی که مشتری از محصولشون دریافت می‌کنه تمرکز می‌کنند. برای مثال شعار خودروساز ایتالیایی، فراری؛ این بوده که شما وقتی یک فراری می‌خرید که بخواهید برای خودتون کسی باشید. در واقع به این شکل خاص بودن خودروهای خودش رو نشون داده و این خاص بودن رو به مشتری هم انتقال داده.

این مورد که مشتری رو بخشی از فرایند تولید محصول کنیم، بخاطر همین حرکت آیکیا به اثر آیکیا معروف شده و حتی باعث شده که آیکیا طرفدار خاص خودش رو پیدا کنه. یک برندی که نه لاکچریه نه حتی عقبه خیلی خاصی داره و صرفا یک برند مبلمان و لوازم خانگی با کیفیت مطلوبه، بتونه برای خودش یک جامعه هواداری تشکیل بده و این رو با ایجاد یک حس خوب در مشتری تونسته داشته باشه!

اثر آیکیا در خدمت تکنولوژی

قبل از این که بخوام از نمونه‌های عملی اثر آیکیا در تکنولوژی صحبت کنم، لازمه ذکر کنم خود آیکیا، از اثر آیکیا در تکنولوژی استفاده کرده. چطور؟ خیلی ساده‌ست.

آیکیا از اولین برندهای لوازم خانگی بوده که تکنولوژی واقعیت افزوده رو به سیستم‌های نرم‌افزاریش من‌جمله وبسایت و اپلیکیشنش اضافه کرد و اینطوری حتی حس داشتن محصولاتش رو قبل از خرید هم تونست به کاربران منتقل کنه.

اما در یک سال اخیر، ابزارهای جالبی مثل Bolt یا v0 دیدیم. این ابزارها هم در واقع همین اثر آیکیا رو دارند در زمینه برنامه‌نویسی و تولید نرم‌افزار پیاده‌سازی می‌کنند.

این ابزارها به افرادی که تجربه زیادی در راه‌اندازی استارتاپ یا ساخت نرم‌افزار ندارند، کمک می‌کننده ایده‌هاشون رو بتونن پیاده‌سازی و ارزیابی کنند و اون دسته افرادی که کمی کارکشته‌تر بودند، تونستند از این ابزارها برای جلو انداختن کار خودشون نهایت استفاده رو ببرند و در مدت‌زمان بسیار کوتاهی، نرم‌افزارهایی بسازند که بتونه درآمدزایی داشته باشه یا اصلا به صورت کامل توسط یک موجودیت دیگر تملیک بشه.

خلاصه اثر آیکیا، یک حجم خوبی دوپامین رو در مغز مشتری شما ترشح می‌کنه و این امر باعث میشه مشتری شما نوعی اعتیاد به محصولتون پیدا کنه. احتمالا در آینده از این که چطور می‌تونیم این اثر رو در محصولاتمون داشته باشیم، بنویسم!

جمع‌بندی

در عصر امروز، جذب مشتری سخت‌تر از گذشته شده. بسیاری از محصولاتی که ما می‌سازیم، بهترش توسط غول‌های بازار ساخته و عرضه میشه و ما باید بتونیم از چنین آشفته‌بازاری، جان سالم به در ببریم. استفاده از هک‌های ساده‌ای مثل یک تخم‌مرغ اضافه کن یا همین اثر آیکیا، می‌تونه به راحتی جذب تعداد خوبی از مشتری‌های ما رو تضمین کنه. به همین دلیل، پس از مدت نسبتا طولانی دست به قلم (کی‌برد؟) شدم و این مطلب رو نوشتم تا اگر شما هم در حال توسعه محصولی هستید، به نکاتی که حول جذب مشتری با این هک‌های شناختی وجود داره توجهی دوچندان کنید.

ضمنا در حال حاضر که بحث اتوماسین و ایجنت‌ها داغه، لازمه بگم که یک دوره n8n ضبط کردم که از طریق آکادمی نُد در دسترسه و به صورت هفتگی هم آپدیت روی اون میاد. اگر علاقمندید می‌تونید در این دوره هم شرکت کنید.

در پایان امیدوارم موفق و موید باشید و از خیزش ربات‌ها هم نترسید 🙂

Share

خانواده‌ مدل‌های زبانی Xei برای اجرای روی دستگاه شما آمده‌است!

مدتی پیش، پروژه‌های مختلفی مثل مارال یا جبیر رو با هدف انتشار و ساخت یک مدل زبانی بزرگ با همون LLM (مخفف Large Language Model) شروع کرده بودم اما بحث این مدل‌ها و شاید همزمان شدن انتشار این‌ها با نسخه‌های جدیدی از پلتفرم‌های مانی و آتلیه، کمی باعث شده بود که از هدف اصلی دور بشیم.

در همین مدت، مدل ۸ میلیارد پارامتری هرمز منتشر شد که خب یک بازخورد بسیار خوب از جامعه فارسی‌زبان تونست بگیره. مدل هرمز، از طریق وبسایت هاگینگ‌فیس، کاملا در دسترس شماست و می‌تونید ازش استفاده کنید.

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

تصمیم به ساخت یک خانواده از مدل‌ها

از تولیدکنندگان بزرگ و تجاری مدل‌های جنریتیو که بگذریم، بسیاری از شرکت‌هایی که مدل‌های اوپن سورس تولید می‌کنن و نام‌داران این عرصه هم هستند (مثل Alibaba Cloud, DeepSeek, Mistral و حتی Meta) عموما به یک عدد مدل کفایت نمی‌کنند.

مدل‌هایی که این شرکت‌ها تولید می‌کنند عموما در یک «خانواده» قرار داره و این خانواده هم بر اساس تعداد پارامتر، توانایی استنتاج (یا همون Reasoning) توانایی بینایی ماشین (یا همون vision) و …، تعیین می‌شن. برای مثال یکی از مدل‌های معروف این حوزه که LLaMA نام داره و توسط شرکت متا ساخته شده، معمولا در یک نمونه کوچک (۷ یا ۸ میلیارد پارامتری)، یک نمونه متوسط (۱۱ یا ۱۳ پارامتری) و نمونه‌های بزرگ (۷۰ میلیارد پارامتر و بیشتر) تولید میشه.

اما خب یک مورد دیگری هم که به چشمم خورد، کاری بود که DeepSeek با R1 کرده بود. در واقع اومده بودن مدل‌های کوچکتر (از یک و نیم میلیارد تا هفتاد میلیارد پارامتر) رو با روش Distillation درست کرده بودند.

در واقع مدل‌هایی مثل LLaMA, Qwen, Mistral و … رو با داده‌هایی که از مدل دیپ‌سیک ۶۷۱ میلیارد پارامتری به دست آورده بودند، مجدد آموزش دادند که در اختیار افراد بیشتری قرار بگیره.

همین موضوع، باعث شد که به این فکر بیفتیم که در سال ۱۴۰۴ به جای این که هفته‌ای یک LLM ریلیز کنیم 😁 یک خونواده خوب از LLMها برای تمام فصول ریلیز کنیم که باز هم از DeepSeek V3 و ترین‌ کردن QLoRA و مرج کردن روی اون شروع شد.

اسم Xei از کجا میاد؟

پیش از این که بخواهیم در مورد خود مدل‌ها و روش اجراشون صحبت کنیم، کمی در مورد اسم توضیح بدم.

ریاضیدانان ایرانی مثل خوارزمی، موقعی که معادلات خاصی رو حل می‌کردند از عبارت «شیء» بعنوان مجهول استفاده می‌کردند. وقتی اروپایی‌ها آثار این دانشمندان رو به زبان‌های خودشون ترجمه کردند، درک کردند که این «شیء» در واقع مجهوله و به جای این که Object (یا چیزی معادلش) ترجمه‌ش کنند، برای حفظ حالت مجهولش از عبارت xei استفاده کردند که بعدا شد xای که در معادلات مختلف استفاده می‌کنیم.

یکی از دلایل این اسم، اینه که هم تلفظش برای داخلی‌ها راحته هم خارجی‌ها و هم یک بکگراند جالب ایرانی داره.

اما حالا مدل‌ها چی هستند؟ چرا انقدر این خونواده از مدل‌ها مهم بود؟

اهمیت خانواده مدل Xei

یکی از دلایل اصلی ساخته شدن Xei این بود که این مدل‌ها بتونن هم روی دستگاه‌های کاربر نهایی مثل من و شما اجرا شن هم روی زیرساخت‌های بزرگ و صنعتی.

در واقع هم تعدادی مدل On Device داشته باشیم و هم تعداد زیادی مدل برای استفاده Enterprise و به همین خاطر ۷ تا مدل در این خونواده، قرار گرفته که در ادامه بررسی می‌کنیم.

مدل‌های Xei

  • مدل ۰.۱ میلیارد پارامتری، مبتنی بر لاماست و صرفا زبان انگلیسی می‌فهمه و می‌تونه در کارهایی مثل کدنویسی به شما کمک کنه.
  • مدل ۰.۵ میلیارد پارامتری، مبتنی بر Qwen ساخته شده. با این که از دیتای چندزبانی درش استفاده شده ولی بهترین عملکرد رو روی انگلیسی داره و همچنان برای کارهایی مثل کدنویسی و نوشتن ایمیل، مناسبه.
  • مدل ۲ میلیارد پارامتری که مبتنی بر Gemma 2 ساخته شده و محمد شجاعی عزیز زحمت ساختش رو کشیده، اولین مدلیه که به خوبی فارسی رو درک می‌کنه و می‌تونه به زبان فارسی به شما پاسخ‌های درست بده.
  • مدل ۸ میلیارد پارامتری که در واقع همون هرمز قدیمی خودمونه و مبتنی بر Command-R از Cohere ساخته شده.
  • مدل ۳۲ میلیارد پارامتری که باز هم مبتنی بر Command-R ساخته شده و نتایج بهتر و دقیق‌تری می‌تونه تولید کنه.
  • مدل ۱۰۰ میلیارد پارامتری که باز هم مبتنی بر Command-R ساخته شده 😁
  • و در نهایت مدل ۶۷۱ میلیارد پارامتری که مبتنی بر DeepSeek V3 ساخته شده و از معماری MoE بهره می‌بره.

و خب همونطوری که می‌بینید، تا مدل ۸ میلیارد پارامتری به سادگی روی اکثر رایانه‌های شخصی حتی بدون کارت گرافیک NVIDIA قابل اجراست ولی نمونه ۳۲ و ۱۰۰ و ۶۷۱ نیاز به منابع بیشتری دارند که در ادامه به اون‌ها هم می‌پردازیم.

چطوری به Xei دسترسی پیدا کنیم؟

اگر می‌خواهید مستقیما به سمت مدل ۶۷۱ میلیارد پارامتری بریم، کافیه که به این سرویس برید، یک حساب کاربری بسازید و شروع به چت کنید.

ولی اگر دوست دارید که این مدل رو روی سیستم شخصی خودتون اجرا کنید، می‌تونید از کتابخونه Ollama نسخه مناسب رو دانلود کنید (با کارت ۲۰۵۰ تا مدل ۳۲ میلیاردی قابل اجراست، گرچه بهترین نتیجه مربوط به همون ۸ میلیاردیه).

در آموزش‌های بعدی، نحوه راه‌اندازی و کار کردن با Ollama رو هم قرار خواهم داد که ببینید چطور میشه به سادگی یک سری مدل خوب هوش مصنوعی رو روی کامپیوتر شخصی، اجرا کرد.

جمع‌بندی و سخن آخر

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

اما کل داستان این نیست و به زودی با سورپرایزهای جدید‌تری، در خدمت شما خواهیم بود. امیدوارم تا اون موقع با Xei کارهای خفنی کرده باشید 😎

Share

لسان‌دیتا: زبان دیتای شما

در چندین روز گذشته، اتفاق ناگواری رخ داد و اون هم از بین رفتن دسترسی بسیاری از کاربران ایرانی، به گوگل آنالیتیکس بود. این اتفاق محدود به افراد داخل کشور هم نبود و حتی دوستان مهاجر – که حساب کاربری گوگلشون رو در ایران ساخته بودند – هم از گزند این موضوع در امان نبودند.

در همین حوالی، بسیاری از افراد تلاش کردند که دسترسی به آنالیتیکس رو مجددا احیاء کنند. بعضی‌ها از طریق ساخت حساب کاربری جدید و بعضی‌ها از طریق استفاده از ابزارهای اوپن سورس مثل Matomo. احتمال زیاد یک عده هم پشت در ادارات دولتی مشغول دریافت مجوز برای وام‌های چند میلیاردی و ساخت آنالیتیکس ملی هستند که هیچوقت قرار نیست چیزی ازش بیاد بیرون 🙂

خلاصه اینجا شد که من به فکر افتادم که چی می‌شه اگر از ابزاری که خودم استفاده می‌کنم و (لینک) یک نمونه قابل استفاده‌تر برای دوستان سئوکار بسازم؟

نتیجه این شد که «لسان‌دیتا» ساخته شد. حالا لسان‌دیتا چیه؟ با هم بررسی خواهیم کرد!

معرفی لسان‌دیتا

لسان‌دیتا ابزاریه که شما با کمک اون می‌تونید اطلاعات وبسایت خودتون رو تجزیه و تحلیل کنید و از طریق پلتفرم لسان دیتا در دسترسه. لسان‌دیتا بسیار ساده‌ست و به شما کمک می‌کنه تا ببینید در وبسایتتون چه اتفاقی می‌افته.

مثلا، این داشبورد پلتفرم هوش مصنوعی مانی در لسان‌دیتاست:

همونطوری که می‌بینید، در ۲۴ ساعت گذشته چه تعداد آمدند و چقدر bounce rate داشتیم و …! و صدالبته میشه همین آمار رو برای هفته و ماه هم دید و نکته زیباش دقیقا همینجاست.

چطور از لسان‌دیتا استفاده کنیم؟

استفاده از لسان‌دیتا بسیار ساده‌ست. برای این کار فقط کافیه که این مراحل رو طی کنید:

  • وارد وبسایت بشید (لینک)
  • ثبت‌نام کنید (لینک مستقیم ثبت‌نام)
  • ایمیلی که براتون ارسال شده رو باز کنید و کاربرتون رو تایید کنید.
  • یک وبسایت ایجاد کنید.
  • تگ اسکریپت مربوط به وبسایت رو در <head> وبسایتتون قرار بدید.

بعد از حدود یک الی دو ساعت از فعالسازی که بگذره، شما نتایج رو در وبسایت لسان‌دیتا می‌بینیدو می‌تونید ورودی‌ها، بازدیدها و … رو به سادگی چک کنید.

جمع‌بندی

زمانی که با مشکلات بسیار زیادی در اینترنت دست و پنجه نرم‌ می‌کنیم و از طرفی با محدودیت‌هایی روی بسیاری از ابزارها از سمت داخل مواجهیم، قطعا خبر قطع دسترسی و تحریم نیز به خودی خود خبر خوشایندی نیست و می‌تواند باعث آن شود که اجتماع، ناامیدی بیش از گذشته را تجربه کند.

ساخت ابزارهایی مانند مانی و آتلیه و همچنین پیش‌برد پروژه جبیر گرچه گام‌هایی در جهت دمکراتیزه کردن هوش مصنوعی برای عموم بود، اما لازم بود که به گام جدیدی نیز ورود کنیم که بلاشک این گام، صنعت بازاریابی دیجیتال و سئو بود و لسان‌دیتا، دقیقا ورود ما به بازار بزرگتری را رقم خواهد زد.

Share

برای ساخت agent های هوش مصنوعی، فقط به پایتون نیاز دارید!

پاییز دو سال پیش بود که ChatGPT آمد و به شکل خاصی بازار همه چیز رو عوض کرد یا بهتره بگم که به هم ریخت 😁 در این مدت نه فقط OpenAI که هزاران شرکت دیگر هم دست به کار شدند و شروع کردند به ارائه مدل‌های زبانی بزرگ یا همون LLMها و خواستند که به شکلی با OpenAI رقابت کنند.

الان که دو سالی از اون روزها گذشته منتها موضوع کمی تفاوت داره و بیش از این که سمت ارائه مدل بریم، بهتره به سمت agent یا «عامل» بریم که خب خودش یک بحث مفصله.

دیشب، در بلاگ انگلیسیم کمی در مورد مدل‌های بزرگ و ایجنت‌ها صحبت کردم و امروز تصمیم گرفتم که بلاگ فارسیش رو هم بنویسم که هر دو طرف، محتوای مناسب رو داشته باشیم.

ایجنت‌ها، عملگرایی به LLMها اضافه می‌کنند.

اگر دنبال‌کننده بلاگ و در کل محتوای من باشید، احتمالا می‌دونید که من هم در بازی LLM بودم و مثلا یکی از LLMهای اوپن سورسی که روش کار کردم مدل مارال هفت میلیارد پارامتری بود که روی Alpaca Persian تمرین داده شد.

اما آیا یک مدلی که سوال-جواب کنه کافیه یا به چیزی بیشتر نیاز داریم؟ در واقع برای این که LLMها بتونن موثر واقع بشن، باید بتونن با ابزارهای مختلف تعامل کنند. حالا شما فرض کنید که بخواهیم این تعامل رو در سطح فاین‌تیون کردن، به مدل اضافه کنیم.

یعنی فرض کنید که ما APIهایی از دیجی‌کالا، اسنپ، دیوار و مثلا ابر آروان بگیریم. سعی کنیم با کمک تعدادی API Call نمونه، مدل رو تیون کنیم. حالا فرض کنید یک نفر بخواد این مدل رو برای استفاده از تپسی یا باسلام به کار بگیره. چی میشه؟ هیچی! مجددا بار فاین‌تیون با APIهای جدید میفته روی دوش کاربر.

برای حل این مشکل، ما نیاز به agentها داریم. در واقع در مثال‌های فوق هر API و ابزاری که لازم داریم رو برمیداریم، می‌بریم یک جایی براشون توابع درستی می‌نویسیم و سپس با کمک LLMها خروجی رو «انسانی» یا Humanize می‌کنیم. به این شکل بار فاین‌تیون کردن LLMهم به دوش نمی‌کشیم و همه چیز هم عالی پیش خواهد رفت.

ساخت ایجنت بدون استفاده از فریمورک

دقیقا از زمانی که OpenAI و سایر شرکت‌هایی که LLM ارائه دادند APIهای چت و یا Instruction Following خودشون رو هم ارائه کردند، فریمورک‌های زیادی مثل Flowise یا Crew AI ساخته شدند که به شما کمک کنند تا ایجنت بسازید.

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

نتیجه این شد که شخصا به دنبال روشی گشتم که بتونم بدون استفاده از فریمورک خاصی، به راحتی بتونیم یک ایجنت بسازیم. برای همین لازم بود که درک کنم ایجنت اصلا چی کار می‌کنه؟ چرا انقدر مهمه که ما بتونیم ایجنت رو درک کنیم؟ و صدالبته از هر ایجنتی که اسمش «اسمیت» باشه دوری بجوییم 😂

ایجنت‌ها یک سری «وظیفه» و «ورودی مناسب هر وظیفه» رو درک می‌کنند. این وظایف یا تسک‌ها در واقع توابعی هستند که در برنامه‌مون قرار ادادیم که بتونن یک کاری رو انجام بدن (مثلا بره رخداد n ام سری فیبوناچی رو حساب کنه) و ورودی‌هاشون هم دیتاییه که ایجنت باید با هوش خودش تشخیص بده و بسازه.

در نهایت نیاز به مکانیزمی داریم که بیاد این وظایف و ورودی‌ها رو اجرا کنه، خروجیشون رو دوباره بده به LLM و ازش بخواد که Humanizeش کنه. گذشته از این بد نیست که ایجنت ما یک حافظه کوچکی هم داشته باشه.

نمونه یک ایجنت ساده با پایتون

سلب ادعا: از اونجایی که کد این ایجنت رو در گیتهاب گذاشتم، صرفا مراحل ساخت ایجنت ساده رو توضیح میدم و باقیش رو میتونید از گیتهابم ببینید و ایده بگیرید.

اولین گام ما برای ساخت ایجنت باید این باشه که یک LLM مناسب انتخاب کنیم. شما مختارید هر LLMای که یک OpenAI Compatible API ارائه می‌ده انتخاب کنید اما من شخصا دارم از پروژه جبیر خودم استفاده می‌کنم 😁

بعد از اون، لازم داریم که بیاییم یک کلاینت ساده OpenAI درست کنیم که بتونه با API مورد نظر ما کار کنه:

from openai import OpenAI

client = OpenAI(api_key="FAKE", base_url="https://openai.jabirpoject.org/v1")

همونطور که قبلا در این پست توضیح داده بودم، کتابخونه OpenAI در پایتون نیازمند یک API Keyئه که اینجا ما از FAKE استفاده کردیم براش.

حالا یک کلاس ایجنت ساده درست می‌کنیم که حافظه هم داشته باشه:

class Agent:
    
    def __init__(self, system=""):
        self.system = system
        self.messages = []
        if self.system:
            self.messages.append({"role" : "system", "content" : system})
    
    def __call__(self, message):
        self.messages.append({"role" : "user", "content" : message})
        result = self.execute()
        self.messages.append({"role" : "assistant", "content" : result})
        return result
    
    def execute(self):
        completion = client.chat.completions.create(
            model = "jabir-400b",
            messages = self.messages,
            temperature = 0.0
        )
        
        return completion.choices[0].message.content

همونطوری که می‌بینید، این ایجنت می‌تونه یک تاریخچه از چیزهایی که بهش گفتیم (و بهمون گفته) نگه داره و کم کم باید بریم سراغ این که بهش اکشن‌های مورد نظر رو اضافه کنیم.

ولی خب بهتره قبل از اضافه کردن اکشن، تستش کنیم. برای تستش هم این کد رو می‌تونید اجرا کنید:

sample_agent = Agent("You are a helpful assistant")
print(sample_agent("What is 1+1?"))

کد نمونه با اکشن

اگر دوست دارید بدونید که این ایجنت ما با اکشن چطوری کار می‌کنه، می‌تونید به این مخزن گیتهاب مراجعه کنید و ببینید که چطور به راحتی میشه یک اکشن به همین ایجنت ساده اضافه کرد و بار فریمورک‌ها رو هم به دوش نکشید.

جمع‌بندی

اگر طی دو سه سال گذشته محتوای این بلاگ رو خونده باشید می‌بینید که علاقه من به هوش مصنوعی از پروژه‌هایی مثل ریاضی ۱ رو با هوش مصنوعی پاس کن یا پلاک‌خوان فارسی که با Yolo v5 پیاده کرده بودم جدی شد.

این علاقه، کم کم به سمت Generative AI رفت و خب طبیعتا همین علاقه باعث ساخته‌شدن پلتفرم مانی و همچنین آتلیه شد. اما خب در سال ۲۰۲۵ احتمالا بیش از این که به مدل‌های جدید نیاز داشته باشیم، نیاز داریم که مدل‌ها رو به سمت agentic شدن بیاریم و اپلیکیشن‌ها رو به شکل AI agent داشته باشیم.

Share

معرفی سرویس آتلیه

در زمستان ۱۴۰۱ سرویس مانی، به صورت یک پروژه شخصی و با الهام‌گیری از میدجرنی، ساخته  و سپس در فروردین ۱۴۰۲ به صورت عمومی و به صورت پلتفرم ارائه عمومی شد.

از همان روزهای اولی که مانی عرضه شد بسیاری از دوستان به دنبال سرویس «تصویر به تصویر» یا Image to Image بودند که بتوانند از تصاویر شخصی خود، عزیزان یا حتی محصولاتشان تصاویر شخصی‌سازی‌شده ایجاد کنند.

اما یک مساله مهم که وجود داشت این بود که عموم تکنیک‌های تصویر به تصویر صرفا از تصویر ورودی «الهام‌گیری» کرده و سپس به شما این اجازه را می‌دهند که تصویر نهایی «تا حدی شبیه به تصویر ورودی» دریافت کنید. برای این منظور، در نظر گرفته بودم تا ابزار بهتری توسعه دهم.

مشکلی که وجود داشت

مشکلی که وجود داشت، این بود که عموم ابزارها، حتی ابزارهای متن‌باز که با Stable Diffusion همخوانی داشتند صرفا Face Swapping انجام می‌دادند. در واقع این ابزارها، تصویری از شما را می‌گرفتند و گاهی آن را «به زور» در تصویر تولیدشده جای می‌دادند.

در همین حین، ایده‌ای برای من مطرح شد. چه می‌شد اگر می‌توانستیم تصاویر ورودی کاربر را بخشی از هوش مصنوعی خود کنیم؟ این شد که طرح اولیه یا به قولی Flow چیده شد.

پاسخ به مشکل

پاسخی که برای این مشکل در نظر گرفتم بسیار ساده بود. در نظر گرفتم که چه می‌شود اگر بتوانیم از کاربر تعدادی تصویر دریافت کنیم، این تصاویر را به خورد یک مدل بدهیم و به عبارتی یک Adapter برای مدل مورد نظر درست کنیم.

مدتی هم بود که در حال تحقیق و توسعه روشی بر روی مدل FLUX Dev از شرکت Black Forest Labs بودم که بتوانیم در مدت‌زمان کوتاهی، یک LoRA یا Low Rank Adapter برای مدل مذکور بسازیم. این فرصت را مغتنم شمردم و پروتوتایپی از چیزی که در نظر داشتم را با کمک زیرساخت شرکت modal ساختم.

پس از آن، کد نوشته‌شده برای بهبود فرایند ساخت LoRA را مرحله به مرحله بهبود دادم و سپس با کمک وبسایت Fal AI اقدام به بهبود فرایند تولید تصویر کردم.

در نهایت، تمامی این فرایند باعث شد تا استارتاپی با نام آتلیه به وجود آید. جایی که کاربران، بتوانند متفاوت دیده شده و رویایشان را زندگی کنند.

آتلیه چیست و چه می‌کند؟

آتلیه، یک پلتفرم هوش مصنوعی است که به شما کمک می‌کند تا تنها با ارائه یک فایل zip حاوی ۵ الی ۱۰ عکس از خودتان، عزیزانتان یا حتی محصولاتی که تولید می‌کنید یا می‌فروشید؛ تصاویر خلاقانه تولید کنید.

در واقع آنچه در مانی ارائه می‌شد، صرفا ارائه یک پلتفرم برای تولید تصویر از متون ورودی (مشابه میدجرنی یا Dall-E) بود اما آتلیه، مدل‌های هوش مصنوعی اختصاصی را با هزینه اقتصادی برای شما تولید می‌کند و می‌توانید از خروجی آن به مقاصد مختلف، استفاده کنید.

چگونه از آتلیه استفاده کنیم؟

برای استفاده از آتلیه، می‌توانید ابتدا در وبسایت آتلیه عضو شوید. برای عضویت کافیست یک ایمیل و یک پسورد وارد کنید و نیازی به تایید ایمیل نیست.

پس از عضویت، با مطالعه راهنمای ساخت مدل، کافیست یک مدل هوش مصنوعی دلخواه ایجاد کنید. لازم به ذکر است که اگر از تاریخ ۳۰ آذر الی ۱۴ دی ۱۴۰۳ به عضویت وبسایت درآیید، یک مدل و ده تصویر رایگان هدیه‌ای از طرف ما به شماست.

پس از این که مدل مورد نظر ساخته شود، شما قادر خواهید بود که تصاویر مد نظر خود را ایجاد کنید. برای ایجاد تصویر نیز کافیست تا راهنمای ایجاد تصاویر را مطالعه کنید.

بازخوردها، نظرات و پیشنهادات شما

چنانچه از آتلیه استفاده کردید و بازخورد، نظر و پیشنهادی در رابطه با سرویس دارید، همیشه از طریق فرم تماس وبسایت آتلیه قادر خواهید بود تا با ما تماس بگیرید و نظرات، پیشنهادات، بازخوردها و انتقادات خود را مطرح نمایید.

موفق و موید باشید.

Share