آشنایی کامل با زبان نمودارنویسی Mermaid، تواناییها و محدودیتهای AI در تولید دیاگرام، و روشهای عملی برای چت با هوش مصنوعی و دریافت خروجی Mermaid آماده.
اگر تا به حال خواستهاید یک نمودار جریان، دیاگرام توالی یا مدل کلاسها و ... را از هوش مصنوعی بخواهید و بهجای یک نمودار تصویری، یک پاراگراف طولانی متن جواب گرفتهاید. یا حتی با نمودار و دیاگرام نیاز به رساندم مفهوم خود به هوش مصنوعی هستید، و بدلیل دردسرهای ابزارهای گرافیکی سنگین و زمان بر مجبور به توضیح متنی و چت طولانی شدید و معمولا هم به نتیجه بی کیفیت میرسید. Mermaid این دردسر را برای همیشه رفع کرده است. اما وقتی پای هوش مصنوعی به میان میآید، قدرت این ابزار چند برابر میشود. در این مقاله، ابتدا با Mermaid آشنا میشویم، سپس نقش هوش مصنوعی در تولید دیاگرام را بررسی میکنیم و در نهایت یاد میگیریم که چگونه با چتباتها برای دریافت بهترین خروجی Mermaid گفتگو کنیم.
Mermaid یک زبان نشانهگذاری ساده و مبتنی بر متن (Markdown-like)است که به شما امکان میدهد انواع دیاگرامها را با کدنویسی ساده تولید کنید. این دیاگرامها در محیطهای مختلفی مانند Markdown، GitHub، Notion، Obsidian و بسیاری از پلتفرمهای دیگر پشتیبانی میشوند. به جای کشیدن اشکال با ماوس، فقط کافی است متن سادهای بنویسید و Mermaid آن را به یک نمودار زیبا و مقیاسپذیر تبدیل کند.
پیش از آنکه سراغ هوش مصنوعی برویم، بهتر است با انواع دیاگرامهایی که Mermaid پشتیبانی میکند آشنا شویم. این آشنایی به شما کمک میکند تا درخواستهای دقیقتری از AI داشته باشید.
| نوع دیاگرام | کاربرد اصلی |
|---|---|
| Flowchart | نمایش فرایندها، الگوریتمها و جریان کاری |
| Sequence Diagram | تعامل بین اشیاء یا سرویسها در طول زمان |
| Class Diagram | مدلسازی ساختار کلاسها در برنامهنویسی شیءگرا |
| State Diagram | نمایش وضعیتهای مختلف یک موجودیت و تغییرات آن |
| ER Diagram | طراحی پایگاه داده و روابط بین جداول |
| GitGraph | نمایش شاخهها و کامیتهای مخزن گیت |
| Timeline | نمایش رویدادهای مهم در یک بازه زمانی |
| Gantt Chart | برنامهریزی پروژه و زمانبندی وظایف |
Mermaid تنها به این لیست محدود نیست. در پایان مقاله فهرست کامل انواع دیاگرامهایی که Mermaid پشتیبانی میکند آمده است.
امروزه مدلهای زبانی بزرگ مانند GPT-4، Claude و Gemini به خوبی میتوانند کد Mermaid را از توضیحات متنی تولید کنند. این یعنی شما فقط کافی است دیاگرام مورد نظرتان را به زبان ساده توصیف کنید و AI کد دقیق آن را برای شما بنویسد و به نمایش بگذارد. اما این فرایند هم مانند هر ابزار دیگری محدودیتهایی دارد.
quadrantChart یا sankey پیچیدهتر هستند و AI ممکن است دادههای عددی آن را درست تشخیص ندهد مگر اینکه دقیقاً ساختار را توضیح دهید.برای اینکه بهترین نتیجه را از چتباتها بگیرید، باید درخواست پرامپت (Prompt) خود را بهینه کنید. در ادامه یک الگوی مؤثر برای مکالمه با AI ارائه میدهم.
واضح بگویید که به چه نوع دیاگرامی نیاز دارید. مثال:
«من به یک فلوچارت برای فرایند ثبتنام کاربری نیاز دارم.»
ترتیب و محتوای گامها را توضیح دهید. مثال:
«گامها عبارتند از: شروع، وارد کردن ایمیل و رمز، بررسی اعتبار، اگر معتبر بود به داشبورد برود و اگر نه خطا نمایش دهد.»
اگر شرطی وجود دارد، آن را دقیقاً بگویید. مثال:
«اگر اعتبارسنجی موفق بود، به صفحه اصلی هدایت شود، در غیر این صورت به فرم بازگردد.»
در نهایت، دستور نهایی:
«لطفاً کد Mermaid این فلوچارت را برایم بنویس.»
مدل های جدید معمولا مستقیم پس از تولید دیاگرام، آن را به نمایش میگذارند. در غیر این صورت کد دریافتی را در یک ویرایشگر Mermaid تست کنید. اگر خطایی دیدید، خطا را به AI بگویید تا اصلاح کند.
در ادامه، ۶ نمونه دیاگرام کاربردی را آوردهام که همگی با راهنمایی AI تولید شدهاند. هر کد را میتوانید کپی کرده و در محیط خودتان رندر کنید.
پرامپت:
«یک Mermaid برای دستهبندی ایدههای محتوایی وبلاگ برنامهنویسی من بساز. شاخه اصلی: محتوای وبلاگ. زیرشاخهها: فرانتاند (React، Vue)، بکاند (Node.js، پایگاه داده)، DevOps (Docker، CI/CD)، هوش مصنوعی (Mermaid، Prompt Engineering) بده.»
خروجی:
پرامپت:
«یک برد kanban با سینتکس Mermaid بساز با سه ستون: To Do، In Progress، Done. در To Do: طراحی UI، نوشتن تست. در In Progress: پیادهسازی API. در Done: تنظیم دیتابیس.»
خروجی:
پرامپت: «یک radar chart با Mermaid بساز که سه نامزد را در پنج معیار (React، CSS، تستنویسی، بهینهسازی، کار تیمی) از ۰ تا ۱۰۰ مقایسه کند. نامزد الف در همه معیارها ۸۰، نامزد ب در تستنویسی ۹۰ و بقیه ۶۰، نامزد ج در CSS و React ۹۵ و بقیه ۵۰.»
خروجی:
پرامپت: «یک treemap با سینتکس Mermaid بساز که فروش کل فروشگاه را به سه دسته الکترونیک (۵۰٪)، پوشاک (۳۰٪) و خانهوآشپزخانه (۲۰٪) تقسیم کند و الکترونیک را به موبایل و لپتاپ زیرتقسیم کند. »
خروجی:
پرامپت: «یک packet diagram با سینتکس packet-beta در Mermaid بساز که فیلدهای سادهشده یک هدر شامل: پورت مبدا (۱۶ بیت)، پورت مقصد (۱۶ بیت)، شماره ترتیب (۳۲ بیت) و پرچمها (۸ بیت) را نشان دهد.»
خروجی:
به AI بگویید که «تو یک متخصص طراحی دیاگرام Mermaid هستی.» این کار دقت خروجی را بالا میبرد.
به جای یک درخواست طولانی، ابتدا ساختار کلی را بگیرید و سپس جزئیات را اضافه کنید. مثال: «حالا یک زیرگراف (subgraph) به نام "لایه امنیتی" به این flowchart اضافه کن.»
بهجای «نمودار»، بگویید «flowchart»، «sequence diagram»، «mindmap» یا «sankey diagram». هرچه اسم دقیقتر باشد، خروجی سینتکسی صحیحتر است.
اگر نمونه مشابهی دارید، آن را به AI نشان دهید تا سبک و ساختار را بهتر درک کند.
برای دیاگرامهای بزرگ: «حداکثر ۱۵ نود استفاده کن تا دیاگرام خوانا بماند» — این از خرابی سینتکس در دیاگرامهای حجیم جلوگیری میکند.
اگر کد خروجی رندر نشد، خطای نمایش داده شده را عیناً به AI بدهید. معمولاً با یک بار توضیح، مشکل حل میشود.
Mermaid دیگر فقط ابزار فلوچارت و دیاگرام توالی نیست؛ با بیش از 20 نوع دیاگرام مختلف، از نقشه ذهنی و کانبان تا معماری ابری و دیاگرام پکت شبکه، تقریباً هر نوع دادهای را میتوان بهصورت بصری نمایش داد.
ترکیب Mermaid و هوش مصنوعی یک تحول واقعی در مستندسازی فنی و طراحی سیستمها ایجاد کرده است. با یادگیری نحوه درست درخواست دادن از چتباتها، میتوانید در زمانی بسیار کوتاه، دیاگرامهای پیچیده و حرفهای تولید کنید و آنها را بهراحتی در تحلیل ها، مستندات، مقالات و ارائههای خود به کار ببرید.
فراموش نکنید که Mermaid یک ابزار متنباز و در حال رشد است و هر روز قابلیتهای جدیدی به آن اضافه میشود. پس همین حالا یک چتبات را باز کنید و اولین دیاگرام خود را با کمک AI رسم کنید!
| نوع دیاگرام | کاربرد اصلی | سینتکس شروع |
|---|---|---|
| Flowchart | فرایندها، الگوریتمها، جریان کاری | flowchart TD |
| Sequence Diagram | تعامل بین اجزا در طول زمان | sequenceDiagram |
| Class Diagram | مدلسازی شیءگرا | classDiagram |
| State Diagram | وضعیتها و انتقال بین آنها | stateDiagram-v2 |
| ER Diagram | طراحی پایگاه داده | erDiagram |
| User Journey | تجربه کاربری و نقاط تماس | journey |
| Gantt Chart | زمانبندی پروژه | gantt |
| Pie Chart | نسبتهای آماری | pie |
| Quadrant Chart | اولویتبندی و ماتریس تصمیم | quadrantChart |
| Requirement Diagram | مهندسی نیازمندیها | requirementDiagram |
| Gitgraph | شاخهبندی و تاریخچه Git | gitGraph |
| C4 Diagram | معماری نرمافزار در سطوح مختلف | C4Context |
| Mindmap | نقشه ذهنی و ایدهپردازی | mindmap |
| Timeline | رویدادهای زمانی و نقشه راه | timeline |
| ZenUML | دیاگرام توالی به سبک کد | zenuml |
| Sankey Diagram | جریان داده یا انرژی بین گرهها | sankey-beta |
| XY Chart | نمودارهای خطی و ستونی دادهمحور | xychart-beta |
| Block Diagram | بلوکهای سیستمی و روابط ساده | block-beta |
| Packet Diagram | ساختار بایتی پروتکلهای شبکه | packet-beta |
| Kanban | مدیریت وظایف و برد کانبان | kanban |
| Architecture Diagram | معماری ابری و زیرساخت | architecture-beta |
| Radar Chart | مقایسه چندبعدی (مهارت، عملکرد) | radar-beta |
| Treemap | دادههای سلسلهمراتبی و سهمبندی | treemap-beta |