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

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

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

گروه کاربران گنو/لینوکس تهران: فروش یک هویت

ده سال پیش، در بین ترم ۱ و ۲ دانشگاه بودم که دوستی روی تلگرام به من پیام داد و گفت «لاگ نمیایی؟» و این شد رسما اولین حضور من در موجودیت/رویدادی به نام «لاگ تهران» یا همون «گروه کاربران گنو/لینوکس تهران».

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

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

داستان فروش هویت گروه کاربران گنو/لینوکس تهران

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

پرده اول: درخواست ارائه (از طرف لاگ)

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

این موضوع خیلی داشت خوب پیش می‌رفت. موضوع ارائه مشخص شد، مشخص شد که هر ارائه باید کِی باشه و این‌ها. در همین حین هم صحبت‌هایی شد از این که لاگ حامی نیاز داره (و خب این دردی بود که لاگ همیشه داشته، این که شرکت‌ها یا افراد زیادی حاضر به حمایت نمی‌شدند).

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

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

پرده دوم: درخواست حمایت (از طرف من)

در حین همون تماس‌های رفت و برگشتی تلگرامی، من ایده‌ای به سرم زد! گفتم خب حدود دو سالی میشه که استارتاپ مانی رو دارم، چرا نیام و به این دوستان، پیشنهاد ندم که حامی/اسپانسر برنامه بشم؟

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

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

همه این مسائل خیلی خوب پیش رفت و شخصا فکر نمی‌کردم مساله‌ای بخواد انقدر خوب بره جلو. ولی خب مثل همیشه، ظاهرا جلو جلو ذوق کردن همراه با کنسلی بود.

پرده سوم: فروش هویت

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

و اینجا بود که به خودم آمدم، کمی بالا و پایین کردم و پاسخ دادم که «نیستم». به همین سادگی. چرا که برداشت شخصی من، از این موضوع برداشت خوبی نیست.

جمع‌بندی

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

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

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

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

و در نهایت هم امیدوارم که بچه‌های لاگ، موفق باشند و کمی به کارهایی که می‌کنند؛ فکر کنند!

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

پس از چهار سال – ناگفته‌هایی از تیرماه ۹۹ و انجمن نام

در تابستان سال ۹۹ و در بحبوحه همه‌گیری (یا شاید بهتر باشه بگیم دنیاگیری) بیماری کووید-۱۹، اتفاقات جالبی در دنیای نرم‌افزار آزاد و متن‌باز ایران رخ داد. این اتفاقات، شامل تشکیل یک بنیاد مردم نهاد، انتخابات و مجمع اون و همچنین حواشی ایجادشده در این موضوع بود که شاید باورتون نشه ولی در عرض شاید ۴۸ ساعت اکثر این اتفاقات رخ داد.

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

به جهت رعایت انصاف، من از کمی قبل از تیر ۹۹ شروع به بیان ماجرا می‌کنم و سپس به تیر ۹۹ می‌رسم.

اعلام وجود انجمن نام (نرم‌افزار آزاد و متن‌باز)

من شخصا از سال ۸۹ کاربر فروم اوبونتو بودم و از سال ۹۱ به صورت رسمی در جامعه نرم‌افزار آزاد فعال بودم. عمده فعالیت من با پروژه جبیر (+، +، +) شناخته میشه و احتمالا می‌دونید که جامعه هم برخورد درستی با این پروژه نداشته (+).

اما به قولی، باید از افراد و اتفاقات گذشته گذر کرد و رفت سراغ اتفاقات جدیدتر و برای من شخصا، بحث انجمن نام چنین چیزی بود. این رو هم به شما بگم که از همون سال ۹۰-۹۱ من زمزمه‌هایی می‌شنیدم از این که یک موجودیت «نزدیک به دولت» برای نرم‌افزار آزاد باید وجود داشته باشه و از دل خود جامعه هم بیرون آمده باشه و این حرف‌ها.

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

این بحث تا حد زیادی مسکوت موند و ادامه‌دار نشد (بحث کرونا هم پیش آمد قاعدتا و این خودش یک نکته مهم در این بحث‌هاست). اما خب در سال ۹۹ اعلامیه‌های انجمن مجدد منتشر شدند…

اعلام انجمن برای مجمع

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

در واقع شرایط کاندیداتوری هم بسیار ساده بود. شما کافی بود یک شخص زنده بالای ۱۸ سال و دارای تابعیت ایران به همراه سابقه فعالیت در نرم‌افزار آزاد می‌بودید. در واقع شاید راحت‌ترین روش کاندیداتوری 🙂

حتی یادمه که تا قبل از روز مجمع، در مورد وعده وعیدهای کاندیداها – که من هم یکیشون بودم – چیزی پرسیده نشد…

روز مجمع

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

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

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

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

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

حواشی آن روز پرماجرا

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

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

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

این حجم توهین، تهمت و فشار کافی نبود انگار و چندتن از افرادی که نرم‌افزار آزاد رو انگار ارثیه اجدادی خودشون می‌دونستند عریضه‌ای نوشتند که اشاره به مطالب کاملا non-existent داشت! و خب با اتکا به نقاط ضعف احساسی مردم و گارد طبیعی مردم نسبت به موجودیت‌های دولتی و نزدیک به دولت؛ حدود ۴۶۰ نفر قانع به امضای آن عریضه شدند. نکته جالب اینه که در کامنت‌های آن عریضه منحوس هم بسیاری فحش داده بودند و بسیاری هم تهدیدهای جانی و … کرده بودند و این هم در نوع خودش جالب بود.

استعفای دست جمعی هیئت‌مدیره

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

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

سخن آخر با جامعه پیرامون تیر ۹۹ و مسائل مشابه

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

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

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

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

Share