ساخت چارت سازمانی با هوش مصنوعی؛ آموزش طراحی ساختار شرکت و تیم
در این راهنما یاد میگیرید چگونه با هوش مصنوعی چارت سازمانی شرکت یا تیم را طراحی کنید؛ از جمعآوری نقشها و خطوط گزارشدهی تا ساخت نمودار از Excel، تولید کد Mermaid و خودکارسازی با API درواره.
ساخت چارت سازمانی یکی از اولین کارهایی است که یک شرکت در مسیر رشد، جذب نیرو یا بازطراحی تیم خود به آن نیاز پیدا میکند. تا زمانی که مجموعه کوچک است، افراد معمولاً میدانند چه کسی مسئول هر کار است؛ اما با افزایش تعداد اعضا، تیمها، مدیران و پروژهها، روابط گزارشدهی بهسرعت مبهم میشوند.
هوش مصنوعی میتواند فهرست کارکنان، واحدها، نقشها و روابط گزارشدهی را به ساختاری منظم تبدیل کند، ناسازگاریهای داده را تشخیص دهد، چند سناریوی سازمانی پیشنهاد دهد و حتی کد موردنیاز برای رسم خودکار نمودار را تولید کند.
بااینحال، هوش مصنوعی نباید بهتنهایی درباره جایگاه افراد یا ساختار نهایی سازمان تصمیم بگیرد. چارت سازمانی به واقعیتهای مدیریتی، فرایندهای کاری، فرهنگ شرکت و اهداف کسبوکار وابسته است. نقش هوش مصنوعی، کمک به تحلیل، مستندسازی و مصورسازی این اطلاعات است.
در این مقاله یاد میگیریم چگونه یک چارت سازمانی دقیق، قابلویرایش و قابلبهروزرسانی بسازیم؛ از یک تیم کوچک استارتاپی تا ساختار چندبخشی یک سازمان.
چارت سازمانی چیست؟
چارت سازمانی یا Organizational Chart نمایش تصویری ساختار یک شرکت، سازمان، واحد یا تیم است. این نمودار مشخص میکند:
- چه نقشهایی در سازمان وجود دارند.
- هر فرد یا نقش به چه کسی گزارش میدهد.
- واحدهای سازمان چگونه تقسیم شدهاند.
- مدیر هر بخش چه کسی است.
- رابطه واحدها با یکدیگر چیست.
- کدام موقعیتها خالی یا در حال جذب هستند.
- مسئولیت تصمیمگیری در هر سطح قرار دارد.
- تیمهای پروژهای چگونه تشکیل شدهاند.
چارت سازمانی با «ساختار سازمانی» یکسان نیست. ساختار سازمانی مجموعه واقعی روابط، مسئولیتها و سازوکارهای تصمیمگیری است؛ چارت سازمانی فقط نمایش تصویری آن محسوب میشود.
Canva نیز چارت سازمانی را ابزاری برای نمایش ساختار سلسلهمراتبی تیم معرفی میکند و امکان ساخت آن در محیط Whiteboard را ارائه میدهد. راهنمای چارت سازمانی Canva
چرا داشتن چارت سازمانی مهم است؟
مشخص شدن خطوط گزارشدهی
کارکنان میدانند برای تصمیم، تأیید یا حل مسئله باید به چه کسی مراجعه کنند.
جلوگیری از ابهام نقشها
چارت میتواند نقشهایی با مسئولیت مشابه یا گزارشدهی نامشخص را آشکار کند.
تسهیل ورود کارکنان جدید
نیروی جدید سریعتر با اعضای تیم، مدیران و ساختار کلی شرکت آشنا میشود.
برنامهریزی استخدام
جایگاههای خالی و ظرفیتهای موردنیاز برای رشد آینده بهتر دیده میشوند.
مدیریت تغییر سازمانی
پیش از ادغام تیمها یا ایجاد واحد جدید، میتوان چند سناریو را روی چارت مقایسه کرد.
افزایش شفافیت
افراد بهتر میدانند مالک هر حوزه، محصول یا فرایند چه کسی است.
کمک به برنامهریزی جانشینی
نقشهای کلیدی و وابستگی بیش از حد به یک فرد قابلشناسایی میشوند.
هوش مصنوعی چگونه چارت سازمانی میسازد؟
هوش مصنوعی معمولاً خود نمودار نهایی را بهتنهایی طراحی نمیکند؛ بلکه داده خام را به ساختاری تبدیل میکند که در ابزارهای رسم نمودار قابل استفاده باشد.
فرایند معمول شامل این مراحل است:
- دریافت فهرست کارکنان یا نقشها
- استانداردسازی نام واحدها و عنوانهای شغلی
- تشخیص روابط گزارشدهی
- شناسایی دادههای ناقص یا متناقض
- انتخاب نوع ساختار
- تولید ساختار درختی
- تولید کد Mermaid، JSON یا CSV
- انتقال خروجی به ابزار رسم چارت
- بازبینی توسط مدیران
- انتشار نسخه تأییدشده
کاربردهای هوش مصنوعی در طراحی چارت سازمانی
تبدیل متن به چارت
میتوانید ساختار شرکت را با زبان طبیعی توضیح دهید و از مدل بخواهید آن را به سلسلهمراتب تبدیل کند.
مثال:
مدیرعامل سه مدیر مستقیم دارد: مدیر محصول، مدیر فنی و مدیر عملیات. مدیر محصول مسئول تیم طراحی و تحقیقات کاربر است. مدیر فنی دو تیم Backend و Frontend را مدیریت میکند.
مدل میتواند این متن را به جدول، JSON یا کد نمودار تبدیل کند.
تبدیل فایل Excel یا CSV به ساختار سازمانی
اگر اطلاعات کارکنان در یک فایل وجود دارد، مدل میتواند ستونها را بررسی و روابط را استخراج کند.
یافتن ناسازگاریها
هوش مصنوعی میتواند موارد زیر را گزارش کند:
- کارمندی که مدیر او در فهرست وجود ندارد.
- دو عنوان متفاوت برای یک واحد
- گزارشدهی حلقهای
- نقش بدون واحد
- مدیر بدون عضو تیم
- شناسه تکراری
- کارمند دارای چند مدیر مستقیم بدون مشخص بودن ساختار ماتریسی
پیشنهاد چند سناریو
میتوانید از مدل بخواهید ساختار فعلی را با سناریوهای سلسلهمراتبی، محصولمحور یا ماتریسی مقایسه کند.
این پیشنهادها باید بهعنوان پیشنویس تحلیل شوند، نه تصمیم نهایی سازمان.
تولید نسخههای مختلف چارت
از یک مجموعه داده میتوان خروجیهای زیر را ساخت:
- چارت کل شرکت
- چارت هر واحد
- چارت مدیریتی
- چارت پروژه
- چارت بدون نام افراد و فقط براساس نقش
- نسخه مناسب کارکنان
- نسخه محدود برای انتشار عمومی
- نسخه برنامه استخدام آینده
انواع چارت سازمانی
انتخاب نوع چارت به ساختار واقعی سازمان بستگی دارد.
چارت سلسلهمراتبی
رایجترین نوع چارت است. مدیر ارشد در بالاترین سطح قرار دارد و سایر مدیران و تیمها در سطوح پایینتر نمایش داده میشوند.
مناسب برای:
- شرکتهای دارای سلسلهمراتب مشخص
- سازمانهای سنتی
- تیمهایی با مدیر مستقیم
- نمایش ساختار رسمی
مزایا:
- ساده و قابلفهم
- نمایش روشن خطوط گزارشدهی
- مناسب برای ورود کارکنان جدید
محدودیت:
- همکاری افقی میان تیمها را بهخوبی نشان نمیدهد.
چارت تخت یا Flat
تعداد لایههای مدیریتی در این ساختار کم است و بسیاری از اعضا مستقیماً به مدیر اصلی یا رهبر تیم گزارش میدهند.
مناسب برای:
- استارتاپهای کوچک
- تیمهای خودگردان
- شرکتهای دارای ساختار ساده
محدودیت:
- با رشد تعداد کارکنان ممکن است مدیر با تعداد زیادی گزارش مستقیم مواجه شود.
چارت وظیفهای
کارکنان براساس تخصص یا وظیفه سازماندهی میشوند:
- فنی
- محصول
- فروش
- بازاریابی
- مالی
- منابع انسانی
- عملیات
این ساختار برای بسیاری از شرکتهای کوچک و متوسط مناسب است.
چارت محصولمحور
هر محصول یا خط کسبوکار، تیمهای موردنیاز خود را دارد.
مثال:
- محصول اول: مدیر محصول، توسعهدهنده، طراح و بازاریاب
- محصول دوم: مدیر محصول، توسعهدهنده، طراح و فروشنده
این ساختار برای شرکتهای دارای چند محصول مستقل مناسب است.
چارت منطقهای
سازمان براساس شهر، کشور یا منطقه جغرافیایی تقسیم میشود.
چارت ماتریسی
هر فرد ممکن است به بیش از یک مدیر گزارش دهد؛ برای مثال یک مدیر تخصصی و یک مدیر پروژه.
خط گزارشدهی مستقیم معمولاً با خط پیوسته و رابطه ثانویه با خطچین نمایش داده میشود.
چارت ماتریسی باید با دقت طراحی شود، زیرا نمایش نامناسب آن میتواند ابهام را بیشتر کند.
چارت پروژهای
برای نمایش اعضای یک پروژه موقت استفاده میشود. ممکن است افراد از واحدهای مختلف در یک تیم مشترک حضور داشته باشند.
چه اطلاعاتی در چارت سازمانی قرار دهیم؟
حداقل اطلاعات موردنیاز عبارتاند از:
- شناسه یکتای فرد یا نقش
- نام
- عنوان شغلی
- واحد
- شناسه مدیر مستقیم
- نوع رابطه گزارشدهی
- وضعیت موقعیت
اطلاعات اختیاری:
- تصویر
- محل کار
- ایمیل سازمانی
- نام تیم
- پروژه
- سطح شغلی
- تاریخ شروع
- وضعیت دورکاری
- موقعیت شغلی خالی
- حوزه مسئولیت
برای نسخه عمومی یا قابلاشتراک، فقط اطلاعات ضروری را نمایش دهید. نیازی نیست شماره تماس، اطلاعات شخصی، حقوق، ارزیابی عملکرد یا دادههای داخلی در چارت قرار بگیرند.
ساختار مناسب فایل Excel یا CSV
یک فایل استاندارد میتواند چنین ستونهایی داشته باشد:
| employee_id | full_name | job_title | department | manager_id | relation_type | status |
|---|---|---|---|---|---|---|
| E001 | امیر احمدی | مدیرعامل | مدیریت | direct | active | |
| E002 | سارا رضایی | مدیر محصول | محصول | E001 | direct | active |
| E003 | علی مرادی | مدیر فنی | فنی | E001 | direct | active |
| E004 | نازنین محمدی | طراح محصول | محصول | E002 | direct | active |
| E005 | رضا کریمی | توسعهدهنده Backend | فنی | E003 | direct | active |
| E006 | کارشناس پشتیبانی | پشتیبانی | E001 | direct | vacant |
استفاده از employee_id و manager_id بهتر از اتصال افراد براساس نام است؛ زیرا ممکن است دو نفر نام یکسان داشته باشند یا نام یک فرد بعداً تغییر کند.
آمادهسازی داده قبل از استفاده از هوش مصنوعی
عنوانهای شغلی را استاندارد کنید
ممکن است در فایل این عنوانها وجود داشته باشند:
مدیر فنی
CTO
Chief Technology Officer
مدیر تکنولوژی
اگر همه به یک نقش اشاره دارند، آنها را به یک عنوان استاندارد تبدیل کنید.
نام واحدها را یکدست کنید
منابع انسانی
منابعانسانی
HR
Human Resources
وجود نامهای مختلف باعث ساخته شدن چند واحد جداگانه میشود.
شناسهها را کنترل کنید
هر فرد یا جایگاه باید شناسه یکتا داشته باشد.
مدیران ناموجود را شناسایی کنید
اگر manager_id به شناسهای اشاره کند که در فایل نیست، نمودار ناقص خواهد شد.
گزارشدهی حلقهای را پیدا کنید
نمونه نامعتبر:
A به B گزارش میدهد
B به C گزارش میدهد
C به A گزارش میدهد
وضعیت جایگاهها را مشخص کنید
موقعیت خالی را با مقدار مشخصی مانند vacant نگه دارید و بهجای نام فرد، عنوان نقش را نمایش دهید.
آموزش ساخت چارت سازمانی با هوش مصنوعی
مرحله اول: هدف را تعیین کنید
مشخص کنید چارت برای چه کاری ساخته میشود:
- معرفی ساختار به کارکنان
- ارائه مدیریتی
- برنامه استخدام
- طراحی ساختار آینده
- مستندسازی تیم پروژه
- نمایش عمومی در سایت
- تحلیل تعداد گزارشهای مستقیم
هدف، میزان جزئیات و نوع خروجی را تعیین میکند.
مرحله دوم: محدوده را مشخص کنید
برای سازمان بزرگ، نمایش تمام افراد در یک صفحه مناسب نیست. میتوانید این نسخهها را بسازید:
- نمای کلی شرکت
- چارت سطح مدیران
- چارت مستقل هر معاونت
- چارت مستقل هر واحد
- چارت پروژههای بینواحدی
Canva نیز توصیه میکند چارتهای بسیار بزرگ به چند نمودار کوچکتر تقسیم شوند تا خوانایی حفظ شود. راهنمای Canva
مرحله سوم: داده را جمعآوری کنید
اطلاعات را از منابع تأییدشده دریافت کنید و مالک داده را مشخص کنید. در بیشتر سازمانها، واحد منابع انسانی یا عملیات مسئول نگهداری اطلاعات ساختار است.
مرحله چهارم: از هوش مصنوعی برای پاکسازی داده استفاده کنید
پرامپت نمونه:
جدول کارکنان زیر را برای ساخت چارت سازمانی بررسی کن.
وظایف:
1. عنوانهای شغلی مشابه را شناسایی کن.
2. نام واحدهای تکراری را مشخص کن.
3. شناسههای تکراری را گزارش بده.
4. manager_idهای ناموجود را پیدا کن.
5. گزارشدهی حلقهای را بررسی کن.
6. نقشهای بدون واحد را مشخص کن.
7. هیچ دادهای را خودسرانه اصلاح نکن.
8. پیشنهاد اصلاح را جدا از داده اصلی بنویس.
خروجی:
- errors
- warnings
- suggested_normalization
- cleaned_preview
داده:
[جدول یا CSV]
مرحله پنجم: ساختار را تولید کنید
براساس داده تاییدشده زیر، ساختار سازمانی را استخراج کن.
قواعد:
- رابطه اصلی فقط از manager_id مشخص شود.
- اگر manager_id خالی است، نقش در سطح ریشه قرار بگیرد.
- رابطه مستقیم و ماتریسی جدا شوند.
- هیچ فرد یا نقش جدیدی اضافه نکن.
- موقعیتهای خالی با برچسب «در حال جذب» نمایش داده شوند.
- خروجی را ابتدا به شکل درخت متنی و سپس JSON ارائه بده.
مرحله ششم: چارت را در ابزار رسم کنید
خروجی را میتوانید در Canva، Miro، Lucidchart یا Mermaid وارد یا بازسازی کنید.
مرحله هفتم: با مدیران تأیید کنید
این موارد باید تأیید شوند:
- مدیر مستقیم هر نقش
- نام و عنوان شغلی
- محل قرارگیری واحدها
- روابط ماتریسی
- موقعیتهای خالی
- سطح جزئیات نسخه منتشرشده
مرحله هشتم: برنامه بهروزرسانی تعیین کنید
چارت سازمانی یک فایل ثابت نیست. برای آن مالک، تاریخ آخرین بهروزرسانی و دوره بازبینی تعریف کنید.
پرامپتهای آماده ساخت چارت سازمانی
پرامپت تبدیل متن به چارت
توضیحات زیر را به یک چارت سازمانی تبدیل کن.
وظایف:
- واحدها و نقشها را استخراج کن.
- مدیر مستقیم هر نقش را مشخص کن.
- موارد مبهم را حدس نزن و با needs_review علامت بزن.
- ابتدا ساختار درختی ارائه بده.
- سپس جدول نقش، واحد، مدیر مستقیم و نوع رابطه را بساز.
- در پایان کد Mermaid تولید کن.
- هیچ نام یا موقعیت جدیدی اضافه نکن.
توضیحات:
[شرح ساختار سازمان]
پرامپت ساخت چارت استارتاپ
برای استارتاپ زیر یک پیشنویس ساختار سازمانی پیشنهاد بده.
مرحله شرکت:
[پیشبذری، بذری یا رشد]
تعداد فعلی اعضا:
[تعداد]
محصول:
[توضیح محصول]
نقشهای فعلی:
[فهرست نقشها]
برنامه ۱۲ ماه آینده:
[اهداف]
خروجی:
1. ساختار فعلی براساس داده موجود
2. مشکلات احتمالی ساختار
3. ساختار پیشنهادی برای ۶ ماه آینده
4. موقعیتهای استخدامی پیشنهادی همراه با دلیل
5. کد Mermaid هر دو ساختار
پیشنهادها قطعی نباشند و فرضیات جداگانه نوشته شوند.
پرامپت ساخت چارت فقط براساس نقش
از اطلاعات زیر یک چارت سازمانی بدون نام اشخاص بساز.
فقط این اطلاعات نمایش داده شوند:
- عنوان نقش
- واحد
- مدیر مستقیم
- وضعیت تکمیل یا خالی بودن موقعیت
اطلاعات شخصی، ایمیل و تصویر در خروجی نباشد.
پرامپت چارت ماتریسی
براساس جدول زیر یک چارت سازمانی ماتریسی طراحی کن.
قواعد:
- مدیر مستقیم با خط پیوسته مشخص شود.
- مدیر پروژه یا رابطه ثانویه با خطچین مشخص شود.
- هر فرد فقط یک مدیر مستقیم داشته باشد.
- روابط ثانویه جداگانه فهرست شوند.
- روابط متناقض را needs_review علامت بزن.
- خروجی Mermaid و جدول روابط را ارائه بده.
پرامپت تحلیل ساختار فعلی
چارت سازمانی زیر را بدون تغییر در دادهها تحلیل کن.
موارد مورد بررسی:
- تعداد گزارشهای مستقیم هر مدیر
- نقشهای بدون مدیر
- مدیران بدون عضو تیم
- سطوح سازمانی
- واحدهای بسیار کوچک
- واحدهای دارای نام مشابه
- روابط احتمالی نامعتبر
- موقعیتهای خالی
- نقاطی که به بررسی مدیریتی نیاز دارند
از نتیجهگیری قطعی درباره عملکرد افراد خودداری کن.
پرامپت تبدیل CSV به Mermaid
فایل CSV زیر شامل این ستونهاست:
employee_id, full_name, job_title, department,
manager_id, relation_type, status
آن را به کد Mermaid flowchart تبدیل کن.
قواعد:
- جهت نمودار از بالا به پایین باشد.
- هر گره شامل نام و عنوان شغلی باشد.
- واحد هر فرد در یک subgraph قرار بگیرد.
- رابطه direct با خط پیوسته نمایش داده شود.
- رابطه dotted با خطچین نمایش داده شود.
- موقعیت vacant با عبارت «در حال جذب» مشخص شود.
- هیچ دادهای اضافه یا حذف نشود.
- اگر مدیر پیدا نشد، قبل از کد یک هشدار بنویس.
ابزارهای ساخت چارت سازمانی با هوش مصنوعی
درواره
درواره زیرساخت API هوش مصنوعی است، نه یک نرمافزار آماده رسم چارت. از طریق API درواره میتوانید مدل متنی را به فرایند سازمانی خود متصل کنید تا:
- توضیحات متنی را به ساختار سازمانی تبدیل کند.
- اطلاعات CSV را استاندارد کند.
- ناسازگاریهای داده را شناسایی کند.
- خروجی JSON تولید کند.
- کد Mermaid بسازد.
- تغییرات میان دو نسخه چارت را خلاصه کند.
- برای نقشهای خالی توضیحات اولیه آماده کند.
- سیستم مدیریت ساختار سازمانی اختصاصی ایجاد کند.
برای مشاهده مدلهای قابلارائه، قابلیتها و قیمتهای بهروز به صفحه مدلهای درواره مراجعه کنید.
Canva
Canva دارای قالبهای چارت سازمانی و Whiteboard قابلویرایش است. میتوانید نامها، نقشها، تصاویر و هویت بصری شرکت را به قالب اضافه و خروجی را در قالبهایی مانند PDF و تصویر دریافت کنید. ساخت چارت سازمانی در Canva
Miro
Miro ابزار اختصاصی ساخت چارت سازمانی و قابلیتهای AI Diagramming ارائه میکند. این ابزار برای همکاری تیمی، بررسی چند سناریو و وارد کردن داده از CSV کاربردی است. Miro Organizational Chart
Lucidchart
Lucidchart برای رسم نمودار، اتصال داده و تولید یا اصلاح Diagram با هوش مصنوعی استفاده میشود. این ابزار برای چارتهای حرفهای و مستندات سازمانی مناسب است. Lucidchart
Mermaid
Mermaid ابزاری مبتنی بر متن و کد است که تعریفهای شبیه Markdown را به نمودار تبدیل میکند. برای توسعهدهندگان، مستندسازی و نگهداری چارت در Git گزینه کاربردی محسوب میشود. مستندات Mermaid
ساخت چارت سازمانی با Mermaid
نمونه ساده:
flowchart TB
CEO["مدیرعامل"]
CTO["مدیر فنی"]
CPO["مدیر محصول"]
COO["مدیر عملیات"]
BE["تیم Backend"]
FE["تیم Frontend"]
UX["تیم طراحی محصول"]
SUP["تیم پشتیبانی"]
CEO --> CTO
CEO --> CPO
CEO --> COO
CTO --> BE
CTO --> FE
CPO --> UX
COO --> SUP
Mermaid در همه قالبهای Ghost بهصورت پیشفرض رندر نمیشود. روش ساده این است که کد را در Mermaid Live Editor یا ابزار سازگار باز کنید، خروجی SVG یا PNG بگیرید و سپس تصویر را در Ghost بارگذاری کنید.
چارت با واحدهای مجزا
flowchart TB
CEO["مدیرعامل"]
subgraph TECH["واحد فنی"]
CTO["مدیر فنی"]
BACKEND["تیم Backend"]
FRONTEND["تیم Frontend"]
DEVOPS["DevOps"]
end
subgraph PRODUCT["واحد محصول"]
CPO["مدیر محصول"]
DESIGN["طراحی محصول"]
RESEARCH["تحقیقات کاربر"]
end
subgraph OPERATIONS["واحد عملیات"]
COO["مدیر عملیات"]
SUPPORT["پشتیبانی"]
end
CEO --> CTO
CEO --> CPO
CEO --> COO
CTO --> BACKEND
CTO --> FRONTEND
CTO --> DEVOPS
CPO --> DESIGN
CPO --> RESEARCH
COO --> SUPPORT
نمایش رابطه ماتریسی
flowchart TB
CEO["مدیرعامل"]
CTO["مدیر فنی"]
PM["مدیر پروژه"]
DEV["توسعهدهنده"]
DESIGNER["طراح محصول"]
CEO --> CTO
CEO --> PM
CTO --> DEV
CTO --> DESIGNER
PM -. رابطه پروژه .-> DEV
PM -. رابطه پروژه .-> DESIGNER
تبدیل JSON به چارت سازمانی
ساختار پیشنهادی JSON:
{
"organization": "Example Company",
"version": "2026-07",
"positions": [
{
"id": "P001",
"name": "امیر احمدی",
"title": "مدیرعامل",
"department": "مدیریت",
"manager_id": null,
"relation_type": "direct",
"status": "active"
},
{
"id": "P002",
"name": "سارا رضایی",
"title": "مدیر محصول",
"department": "محصول",
"manager_id": "P001",
"relation_type": "direct",
"status": "active"
},
{
"id": "P003",
"name": null,
"title": "طراح محصول",
"department": "محصول",
"manager_id": "P002",
"relation_type": "direct",
"status": "vacant"
}
]
}
JSON برای ذخیره در پایگاه داده، تولید چند نمای مختلف و بررسی تغییرات مناسبتر از نگهداری صرف یک فایل تصویری است.
ساخت چارت سازمانی با API درواره
ابتدا در درواره ثبتنام و کلید API ایجاد کنید.
فایل .env:
DARVAREH_API_KEY=YOUR_API_KEY
DARVAREH_TEXT_MODEL=YOUR_MODEL_ID
YOUR_MODEL_ID باید با Model ID مدل انتخابشده در درواره جایگزین شود.
نصب کتابخانه:
pip install openai python-dotenv
کد Python:
import json
import os
from pathlib import Path
from dotenv import load_dotenv
from openai import OpenAI
load_dotenv()
api_key = os.getenv("DARVAREH_API_KEY")
model_id = os.getenv("DARVAREH_TEXT_MODEL")
if not api_key:
raise RuntimeError("DARVAREH_API_KEY is not configured")
if not model_id:
raise RuntimeError("DARVAREH_TEXT_MODEL is not configured")
client = OpenAI(
api_key=api_key,
base_url="https://api.darvareh.ir/v1",
)
organization_text = """
مدیرعامل سه مدیر مستقیم دارد: مدیر فنی، مدیر محصول و مدیر عملیات.
مدیر فنی مسئول تیمهای Backend، Frontend و DevOps است.
مدیر محصول مسئول طراحی محصول و تحقیقات کاربر است.
مدیر عملیات مسئول تیم پشتیبانی است.
موقعیت مدیر بازاریابی خالی است و مستقیماً به مدیرعامل گزارش میدهد.
""".strip()
prompt = f"""
ساختار سازمانی زیر را تحلیل کن.
خروجی را فقط به شکل JSON معتبر ارائه بده:
{{
"positions": [
{{
"id": "P001",
"name": null,
"title": "عنوان نقش",
"department": "نام واحد",
"manager_id": null,
"relation_type": "direct",
"status": "active یا vacant"
}}
],
"warnings": []
}}
قواعد:
- هیچ نقش یا رابطهای را حدس نزن.
- برای هر نقش شناسه یکتا ایجاد کن.
- manager_id باید به شناسه نقش مدیر اشاره کند.
- نقش خالی با status برابر vacant مشخص شود.
- اگر اطلاعاتی مبهم است، آن را در warnings بنویس.
- نام افراد در منبع وجود ندارد؛ بنابراین name باید null باشد.
ساختار:
{organization_text}
""".strip()
response = client.chat.completions.create(
model=model_id,
messages=[
{
"role": "system",
"content": (
"تو ساختار سازمانی را مستند میکنی و "
"نباید اطلاعات خارج از منبع اضافه کنی."
),
},
{
"role": "user",
"content": prompt,
},
],
temperature=0.1,
)
content = response.choices[0].message.content
org_data = json.loads(content)
Path("organization.json").write_text(
json.dumps(org_data, ensure_ascii=False, indent=2),
encoding="utf-8",
)
print("Created organization.json")
دمای پایینتر برای تبدیل داده و استخراج روابط مناسبتر است، اما خروجی همچنان باید اعتبارسنجی شود.
تولید خودکار کد Mermaid از JSON
import json
from pathlib import Path
def escape_label(value: str) -> str:
return (
value.replace('"', "'")
.replace("\n", " ")
.strip()
)
def build_label(position: dict) -> str:
name = position.get("name")
title = position.get("title", "بدون عنوان")
status = position.get("status")
if status == "vacant":
return f"{title}<br/>در حال جذب"
if name:
return f"{name}<br/>{title}"
return title
data = json.loads(
Path("organization.json").read_text(encoding="utf-8")
)
positions = data["positions"]
valid_ids = {item["id"] for item in positions}
lines = [
"flowchart TB",
]
for position in positions:
node_id = position["id"]
label = escape_label(build_label(position))
lines.append(f' {node_id}["{label}"]')
for position in positions:
node_id = position["id"]
manager_id = position.get("manager_id")
relation_type = position.get("relation_type", "direct")
if manager_id is None:
continue
if manager_id not in valid_ids:
print(
f"Warning: manager {manager_id} "
f"not found for {node_id}"
)
continue
if relation_type == "dotted":
lines.append(
f" {manager_id} -.-> {node_id}"
)
else:
lines.append(
f" {manager_id} --> {node_id}"
)
mermaid_code = "\n".join(lines)
Path("organization.mmd").write_text(
mermaid_code,
encoding="utf-8",
)
print(mermaid_code)
این برنامه:
- گرههای سازمانی را ایجاد میکند.
- رابطه مدیر و عضو را رسم میکند.
- موقعیتهای خالی را مشخص میکند.
- مدیران ناموجود را گزارش میدهد.
- خروجی Mermaid تولید میکند.
بررسی گزارشدهی حلقهای با Python
یکی از خطاهای مهم داده، ایجاد چرخه در رابطه مدیر و کارمند است.
def find_reporting_cycles(positions: list[dict]) -> list[list[str]]:
manager_map = {
item["id"]: item.get("manager_id")
for item in positions
}
cycles = []
for start_id in manager_map:
path = []
path_index = {}
current_id = start_id
while current_id is not None:
if current_id in path_index:
cycle_start = path_index[current_id]
cycle = path[cycle_start:] + [current_id]
cycles.append(cycle)
break
if current_id not in manager_map:
break
path_index[current_id] = len(path)
path.append(current_id)
current_id = manager_map[current_id]
unique_cycles = []
seen = set()
for cycle in cycles:
cycle_nodes = cycle[:-1]
signature = frozenset(cycle_nodes)
if signature not in seen:
seen.add(signature)
unique_cycles.append(cycle)
return unique_cycles
استفاده:
cycles = find_reporting_cycles(
org_data["positions"]
)
if cycles:
print("Reporting cycles found:")
for cycle in cycles:
print(" -> ".join(cycle))
else:
print("No reporting cycle found")
اگر چرخه پیدا شد، نباید مدل یا برنامه بهصورت خودکار یکی از روابط را حذف کند. مورد باید برای بررسی مسئول ساختار سازمانی ارسال شود.
تبدیل فایل CSV به JSON با Python
import csv
import json
from pathlib import Path
input_path = Path("employees.csv")
output_path = Path("employees.json")
positions = []
with input_path.open(
"r",
encoding="utf-8-sig",
newline="",
) as file:
reader = csv.DictReader(file)
for row in reader:
positions.append(
{
"id": row["employee_id"].strip(),
"name": row["full_name"].strip() or None,
"title": row["job_title"].strip(),
"department": row["department"].strip(),
"manager_id": (
row["manager_id"].strip() or None
),
"relation_type": (
row["relation_type"].strip() or "direct"
),
"status": (
row["status"].strip() or "active"
),
}
)
output_path.write_text(
json.dumps(
{"positions": positions},
ensure_ascii=False,
indent=2,
),
encoding="utf-8",
)
print("Created:", output_path)
بعد از این تبدیل، میتوانید JSON را برای تحلیل ساختاری به مدل ارسال کنید.
چگونه چارت را برای سازمانهای بزرگ ساده کنیم؟
نمایش صدها یا هزاران نفر در یک تصویر معمولاً مفید نیست. راهحلهای بهتر عبارتاند از:
نمای چندسطحی
نسخه اول فقط مدیرعامل و مدیران اصلی را نشان دهد. کاربر با انتخاب هر واحد وارد چارت جزئی آن شود.
فیلتر براساس واحد
کاربر فقط واحد فنی، محصول یا فروش را مشاهده کند.
جستوجوی فرد و نقش
امکان یافتن فرد و مشاهده زنجیره مدیران او فراهم شود.
نمایش نقش بهجای فرد
برای برنامهریزی آینده، چارت براساس جایگاه سازمانی ساخته شود و نام فرد اختیاری باشد.
نسخه تعاملی
در نمودار تعاملی، اطلاعات بیشتر پس از انتخاب هر گره نمایش داده شود.
جدا کردن چارت پروژه
روابط موقت پروژهای را در چارت جداگانه نگه دارید تا ساختار رسمی شلوغ نشود.
تحلیل چارت با هوش مصنوعی
هوش مصنوعی میتواند شاخصهای توصیفی تولید کند:
- تعداد سطوح سازمانی
- تعداد اعضای هر واحد
- تعداد گزارشهای مستقیم هر مدیر
- موقعیتهای خالی
- تعداد روابط ماتریسی
- نقشهای بدون مدیر
- واحدهای بدون مدیر مشخص
- تغییرات نسبت به نسخه قبلی
اما این شاخصها بهتنهایی نباید برای قضاوت درباره عملکرد مدیر یا کارکنان استفاده شوند. تعداد مناسب گزارشهای مستقیم به نوع کار، تجربه تیم، پیچیدگی نقشها و شیوه مدیریت بستگی دارد.
نسخه فعلی و نسخه پیشنهادی را جدا نگه دارید
یکی از خطاهای رایج این است که ساختار فعلی و برنامه آینده در یک چارت ترکیب شوند.
بهتر است دو نسخه داشته باشید:
As-Is
ساختار فعلی و واقعی سازمان را نمایش میدهد.
To-Be
ساختار هدف یا پیشنهادی را برای یک تاریخ آینده نمایش میدهد.
برای جلوگیری از اشتباه، روی هر فایل این اطلاعات را بنویسید:
- نوع نسخه
- تاریخ اعتبار
- وضعیت تأیید
- مالک سند
- شماره نسخه
مثال:
نوع: ساختار هدف
تاریخ هدف: پایان فصل چهارم
وضعیت: پیشنویس مدیریتی
نسخه: 0.3
نگهداری و نسخهبندی چارت سازمانی
هر چارت باید متادیتای مشخص داشته باشد:
{
"organization": "Example Company",
"chart_type": "hierarchical",
"scope": "company-wide",
"version": "2.4",
"status": "approved",
"effective_from": "2026-08-01",
"last_updated_at": "2026-07-26",
"owner": "people-operations"
}
فرایند بهروزرسانی پیشنهادی:
- تغییر در منبع اصلی ثبت شود.
- داده اعتبارسنجی شود.
- چارت جدید تولید شود.
- تفاوت نسخهها گزارش شود.
- مسئول مربوطه آن را تأیید کند.
- نسخه عمومی و داخلی جداگانه منتشر شوند.
- نسخه قبلی آرشیو شود.
اشتباهات رایج در ساخت چارت سازمانی
رسم چارت قبل از پاکسازی داده
اگر عنوانها، واحدها و شناسهها استاندارد نباشند، نمودار اشتباه خواهد بود.
استفاده از نام بهعنوان شناسه
دو فرد ممکن است نام مشابه داشته باشند. از شناسه یکتا استفاده کنید.
ترکیب ساختار فعلی و آینده
موقعیتهای پیشنهادی باید بهوضوح از وضعیت فعلی جدا شوند.
نمایش جزئیات بیش از حد
چارت شلوغ هدف اصلی خود، یعنی فهم سریع ساختار، را از دست میدهد.
نادیده گرفتن روابط ماتریسی
اگر فرد به مدیر پروژه نیز پاسخگو است، رابطه ثانویه را با نوع خط متفاوت نمایش دهید.
انتشار اطلاعات غیرضروری
نسخه عمومی نباید شامل اطلاعات شخصی یا جزئیات داخلی نامرتبط باشد.
اعتماد کامل به پیشنهاد هوش مصنوعی
مدل ممکن است براساس الگوهای عمومی پیشنهاد دهد، اما از واقعیت کامل سازمان آگاه نیست.
بهروزرسانی نکردن چارت
چارت قدیمی میتواند بیشتر از نداشتن چارت باعث سردرگمی شود.
استفاده از یک صفحه برای سازمان بزرگ
نمای کلی و چارت واحدها را جدا کنید.
نداشتن مالک مشخص
باید معلوم باشد چه شخص یا واحدی مسئول صحت و بهروزرسانی چارت است.
چکلیست نهایی چارت سازمانی
پیش از انتشار بررسی کنید:
- هدف و مخاطب چارت مشخص است.
- محدوده نمودار تعریف شده است.
- همه افراد یا موقعیتها شناسه یکتا دارند.
- عنوانهای شغلی استاندارد شدهاند.
- نام واحدها یکدست است.
- مدیر مستقیم هر نقش مشخص است.
- هیچ
manager_idنامعتبر وجود ندارد. - گزارشدهی حلقهای وجود ندارد.
- روابط مستقیم و ماتریسی تفکیک شدهاند.
- موقعیتهای خالی مشخصاند.
- ساختار فعلی و آینده جدا هستند.
- نسخه و تاریخ اعتبار نوشته شده است.
- نمودار در اندازه معمول خواناست.
- برای سازمان بزرگ، چارت به بخشهای کوچکتر تقسیم شده است.
- اطلاعات غیرضروری کارکنان نمایش داده نشده است.
- مدیران مربوطه ساختار را تأیید کردهاند.
- مالک بهروزرسانی چارت مشخص است.
- فایل قابلویرایش نگهداری شده است.
- نسخه خروجی در موبایل و دسکتاپ بررسی شده است.
سوالات متداول
آیا هوش مصنوعی میتواند چارت سازمانی بسازد؟
بله. هوش مصنوعی میتواند متن، جدول، Excel یا CSV را به ساختار درختی، JSON یا کد نمودار تبدیل کند. صحت روابط گزارشدهی باید توسط مسئول سازمان تأیید شود.
برای ساخت چارت چه اطلاعاتی لازم است؟
حداقل به شناسه فرد یا نقش، عنوان شغلی، واحد و شناسه مدیر مستقیم نیاز دارید. نام شخص، تصویر و اطلاعات تماس اختیاری هستند.
چگونه از Excel چارت سازمانی بسازیم؟
اطلاعات را در ستونهای مشخص مانند employee_id، job_title، department و manager_id قرار دهید، داده را پاکسازی کنید و سپس آن را به ابزار چارت یا مدل هوش مصنوعی بدهید.
بهترین ابزار ساخت چارت سازمانی چیست؟
برای طراحی بصری میتوانید از Canva، Miro یا Lucidchart استفاده کنید. برای تولید چارت مبتنی بر متن و کد، Mermaid مناسب است. انتخاب ابزار به اندازه سازمان، نیاز به همکاری و نحوه بهروزرسانی بستگی دارد.
آیا Mermaid برای چارت سازمانی فارسی مناسب است؟
بله، میتوان متن فارسی را داخل گرهها قرار داد. جهت نمودار و نمایش فونت به محیط رندر بستگی دارد. بهتر است خروجی را قبل از انتشار به SVG یا PNG تبدیل و بررسی کنید.
چارت سازمانی چند وقت یک بار باید بهروزرسانی شود؟
بهترین روش، بهروزرسانی پس از هر تغییر تأییدشده و یک بازبینی منظم دورهای است. سازمانهای دارای تغییرات زیاد ممکن است به همگامسازی خودکار نیاز داشته باشند.
آیا نام تمام کارکنان باید در چارت نمایش داده شود؟
خیر. میتوانید چارت را فقط براساس نقشها بسازید. نسخه داخلی و عمومی نیز میتوانند سطح جزئیات متفاوتی داشته باشند.
آیا درواره ابزار آماده رسم چارت است؟
درواره زیرساخت API هوش مصنوعی است. میتوانید از مدلهای در دسترس آن برای تبدیل متن و داده به JSON، Mermaid یا ساختار قابلاستفاده در نرمافزار چارتسازی کمک بگیرید.
هزینه استفاده از API برای ساخت چارت چقدر است؟
هزینه به مدل، حجم داده ورودی، تعداد توکنها و تعداد درخواستها وابسته است. برای مشاهده قیمتهای بهروز، صفحه مدلهای درواره را بررسی کنید.
جمعبندی
ساخت چارت سازمانی با هوش مصنوعی میتواند بخش زیادی از کارهای تکراری مانند پاکسازی داده، استخراج روابط، تولید ساختار درختی و آمادهسازی کد نمودار را سریعتر کند. بااینحال، کیفیت خروجی مستقیماً به صحت داده اولیه وابسته است.
فرایند حرفهای با تعریف هدف و محدوده شروع میشود، سپس اطلاعات کارکنان و نقشها استاندارد میشوند، روابط گزارشدهی اعتبارسنجی میشوند و در نهایت خروجی در ابزاری مانند Canva، Miro، Lucidchart یا Mermaid رسم میشود.
اگر میخواهید این فرایند را در سامانه منابع انسانی، پنل سازمانی یا نرمافزار خودکار کنید، میتوانید از API هوش مصنوعی درواره برای تبدیل اطلاعات به JSON، تحلیل ساختار و تولید کد نمودار استفاده کنید.
برای شروع، در درواره ثبتنام کنید، مدل مناسب را از صفحه مدلها انتخاب کنید و اولین ساختار سازمانی قابلویرایش خود را بسازید.
مقالات مرتبط
- ساخت فلوچارت با هوش مصنوعی
- هوش مصنوعی در مدیریت منابع انسانی
- مدیریت پروژه با هوش مصنوعی
- ساخت مایند مپ با هوش مصنوعی
- ساخت تایملاین با هوش مصنوعی
- ساخت گزارش با هوش مصنوعی
- آموزش خروجی ساختاریافته و JSON Schema
برای مطالعه شرایط استفاده و محدودیتهای مسئولیت، صفحه «سلب مسئولیت» را مشاهده کنید.