پرامپت نویسی JSON چیست؟

آموزش کامل صفر تا صد
آخرین تاریخ ویرایش : ۲۹ مهر ۱۴۰۴
20 دقیقه
0 نظر

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

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

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

بخش اول: مقدمه — چرا «پرامپت‌نویسی با JSON» مهم است؟

پرامپت‌نویسی (Prompting) یعنی طراحی و نگارش ورودی‌ای که به یک مدل زبانی داده می‌شود تا خروجی دلخواه را بگیرد. «پرامپت‌نویسی با JSON» یعنی استفاده از قالب مشخص و ساختاریافتهٔ JSON (JavaScript Object Notation) برای تعریف آن ورودی، که شامل تکلیف (task)، پارامترها، محدودیت‌ها، نمونه‌ها و هر اطلاعات کمکی دیگری که مدل برای تولید دقیق‌تر نیاز دارد، می‌شود. مزیت اصلیِ این رویکرد این است که پرامپت‌ها از حالت متن آزاد و نامشخص خارج می‌شوند و به شکل قابل‌فهم و قابل‌بررسی برای انسان و برنامه‌ها درمی‌آیند. این باعث می‌شود پرامپت‌ها قابل تکرار، قابل آزمون، و قابل اتوماسیون باشند.

۱. JSON چیست؟

تصور کنید یک کارت دستورالعمل دارید برای یک دستیار: روی کارت نوشته‌اید «خلاصه کن»، «طول خلاصه: ۵۰ تا ۷۵ کلمه»، «زبان: فارسی»، و «لحن: رسمی». JSON همین کارت را به صورت ساختاریافته نگه می‌دارد.

مثال خیلی سادهٔ JSON:

{
  "task": "خلاصه‌نویسی",
  "language": "fa",
  "length": "50-75 words"
}

هر بخش (اسمش: کلید یا key) به یک مقدار مرتبط است. مقادیر می‌تواند عدد، رشتهٔ متنی، آرایه (لیست)، یا شیء (دیتای ساختاریافتهٔ دیگر) باشد. برای درک پرامپت‌نویسی با JSON نیازی نیست برنامه‌نویس باشید؛ کافی است بدانید که این فایل‌ها مثل یک فهرست استاندارد و خوانا برای ماشین و انسان عمل می‌کنند.

۲. چرا از JSON برای پرامپت استفاده کنیم؟

  • قابلیت خوانایی و استاندارد بودن: JSON استانداردی جهانی است؛ بسیاری از ابزارها آن را می‌فهمند.
  • قابلیت اعتبارسنجی (validation): می‌توانیم با قواعد ساده بررسی کنیم که همهٔ فیلدهای ضروری پر شده‌اند.
  • قابلیت نمونه‌سازی و اتوماسیون: یک قالب (template) بسازیم و سپس با داده‌های مختلف آن را خودکار پر کنیم.
  • قابلیت تولید ساختارمند برای خروجی‌های پیچیده: وقتی می‌خواهیم خروجی شامل بخش‌های متعدد و قابل‌آنالیز باشد (مثلاً عنوان، خلاصه، نکات کلیدی، لیست اقدام‌ها)، JSON به ما کمک می‌کند خروجی را ساختاریافته بخواهیم.

۳. ساختار کلیِ یک JSON prompt — اجزای پایه‌ای

یک JSON prompt معمولاً شامل بخش‌های زیر است (نام‌ها و ساختارها قابل تغییرند، اما پیشنهاد کلی این است):

  • meta — اطلاعاتِ توضیحی (مثلاً نویسنده، تاریخ، نسخهٔ قالب)
  • task — توضیح خلاصهٔ کاری که مدل باید انجام دهد
  • input — دادهٔ خام یا متن مبنا (مثلاً متن جلسه، مقاله، یا سوال)
  • parameters — تنظیمات تولید: طول، زبان، لحن، قالب خروجی، درجهٔ خلاقیت (temperature)، حداکثر توکن و غیره
  • schema — توصیفِ ساختار خروجیِ مورد انتظار (مثلاً: خروجی باید JSON با کلیدهای title, summary, action_items باشد)
  • examples — نمونه‌های ورودی-خروجی (optional ولی بسیار ارزشمند)
  • constraints — قوانین ویژه (مثلاً «از به‌کار بردن نام‌های خاص خودداری کن»، یا «هر آیتم اکشن نباید بیش از ۱۲۵ حرف باشد»)
  • evaluation — معیارهای ساده برای ارزیابی خروجی (مثلاً «دقت: شامل 3 نکتهٔ کلیدی»)

نمونهٔ اسکلت کلی:

{
  "meta": { "version": "1.0", "author": "Reza" },
  "task": "خلاصه‌نویسی و استخراج آیتم‌های اقدام از متن جلسه",
  "input": { "meeting_text": "..." },
  "parameters": { "language": "fa", "max_words_summary": 80, "temperature": 0.2 },
  "schema": {
    "title": "string",
    "summary": "string",
    "action_items": [
      { "task": "string", "owner": "string", "due": "string" }
    ]
  },
  "examples": [ /* نمونه‌ها */ ],
  "constraints": [ /* قوانین */ ]
}

۴. گام‌به‌گام: از تعریف مسئله تا اجرای اولین JSON prompt

در ادامه یک کیس‌استادی ساده، واقعی و قابل‌فهم برای کسانی که اصلاً برنامه‌نویسی نمی‌دانند ارائه می‌کنم: شما می‌خواهید از متنِ چکیدهٔ جلسهٔ تیم، یک خلاصهٔ ۵۰-۸۰ کلمه‌ای و لیستِ «آیتم‌های اقدام» (کارهایی که باید انجام شود) استخراج کنید.

گام 1 — آماده‌سازی دادهٔ ورودی (متن جلسه)

فرض کنید متن جلسهٔ شما چنین است (نمونهٔ ساده):

در جلسهٔ امروز (۱۴ مهر ۱۴۰۴) دربارهٔ بازنگری محصول صحبت کردیم. آقاى احمد مسئول بررسی تجربهٔ کاربری شدند و تا جلسهٔ بعدی نمونهٔ پروتوتایپ را آماده می‌کنند. خانم سارا قرار است فهرست مشکلات گزارش‌شده از مشتریان را جمع‌آوری کند و تا دو هفته گزارش دهد. تصمیم گرفتیم تست A/B را در هفتهٔ آینده اجرا کنیم.

گام 2 — تعریفِ هدف (task)

هدف روشن: «خلاصه‌نویسی ۵۰-۸۰ کلمه‌ای» و «استخراج آیتم‌های اقدام با سه فیلد: کار، مسئول، سررسید».

گام 3 — نوشتن JSON prompt (نسخهٔ اولیه)

حالا یک JSON ساده می‌سازیم که همهٔ اطلاعات لازم را در خودش داشته باشد.

{
  "meta": { "version": "1.0", "author": "کاربر" },
  "task": "خلاصه و استخراج آیتم‌های اقدام",
  "input": {
    "meeting_text": "در جلسهٔ امروز (۱۴ مهر ۱۴۰۴) دربارهٔ بازنگری محصول صحبت کردیم. آقاى احمد مسئول بررسی تجربهٔ کاربری شدند و تا جلسهٔ بعدی نمونهٔ پروتوتایپ را آماده می‌کنند. خانم سارا قرار است فهرست مشکلات گزارش‌شده از مشتریان را جمع‌آوری کند و تا دو هفته گزارش دهد. تصمیم گرفتیم تست A/B را در هفتهٔ آینده اجرا کنیم."
  },
  "parameters": {
    "language": "fa",
    "summary_min_words": 50,
    "summary_max_words": 80,
    "temperature": 0.2,
    "output_format": "json"
  },
  "schema": {
    "title": "string",
    "summary": "string",
    "action_items": [
      { "task": "string", "owner": "string", "due": "string" }
    ]
  },
  "constraints": [
    "خلاصه باید 50 تا 80 کلمه باشد.",
    "برای هر آیتم اقدام، if مسئول معلوم نیست، 'نامشخص' بنویس."
  ]
}

نکته برای غیربرنامه‌نویسان: شما می‌توانید این JSON را در یک فایل متنی ساده (مثلاً در Notepad) کپی کنید و به کسی بدهید یا در ابزاری که از JSON پشتیبانی می‌کند آپلود کنید. خودتان لازم نیست کدنویسی کنید.

گام 4 — ارسال JSON به مدل (چگونه؟)

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

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

گام 5 — نمونهٔ خروجیِ مورد انتظار (طبق schema)

مدل باید خروجی‌ای شبیه به این بدهد:

{
  "title": "خلاصهٔ جلسهٔ بازنگری محصول - ۱۴ مهر ۱۴۰۴",
  "summary": "در جلسهٔ بازنگری محصول تصمیماتی دربارهٔ بهبود تجربهٔ کاربری و تست‌های آزمایشی گرفته شد. آقای احمد مسئول توسعهٔ پروتوتایپ است و تا جلسهٔ بعد نمونه‌ای ارائه خواهد داد. خانم سارا وظیفهٔ جمع‌آوری گزارش مشکلات مشتریان را بر عهده دارد و گزارش نهایی را ظرف دو هفته تحویل می‌دهد. همچنین اجرای تست A/B در هفتهٔ آینده برنامه‌ریزی شد.",
  "action_items": [
    { "task": "آماده‌سازی پروتوتایپ برای تجربهٔ کاربری", "owner": "آقاى احمد", "due": "تا جلسهٔ بعد" },
    { "task": "جمع‌آوری فهرست مشکلات گزارش‌شده از مشتریان و تهیهٔ گزارش", "owner": "خانم سارا", "due": "۲ هفته" },
    { "task": "برنامه‌ریزی و اجرای تست A/B", "owner": "نامشخص", "due": "هفتهٔ آینده" }
  ]
}

گام 6 — بررسی و اصلاح (iteration)

اگر خروجی دقیقاً مطابق انتظار نبود، می‌توانیم JSON را اصلاح کنیم. چند نمونه اصلاح متداول:

  • کاهش یا افزایش محدودهٔ طول خلاصه (summary_max_words)
  • تعیین دقیق‌تر قالب تاریخ‌ها (مثلاً فرمت YYYY-MM-DD)
  • افزودن نمونه‌های بیشتر در بخش examples تا مدل رفتار دقیق‌تری بیاموزد

۵. مثالی عملی‌تر — اضافه کردن نمونه‌های آموزشی (examples)

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

نمونه:

{
  "examples": [
    {
      "input": "در جلسهٔ 10 آبان دربارهٔ بازاریابی و کمپین صحبت شد. علی مسئول تهیهٔ تقویم محتوا شد و تا 1 آذر آن را آماده می‌کند.",
      "output": {
        "title": "خلاصه جلسهٔ بازاریابی - 10 آبان",
        "summary": "در جلسهٔ بازاریابی تصمیم گرفته شد تقویم محتوا تنظیم شود و علی مسئولیت آن را بر عهده گرفت؛ مهلت تا 1 آذر تعیین شد.",
        "action_items": [
          { "task": "تهیهٔ تقویم محتوا", "owner": "علی", "due": "2024-11-21" }
        ]
      }
    }
  ]
}

دقت کنید: اگر از فرمت تاریخ مشخص استفاده می‌کنید، در بخش parameters هم آن را مشخص کنید تا مدل فرمت را حفظ کند.

۶. نکات کاربردی و بهترین رویه‌ها (Best Practices)

  1. واضح و کوتاه بنویسید: JSON باید حاوی دستورالعمل‌های کوتاه و دقیق باشد. پرامپتِ پیچیده و مبهم معمولاً خروجی ضعیف می‌دهد.
  2. از schema استفاده کنید: هر وقت می‌خواهید خروجی ساختاریافته باشد (مثل لیست آیتم‌ها یا جدول)، آن را در schema تعریف کنید.
  3. نمونه‌ها (examples) اضافه کنید: چند نمونهٔ ورودی و خروجی واقعی به مدل کمک می‌کند الگوی موردنظر شما را یاد بگیرد.
  4. محدودیت‌ها و قوانین را بنویسید: اگر لازم است از کلمات یا ساختار خاصی اجتناب شود یا طول معینی رعایت شود، در constraints آن را بنویسید.
  5. پارامترهای تولید را تنظیم کنید: مثلاً temperature=0.0–0.3 برای خروجی دقیق و کم‌خلاقیت؛ temperature=0.7–1.0 برای خروجی خلاق. برای تحلیل دقیق، از مقدار پایین استفاده کنید.
  6. اعتبارسنجی خروجی: همیشه خروجی مدل را با schema مقایسه کنید؛ اگر اختلاف بود، پرامپت را اصلاح کنید.
  7. استفاده از قالب‌های ازپیش‌ساخته (templates): برای کارهای تکراری تمپلیت بسازید و فقط input را تغییر دهید.

۷. محدودیت‌ها و هشدارها

  • مدل‌ها خطا می‌کنند؛ هر خروجی را بررسی انسانی کنید (خصوصاً وقتی تصمیم‌گیری مهم است).
  • JSON پرامپتینگ ساختار را بهتر می‌کند ولی تضمین‌کنندهٔ بی‌خطایی نیست.
  • وقتی دادهٔ ورودیتان شامل اطلاعات حساس یا محرمانه است، مراقب حریم خصوصی باشید.

بخش دوم: کاربردها، الگوها و ترفندهای حرفه‌ای در پرامپت‌نویسی با JSON

۱. الگوهای آماده (Templates) برای کارهای متداول

یکی از جذاب‌ترین مزیت‌های JSON پرامپتینگ این است که شما می‌توانید برای هر نوع کاری که مکرراً انجام می‌دهید، یک «قالب استاندارد» بسازید. در ادامه چند نمونه از این الگوها را می‌بینید.

الگوی ۱: خلاصه‌سازی متون

کاربرد: تبدیل یک متن طولانی به چکیده‌ای ساختاریافته با لحن دلخواه

{
  "meta": { "version": "1.0", "type": "summary" },
  "task": "خلاصه‌سازی متن به زبان فارسی",
  "input": { "text": "<متن خود را اینجا بگذارید>" },
  "parameters": {
    "language": "fa",
    "tone": "رسمی",
    "summary_length": "100-150 کلمه",
    "temperature": 0.3
  },
  "schema": {
    "title": "string",
    "summary": "string",
    "key_points": ["string"]
  },
  "constraints": [
    "از نقل قول مستقیم خودداری کن.",
    "سه نکته‌ی کلیدی را در بخش key_points فهرست کن."
  ]
}

 نکتهٔ کاربردی:
هر زمان خواستید طول یا سبک خلاصه را تغییر دهید، فقط بخش parameters را ویرایش کنید. مثلاً اگر برای ارائه‌ی شفاهی می‌خواهید، لحن را از “رسمی” به “محاوره‌ای” تغییر دهید.

الگوی ۲: تولید ایمیل حرفه‌ای

کاربرد: تبدیل متن خام یا دستور به یک ایمیل کامل با ساختار رسمی

{
  "task": "نوشتن ایمیل حرفه‌ای بر اساس دستور کاربر",
  "input": { "instruction": "از همکارم بابت همکاری در پروژه تشکر کنم و گزارش نهایی را پیوست کنم." },
  "parameters": {
    "language": "fa",
    "tone": "مودبانه و حرفه‌ای",
    "signature": "رضا حاتمی",
    "temperature": 0.4
  },
  "schema": {
    "subject": "string",
    "body": "string",
    "signature": "string"
  },
  "constraints": [
    "ایمیل نباید از ۱۵۰ کلمه بیشتر باشد.",
    "لحن باید رسمی اما صمیمی باشد."
  ]
}

خروجی مطلوب از مدل:

{
  "subject": "سپاس بابت همکاری در پروژه",
  "body": "با سلام و احترام، از همراهی و همکاری ارزشمند شما در اجرای پروژه سپاسگزارم. گزارش نهایی در پیوست این ایمیل ارسال شده است. امیدوارم در پروژه‌های آینده نیز افتخار همکاری داشته باشیم.",
  "signature": "با احترام،\nرضا حاتمی"
}

الگوی ۳: تولید جدول مقایسه‌ای

کاربرد: زمانی که می‌خواهید مدل، خروجی را به صورت جدول JSON ارائه دهد (برای تبدیل به اکسل یا نمودار)

{
  "task": "مقایسه سه مدل هوش مصنوعی متن‌ساز",
  "parameters": { "language": "fa", "output_format": "json_table" },
  "schema": {
    "models": [
      { "name": "string", "advantages": "string", "limitations": "string", "best_use_case": "string" }
    ]
  },
  "constraints": [
    "توضیحات هر بخش حداکثر ۳۰ کلمه باشد."
  ]
}



خروجی ممکن:

{
  "models": [
    { "name": "GPT-4", "advantages": "درک بالا و چندزبانه", "limitations": "هزینه و تاخیر پاسخ", "best_use_case": "تحلیل و تولید محتوای تخصصی" },
    { "name": "Claude", "advantages": "پاسخ‌های طبیعی‌تر", "limitations": "پشتیبانی محدود زبان فارسی", "best_use_case": "نوشتار ادبی و گفتگو" },
    { "name": "Gemini", "advantages": "یکپارچگی با جستجو", "limitations": "کیفیت ناپایدار خروجی", "best_use_case": "پرس‌وجوی سریع اطلاعات" }
  ]
}

الگوی ۴: استخراج داده‌های کلیدی از یک متن

کاربرد: زمانی که متنی طولانی دارید و می‌خواهید فقط عناصر مشخصی از آن را بیرون بکشید (مثل نام، تاریخ، مکان)

{
  "task": "استخراج اطلاعات کلیدی از متن خبری",
  "input": {
    "text": "شرکت اپل در تاریخ 18 اکتبر 2025 از سری جدید مک‌بوک‌های خود رونمایی کرد. این رویداد در شهر کوپرتینو برگزار شد و تمرکز اصلی آن بر تراشه‌ی M5 بود."
  },
  "schema": {
    "company": "string",
    "event_date": "string",
    "location": "string",
    "main_topic": "string"
  },
  "constraints": ["اگر موردی در متن نبود، 'نامشخص' بنویس."]
}

خروجی:

{
  "company": "اپل",
  "event_date": "18 اکتبر 2025",
  "location": "کوپرتینو",
  "main_topic": "تراشه M5"
}

۲. چگونه خروجی را ارزیابی و کنترل کنیم

حتی بهترین مدل‌ها گاهی خروجی‌هایی می‌سازند که ناقص یا مغایر با ساختار مورد انتظار است.
برای کنترل این مسئله چند روش ساده ولی مؤثر وجود دارد:

 روش اول: تعریف دقیق Schema

هرچه در schema جزئیات بیشتری بدهید (مثل نوع داده‌ها و شکل دقیق خروجی)، احتمال اشتباه کمتر می‌شود. مثلاً اگر می‌خواهید تاریخ همیشه در قالب خاصی بیاید:


"schema": {
  "company": "string",
  "event_date": "string (format: YYYY-MM-DD)",
  "location": "string",
  "main_topic": "string"
}

 روش دوم: ارزیابی خودکار توسط مدل

می‌توانید در همان JSON از مدل بخواهید خروجی خودش را بررسی کند:


"evaluation": {
  "criteria": [
    "آیا خلاصه شامل ۳ نکتهٔ اصلی است؟",
    "آیا طول خلاصه در محدودهٔ مشخص‌شده است؟"
  ],
  "output": "ارزیابی کوتاه در مورد کیفیت پاسخ را بنویس."
}

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

 روش سوم: اعتبارسنجی دستی با چک‌لیست

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

مورد بررسیبله/خیرتوضیح
تمام کلیدهای schema پر شده‌اند؟
طول متن مطابق پارامترهاست؟
خروجی با لحن مورد انتظار نوشته شده؟

۳. الگوهای پیشرفته‌تر و ترفندهای حرفه‌ای

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

 ترفند ۱: استفاده از “few-shot” و “one-shot” examples

در examples می‌توانید به مدل نمونه‌هایی از ورودی و خروجی واقعی نشان دهید.

  • one-shot: فقط یک مثال می‌گذارید.
  • few-shot: چند مثال مختلف قرار می‌دهید تا مدل الگو را بیاموزد.

هرچه مثال‌ها متنوع‌تر باشند، خروجی مدل دقیق‌تر و پایدارتر می‌شود.

 ترفند ۲: کنترل خلاقیت مدل با temperature

در JSON پارامتر temperature تعیین می‌کند مدل چقدر «خلاق» باشد.

  • مقدار پایین (۰ تا ۰.۳): خروجی دقیق و رسمی
  • مقدار میانی (۰.۴ تا ۰.۷): خروجی متعادل
  • مقدار بالا (۰.۸ تا ۱): خروجی خلاق، گاهی غیرمنتظره

مثلاً برای کارهای جدی مثل «خلاصه گزارش» از 0.2 استفاده کنید، ولی برای «ایده‌پردازی کمپین تبلیغاتی» شاید 0.8 بهتر باشد.

 ترفند ۳: کنترل ساختار خروجی با توضیح در schema

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


"schema": {
  "title": "string (key name must be in English)",
  "summary": "string (max 100 words)"
}

 ترفند ۴: پرامپت تو در تو (Nested Prompts)

می‌توانید یک JSON شامل چند پرامپت کوچک بسازید، مثلاً یکی برای تحلیل متن و دیگری برای تولید نتیجهٔ نهایی.


{
  "task": "تحلیل و خلاصهٔ متن در دو مرحله",
  "steps": [
    { "step": 1, "action": "تحلیل محتوای متن و استخراج مفاهیم کلیدی" },
    { "step": 2, "action": "تولید خلاصهٔ نهایی بر اساس مفاهیم استخراج‌شده" }
  ]
}

۴. کجا می‌توان از JSON پرامپتینگ استفاده کرد؟

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

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

۵. اشتباهات رایج در پرامپت‌نویسی با JSON

۱. استفاده از دستورهای طولانی و مبهم
هر دستور باید کوتاه و شفاف باشد. مثلاً به جای “لطفاً این متن را خلاصه کن ولی در خلاصه نکاتی از نظر روان‌شناسی اجتماعی هم در نظر بگیر و همچنین لحنت آکادمیک باشد” بهتر است بنویسید:

 “task”: “خلاصه‌سازی متن با تمرکز بر نکات روان‌شناسی اجتماعی”, “parameters”: {“tone”: “آکادمیک”}

۲. فراموش کردن تعریف schema
بدون schema، مدل آزادانه خروجی می‌سازد و گاهی ساختار آن غیرقابل‌استفاده می‌شود.

۳. بی‌توجهی به محدودیت‌ها (constraints)
اگر محدودیت‌ها مشخص نباشند، خروجی ممکن است طولانی، ناهماهنگ یا بی‌نظم شود.

۴. قرار دادن متن زیاد در یک فیلد
اگر ورودی خیلی بزرگ است، بهتر است آن را به چند بخش تقسیم و در input.part_1, input.part_2 ذخیره کنید.

۵. نداشتن examples
نمونه‌های خوب بیش از نیمی از کیفیت خروجی را تعیین می‌کنند.

بخش سوم: از یادگیری تا کاربرد حرفه‌ای و اتوماسیون

۱. پرامپت‌نویسی چندزبانه (Multilingual JSON Prompting)

در بسیاری از پروژه‌ها، ممکن است بخواهید مدل به چند زبان کار کند — مثلاً ورودی فارسی بگیرد ولی خلاصه را به انگلیسی بدهد، یا برعکس. در JSON پرامپتینگ این کار بسیار ساده است. کافی است زبان ورودی و خروجی را در بخش parameters مشخص کنید.

نمونه:


{
  "task": "خلاصه‌سازی متن فارسی و ترجمه‌ی خلاصه به انگلیسی",
  "input": {
    "text": "امروز جلسه‌ای درباره‌ی بهبود خدمات مشتری داشتیم و تصمیماتی برای افزایش سرعت پاسخ‌گویی گرفته شد."
  },
  "parameters": {
    "input_language": "fa",
    "output_language": "en",
    "summary_length": "50 words"
  },
  "schema": {
    "summary_fa": "string",
    "summary_en": "string"
  },
  "constraints": [
    "خلاصه‌ی فارسی باید طبیعی و رسمی باشد.",
    "ترجمه‌ی انگلیسی باید روان و بدون ترجمه‌ی لفظی باشد."
  ]
}

خروجی نمونه:


{
  "summary_fa": "در جلسه‌ی امروز تصمیماتی برای بهبود خدمات مشتری و افزایش سرعت پاسخ‌گویی اتخاذ شد.",
  "summary_en": "Today's meeting focused on improving customer service and speeding up response times."
}

 نکته حرفه‌ای:
اگر می‌خواهید پرامپت شما در چند کشور یا تیم چندزبانه استفاده شود، همیشه فیلدهای زبان را صریحاً تعریف کنید (input_language, output_language).

۲. اتصال JSON Prompting به ابزارهای روزمره (Automation)

یکی از قدرت‌های واقعی JSON پرامپتینگ زمانی ظاهر می‌شود که آن را با ابزارهایی مثل Google Sheets، Notion، Zapier، Make (Integromat) یا حتی Excel ترکیب کنید. در این حالت، شما می‌توانید فرآیندهای تکراری را بدون کدنویسی خودکار کنید.

مثال ۱: اتصال به Google Sheets

فرض کنید جدولی دارید با سه ستون:
| A (ورودی متن) | B (نوع خروجی) | C (پاسخ مدل) |

می‌توانید با افزونه‌هایی مثل GPT for Sheets & Docs یا Zapier تنظیم کنید که هر بار در ستون A متنی نوشته شد، پرامپتی از جنس JSON تولید شود و نتیجه در ستون C بنشیند.

پرامپت خودکار در هر سطر به شکل زیر ساخته می‌شود:


{
  "task": "خلاصه‌سازی متن در یک پاراگراف",
  "input": { "text": "{{A1}}" },
  "parameters": { "language": "fa", "summary_length": "70-100 words" },
  "schema": { "summary": "string" }
}

مدل خروجی را در ستون C برمی‌گرداند. در واقع، اینجا JSON prompting به شما اجازه می‌دهد دستور هوش مصنوعی را در قالبی ساخت‌یافته و خودکار در اکسل اجرا کنید.

مثال ۲: ترکیب با Notion (برای مستندسازی خودکار)

فرض کنید در Notion صفحه‌ای دارید با گزارش جلسات روزانه. می‌توانید با ابزارهایی مانند Make.com یا Zapier کاری کنید که:

  1. هر بار یک یادداشت جدید اضافه شد،
  2. متن آن به‌صورت خودکار وارد JSON prompt شود،
  3. خروجی مدل (مثلاً خلاصه و وظایف) به‌صورت ساختاریافته دوباره در صفحه‌ی همان جلسه درج شود.

پرامپت مورد استفاده:


{
  "task": "تولید خلاصه‌ی جلسه و فهرست اقدام‌ها از یادداشت Notion",
  "input": { "meeting_notes": "{{Notion.newPage.content}}" },
  "parameters": { "language": "fa", "output_format": "json" },
  "schema": {
    "summary": "string",
    "action_items": [
      { "task": "string", "owner": "string", "due_date": "string" }
    ]
  }
}

به این ترتیب شما سیستم گزارش‌دهی خودکار با هوش مصنوعی می‌سازید — بدون حتی یک خط کدنویسی!

۳. ساخت کتابخانه‌ی پرامپت‌های شخصی (Prompt Library)

وقتی با JSON prompting کار کنید، متوجه می‌شوید که بسیاری از وظایف تکراری‌اند: خلاصه‌سازی، بازنویسی، استخراج داده، تولید ایمیل، تحلیل متن و…. بهترین کار این است که برای خودتان یک کتابخانه‌ی شخصی از پرامپت‌ها بسازید.

ساختار پیشنهادی کتابخانه:


My_JSON_Prompts/
│
├── summary_prompt.json
├── email_writer.json
├── data_extractor.json
├── blog_outline.json
└── meeting_report.json

در هر فایل، ساختار زیر را نگه دارید:


{
  "meta": { "category": "communication", "author": "Reza Hatami", "version": "1.0" },
  "task": "...",
  "parameters": { ... },
  "schema": { ... },
  "examples": [ ... ]
}

نکته‌ی حرفه‌ای:
می‌توانید در فایل جداگانه‌ای (مثلاً index.json) توضیح دهید که هر پرامپت برای چه کاری است. بعدها حتی می‌توانید با ابزارهایی مثل Notion یا Google Drive این پرامپت‌ها را جست‌وجو و دسته‌بندی کنید.

۴. طراحی JSON Template چندمنظوره

اگر می‌خواهید با یک فایل JSON، چند نوع کار مختلف انجام دهید (مثلاً هم خلاصه‌سازی و هم تحلیل لحن)، از فیلد mode استفاده کنید:


{
  "task": "تحلیل متن",
  "mode": "summary_and_sentiment",
  "input": { "text": "محصول جدید عملکرد بسیار خوبی داشت ولی قیمت آن بالاست." },
  "parameters": { "language": "fa" },
  "schema": {
    "summary": "string",
    "sentiment": "positive | negative | neutral"
  }
}

خروجی:


{
  "summary": "محصول عملکرد خوبی دارد اما قیمت بالا موجب نارضایتی برخی مشتریان شده است.",
  "sentiment": "mixed"
}

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

۵. چک‌لیست نهایی برای تسلط بر پرامپت‌نویسی با JSON

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

گامکار مورد نیازتوضیح
۱تعریف دقیق هدف (Task)واضح بگویید مدل دقیقاً چه کند.
۲آماده‌سازی ورودی (Input)داده‌ی خام را تمیز و خلاصه وارد کنید.
۳تنظیم پارامترها (Parameters)زبان، طول، لحن، و خلاقیت را تعیین کنید.
۴تعیین ساختار خروجی (Schema)کلیدها، نوع داده و ترتیب بخش‌ها را مشخص کنید.
۵افزودن مثال‌ها (Examples)نمونه‌ی ورودی و خروجی واقعی اضافه کنید.
۶نوشتن محدودیت‌ها (Constraints)قوانین و خط قرمزها را بنویسید.
۷اجرای اولیهخروجی مدل را بررسی کنید.
۸بازبینی و اصلاحJSON را دقیق‌تر تنظیم کنید.
۹ذخیره در کتابخانهپرامپت نهایی را ذخیره و برای آینده استفاده کنید.
۱۰اتوماسیوندر ابزارهای روزمره (Sheets, Notion, Zapier) پیاده‌سازی کنید.

۶. آینده‌ی JSON Prompting

در نسل‌های جدید مدل‌های زبانی (مانند GPT-5، Claude 3، Gemini 2 و Llama 3)، پشتیبانی از JSON ساخت‌یافته در حال تبدیل شدن به یک استاندارد جدی است. به‌زودی بسیاری از ابزارهای اداری، پژوهشی و آموزشی، امکان تعامل مستقیم از طریق JSON prompt را خواهند داشت.

در آینده‌ای نه‌چندان دور، افراد غیرکدنویس می‌توانند با ساخت یک فایل JSON ساده:

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

نتیجه‌گیری نهایی

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

مزیت اصلی آن برای کاربران عمومی این است که:

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

یادگیری JSON prompting یعنی یادگیری زبان استانداردِ گفت‌وگو با هوش مصنوعی — زبانی که دقیق، شفاف و قابل‌فهم برای هر دو طرف است: هم انسان، هم ماشین.

 پیشنهاد تمرین برای شما:

  1. یکی از قالب‌های این مقاله را انتخاب کنید (مثلاً الگوی خلاصه‌سازی یا ایمیل).
  2. متن واقعی خودتان را جایگزین کنید.
  3. خروجی مدل را بررسی کرده و JSON را کمی تغییر دهید تا دقیق‌تر شود.
  4. آن را در یک فایل ذخیره و به کتابخانه‌ی شخصی خود اضافه کنید.

پس از چند بار تمرین، شما به‌صورت طبیعی در ذهن‌تان «ساختار JSON» را می‌سازید — بدون آنکه نیازی به کدنویسی داشته باشید.

رضا حاتمی
رضا حاتمی پژوهشگر یادگیری ماشین | متخصص هوش مصنوعی | مدیر محتوا
رضا حاتمی هستم؛ علاقه‌مند و شیفتهٔ هوش مصنوعی، کسی که از مطالعه و پژوهش در این زمینه خسته نمی‌شود.
اشتراک گذاری
ثبت نظر
اپلیکیشن ویرا