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

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

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

اما خب، گاهی هم پیش میاد که قهوه آقای برنامه‌نویس، حسابی سرد می‌شه و شاید حتی تمایلی به نوشیدن قهوه نداشته باشد. پیش‌تر در این بلاگ، داستان برنامه‌نویس شدن خود را نوشته بودم (+، +) و در حال حاضر، خوندن این داستان‌ها برای دوستان 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

اقتصاد 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

خانواده‌ مدل‌های زبانی 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

استفاده از APIهای ChatGPT به صورت کاملا رایگان!

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

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

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

پیش‌نیازها

برای این که از این آموزش استفاده کنیم، نیاز داریم این موارد رو بلد باشیم:

  • آشنایی پایه با APIها و این که چطور کار می‌کنند (می‌تونید یکی از مطالب قدیمی من رو بخونید)
  • آشنایی اجمالی با پایتون

همین؟ بله همین!

شروع به کار

نصب کتابخانه‌های مربوطه

مثل هر پروژه دیگری، ابتدا نیاز داریم تا کتابخانه‌ها و چارچوب‌های مربوط به اون رو، روی سیستم خودمون نصب کنیم. چون این پروژه پایتونیه، از ابزار pip استفاده خواهیم کرد.

اما قبل از اون، بهتره یک محیط مجازی پایتون ایجاد کنیم:

virtualenv -ppython3 .venv

بعد از اون، وقتشه که فعالش کنیم:

source .venv/bin/activate

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

بعد از فعالسازی، ترمینال شما به این شکل درمیاد:

(venv) ~:$

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

حالا وقتشه که کتابخونه‌های openai و g4f رو نصب کنیم:

pip install "g4f[all]" openai

این دو کتابخونه، دقیقا تنها چیزهایی هستند که ما نیاز داریم!

حالا g4f چیه؟

عبارت g4f مخفف gpt4free و بازی با عبارت gpt for free یعنی «جی‌پی‌تی رایگان»ئه! حالا این کتابخونه چه کاری می‌کنه که gpt رایگان به ما می‌رسونه؟ 😁

کاری که این کتابخونه می‌کنه، اینه که میاد و از providerهای مختلفی که داره (بعضیا مثل Airforce/OpenRouter با خواست خودشون البته در اختیارش قرار دادند) استفاده می‌کنه و به شما امکان استفاده از مدل‌های متنوع هوش مصنوعی مثل GPT, Claude, Mistral و … رو میده. در واقع یک «تلاش برای دمکراتیزه کردن هوش مصنوعی» در نوع خودش می‌تونه محسوب بشه.

و خب نه فقط چت‌بات، که APIهای تولید تصویر (بخصوص با مدل Dall-E) رو هم پشتیبانی درستی داره می‌کنه! اما حقیقتش رو بخواهید، مدل‌های تصویرش به شدت محدودن و بهتره که به همین متنی‌ها قناعت بورزیم 😁

چرا به OpenAI نیاز داریم؟

این هم سوال خوبیه. مگه نگفتیم قرار نیست از خود OpenAI یا سایر فراهم‌کنندگان APIهاش سرویس بگیریم؟ درسته. ولی نیاز داریم به کتابخونه پایتونیش برای این که بتونیم از API لوکالمون استفاده کنیم!

راه‌اندازی API لوکال

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

g4f api

بعدش enter بزنید و صبر کنید تا API بیاد بالا. وقتی API بیاد بالا چنین صحنه‌ای می‌بینید:

و تبریک، API ما قابل استفاده‌ست.

نوشتن کد پروژه

این همه توضیح دادیم تا برسیم به بخش جذاب ماجرا، که نوشتن کدهای پروژه‌مونه!

اول لازم داریم تا کتابخونه‌های لازم رو به پروژه اضافه کنیم:

from openai import OpenAI

این قطعه کد، میاد و کلاس OpenAI رو از کتابخونه openai برای ما در پروژه لود می‌کنه.

بعدش نیاز داریم یک کارخواه OpenAI درست کنیم:

client = OpenAI(
 api_key = "FAKE", 
 base_url = "http://localhost:1337/v1"
)

خب یک توضیحی بدم، کتابخونه OpenAI بدون API Key کار نمی‌کنه. به همین خاطر یک مقدار بی‌خود (در اینجا عبارت FAKE) رو وارد کردیم. در قسمت Base URL هم آمدیم و به این کتابخونه فهموندیم که به جای این که به APIهای خود OpenAI متصل بشه، به لوکال هاست ما متصل بشه.

در واقع کل کار رو اینجا انجام دادیم و حالا مونده یک مرحله! اون هم اینه که یک چت با مدل مورد نظر بسازیم:

response = client.chat.completions.create(
 model = "gpt-4o", 
 messages = [
   {
     "role" : "user",
     "content" : "Hello"
   }
  ],
)

و همونطوری که می‌بینید فرمت پیام‌های ما، فرمت چت و اسم مدلمون هم gpt-4o گذاشتیم. البته امکان استفاده از مدل‌های دیگر هم هست ولی اینجا با gpt-4o کار داشتیم 😁

و حالا وقتشه که نتیجه رو  در ترمینال ببینیم:

print(response.choices[0].message.content)

و تمام!

کد کامل

کد کامل این پروژه هم به این شکل خواهد شد:

from openai import OpenAI

client = OpenAI(
 api_key = "FAKE", 
 base_url = "http://localhost:1337/v1"
)

response = client.chat.completions.create(
 model = "gpt-4o", 
 messages = [
   {
     "role" : "user",
     "content" : "Hello"
   }
  ],
)

print(response.choices[0].message.content)

ملاحظات قانونی

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

مثلا من پیشنهاد می‌کنم برای خیلی از پروژه‌هایی که با g4f قراره بسازید از mixtral-8x22b استفاده کنید. هم خوبه، هم اوپن سورسه و هم فارسی می‌فهمه. یا مثلا llama-3.1-70b و llama-3.1-405b و …

در کل میخوام بگم که می‌تونیم این موضوع رو کاملا درست و قانونی هم در دستان خودمون داشته باشیم و لذت هم ببریم 😎

جمع‌بندی

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

احتمالا در آینده، باز هم ابزار یا API خوب در حوزه هوش مصنوعی و بخصوص هوش مصنوعی زایا (Generative AI) معرفی کنم. امیدوارم که موفق و موید باشید و این آموزش به دردتون خورده باشه.

ضمنا، لطفا از مدل‌های تجاری به صورت غیرقانونی استفاده نکنید 😁

Share

استفاده از LLMها بعنوان سیستم‌عامل، آیا با نسل جدیدی از سیستم‌های عامل روبرو خواهیم شد؟

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

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

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

سیستم‌عامل چیست؟

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

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

سفر به اعماق گنو/لینوکس

احتمالا اسم «لینوکس» یا «گنو/لینوکس» یا «اوبونتو» و امثالهم، به گوشتون خورده، نه؟ اگر از خوانندگان بلاگ من باشید که بیشتر از این‌ها به گوش شما خورده و احتمالا از BSD و Solaris و OpenIndiana و … هم خوندید 😁

گنو/لینوکس یک سیستم‌عامل کامله که از دو بخش تشکیل شده: گنو و لینوکس! حالا گنو چیه و لینوکس چیه؟ با هم بررسی می‌کنیم.

  • لینوکس: یک هسته یا کرنله که در ابتدای دهه ۹۰ میلادی، توسط شخص شخیص لینوس بندیکت تروالدز که در اون زمان ۲۱ سالش بوده، ساخته شده. این هسته سیستم عامل (kernel) وظیفه‌ش مدیریت فرایندها و سخت‌افزاره. در واقع این هسته، میاد می‌شینه وسط سیستم‌عامل و اون تعامل لازم رو با سخت‌افزار و فرایند‌ها برای ما تسهیل می‌کنه.
  • گنو: مجموعه‌ای از ابزارهاست که بعنوان بخشی از جنبش نرم‌افزار آزاد در سال ۱۹۸۳ میلادی به رهبری ریچارد متیو استالمن ساخته شده. گنو، سیستم‌عاملی بود استالمن به عنوان یک اکت اعتراضی نسبت به سیاست‌های AT & T در قبال کد منبع یونیکس، شروع به ساختش کرد.

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

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

از طرفی، اصلا وقتی برنامه رو نوشتیم، با چی باید اجراش کنیم؟ اینجا ابزارهایی مثل GNU Binutils خودشون رو نشون میدن. البته لازم به ذکره که با ابزارهایی مثل GNU Compiler Collection یا GCC هم برنامه‌ها رو می‌تونیم بسازیم.

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

پس هوش مصنوعی چه؟ از آن نور وارد می‌شود

خب اینجا جا داره که ما بریم و کمی با مفاهیم و مطالب مربوط به هوش مصنوعی آشنا شیم.

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

خیلی بی‌راه فکر نمی‌کنید البته، ولی بیایید کمی ابتدا LLMها رو بشناسیم و بعد بریم سراغ این که LLM OS یا «سیستم‌عامل مدل زبانی بزرگ» چطور کار خواهد کرد برامون 🙂

شناخت بهتر LLMها

قبلا در پست مربوط به مارال ۷ میلیارد پارامتری (لینک) و پستی که درش از چیرگی زبان انگلیسی روی دنیای AI شکایت و گله کرده بودم (لینک) در مورد LLMها صحبت کردم. اما بهتره که کمی در موردشون بیشتر با هم بدونیم.

LLM چیست؟

مدل‌های زبانی بزرگ (به انگلیسی Large Language Model) مدل‌ها و ابزارهای مبتنی بر هوش مصنوعی هستن که با تکنیک‌های یادگیری عمیق مثل RLHF یا یادگیری تقویتی با بازخورد انسانی تربیت میشن. در واقع این مدل‌ها یک هدف بیشتر ندارند: بیشترین نزدیکی به زبان آدمیزاد.

یکی از دلایلی که مدل‌هایی مثل GPT-2 یا Bloom زمان خودشون خیلی ترکوندند، این بود که اون موقع بهترین شکل ممکن رو برای تولید زبان داشتند اما خب GPT-3 و LLaMa 3.1 و …؛ به شدت در این زمینه بهتر عمل کردند.

مدل‌های زبانی بزرگ، معمولا اینطوری کار می‌کنند:

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

اما از این موضوع بگذریم، یک بحث دیگر هم که LLMها به خوبی می‌تونن درکش کنن و این برمی‌گرده به تعداد متغیرهایی که در داده ورودی دیدن، ارتباط معنایی بین کلمات می‌تونه باشه که خب با توجه به این که عمده LLMها در حال حاضر Human Feedback یا بازخورد انسانی در مرحله پیش‌آموزششون دخیله، چیز عجیبی نیست و ناظرین انسانی، بهشون بازخورد لازم رو میدن.

کاربردهای LLMها

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

  • تولید محتوا برای وبلاگ، وبسایت و MVP
  • تولید محتوا برای ویدئوهای یوتوب و اینستاگرام
  • تولید کد
  • تولید داستان برای بازی‌های رایانه‌ای
  • تولید کدهای SQL
  • و …

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

کدام سیستم‌عامل‌ها، به هوش مصنوعی مجهز شدند؟

در حال حاضر مایکروسافت با ارائه Copilot و اپل با ارائه Apple Intelligence تا حد خوبی، هوش مصنوعی رو به سیستم‌های عاملشون آوردند.

همچنین اگر اشتباه نکنم دو سه ماه پیش بود که مایکروسافت ایده‌ای به اسم Copilot+PC رو مطرح کرد که کوپایلت، بیاد و حرکات کاربر رو زیرنظر بگیره و بعد بهش پیشنهاد بده چطور می‌تونه بهتر از کامپیوترش استفاده کنه و خب می‌دونید چه فاجعه حریم‌ خصوصی می‌تونست بشه!

اما در حال حاضر، این که LLMها بتونن سیستم‌عامل رو «کنترل کنن» چیزیه که در حد چندین پروژه آزمایشگاهی مونده و به اون شکل، تجاری‌سازی نشده. چیزی که این همه تا اینجا در موردش خوندید و از اینجا به بعد قراره تازه جذاب باشه :))

رویای کارپاتی: سیستم‌عامل مبتنی بر LLMها

چندی پیش، آندره کارپاتی (که از بزرگان هوش مصنوعی و علوم کامپیوتره) در یوتوب ویدئوی با عنوان مقدمه‌ای بر LLMها منتشر کرد و چیزی حدود یک ساعت در مورد پتانسیل‌های این مدل‌ها، حرف زد و در نهایت ایده LLM OS رو مطرح کرد 🙂

سیستم‌عامل مبتنی بر LLM چطور قراره کار کنه؟

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

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

چطور این اتفاق می‌افته؟ در اکثر زبان‌های برنامه‌نویسی ما قادر هستیم که از subprocessها استفاده کنیم. یعنی با کمک subprocessها و LLM می‌تونیم اینطوری کار رو پیش ببریم:

  • شما به سیستم‌عامل می‌گید که «برنامه X رو باز کن»
  • سیستم‌عامل از طریق یک رابط متنی یا صوتی، این دستور رو از شما می‌گیره و به LLM ارسال می‌کنه.
  • حالا LLM طوری تنظیم شده که اون رو به یک subprocess تبدیل کنه و اجراش کنه، کد مربوطه رو تولید و اجرا می‌کنه.
  • بعد از اجرا، برنامه X اجرا میشه (اونطوری که ازش خواستید) و نتیجه توسط LLM به شما گفته میشه.

خیلی دقیق بخواهید بهش نگاه کنید، میشه شبیه چیزی مثل Jarvis در فیلم‌های Iron Man یا حتی «سامانتا» در Her. حتی میشه گفت تا حد خوبی شبیه The Machine در سریال Person of Interest هم هست.

چالش‌های LLM OS

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

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

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

جمع‌بندی

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

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

در کل، پیشرفت جامعه بشری به کمک AI انتهای جالبی خواهد داشت، البته به شرط این که براش انتهایی بشه متصور شد!

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

Share

مارال‌چت آمد، ربات تلگرامی با مدل مارال هفتاد میلیارد پارامتری

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

اما بعد از چندماه و با عرضه LLaMa 3 در نسخه‌های ۸ و ۷۰ میلیارد پارامتری توسط شرکت متا (فیسبوک سابق)، اوضاع کمی متفاوت شد. این مدل در پایه خودش، درک خوبی از زبان فارسی داره و Fine Tune کردنش روی زبان فارسی، کمی راحتتر شده. گذشته از این، درک بهتری از معنای متون هم داره و در خیلی از وظایف مثل کدنویسی، تولید متن و … به خوبی می‌تونه کمک کنه.

مارال‌چت

نسخه جدید مارال، که روی داده‌های «دنبال کردن دستورالعمل» یا Instruction following آموزش دیده، اسمش «مارال‌چت» بوده و اصولا یک نمونه مشابه ChatGPT به حساب میاد. از اونجایی که در حال حاضر در فاز MVP و Proof of Concept به سر می‌بره، بستر مورد نظر تلگرام انتخاب شد. این ربات در حال حاضر در تلگرام در دسترس شماست.

مارال‌چت، در دو نسخه ساخته شده یکی ۸ میلیاردی و دیگری ۷۰ میلیاردی که در حال حاضر، تصمیم و ترجیح بر آن بوده که مدل مدتی آزمایش بشه و پس از آزمایش، وزن‌های مدل‌ها در اختیار دوستانی که مایل به self hosting مدل هستند، قرار بگیره. به همین دلیل این مدل تا اطلاع ثانوی اوپن سورس نخواهد شد. اخبار انتشار سورس و وزن مدل هم در همین وبلاگ به زودی منتشر میشه.

دسترسی به ربات در تلگرام

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

امکانات ربات

ربات در حال حاضر دو قسم امکانات ارائه می‌ده، اول بپردازیم به امکانات پریمیوم یا پولی ربات که شامل اتصال به اینترنت و همچنین ویژن (پردازش تصویر) میشه.

اما امکانات رایگان ربات که در حال حاضر قادر به استفاده ازش هستید شامل این موارد میشه:

  • چت متنی: مانند ChatGPT و Poe و Gemini و … می‌تونید برای ربات پیام متنی ارسال کنید و پاسخ متنی هم دریافت کنید.
  • چت صوتی: اگر به ربات Voice Message ارسال کنید، ربات هم به شما پیام صوتی ارسال می‌کنه و پاسختون رو میده.
  • ساخت تصویر: ربات مارال به کمک پلتفرم هوش مصنوعی مانی، قادر به ساخت تصاویر با کمک هوش مصنوعی هم هست.

پیگیری اخبار مارال‌چت

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

پروژه‌های بعدی

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

سخن آخر

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

از طرفی، مشخصا هنوز خیلی‌ها use case درستی برای AI در صنایع و مشاغل و صنف خودشون پیدا نکردند و این خودش می‌تونه تا حد زیادی، مشکل‌ساز بشه. اما خب لازم به ذکره که این use caseها معمولا وقتی به بار می‌شینن که ابزارهایی مانند مارال‌چت یا مانی ساخته بشند و افراد بتونن استفاده‌ای در صنعت خودشون برای این موضوعات پیدا کنند. امیدوارم که از مارال‌چت و امکاناتش استفاده کنید و برای شما، مفید واقع بشه 🙂

موفق باشید.

Share

با موسیقا، رویای خود را بنوازید!

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

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

نحوه استفاده از موسیقا

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

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

پس از دانلود مدل، یکی از پرامپت‌ها (داخل کادرهای زردرنگ) را انتخاب کرده و یا پرامپت مورد نظر خود را نوشته، سپس دکمه Let’s Party را بفشارید.

بسته به سخت‌افزار خود، صبر کنید تا موسیقی مورد نظرتان تولید شود!

نمونه موسیقی تولید‌شده با موسیقا

حامیان پروژه

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

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

Share