
پرامپتنویسی به سبک JSON (JSON Prompting)
پرامپتنویسی به سبک JSON (JSON Prompting) یک تکنیک پیشرفته و استاندارد برای تعامل با مدلهای هوش مصنوعی است که به جای جملات محاورهای، از ساختار دادهای و کلید-مقدار (Key-Value) برای ارسال دستورات استفاده میکند. این روش باعث میشود خروجی مدل دقیقتر، قابلپیشبینیتر و ماشینخوان باشد.
در ادامه، آموزش کامل نوشتن یک پرامپت JSON استاندارد را برای شما آماده کردهام.
۱. چرا پرامپت JSON؟
وقتی شما به صورت معمولی مینویسید: “لطفاً این متن را خلاصه کن و نکات کلیدی را بگو“, مدل ممکن است هر بار فرمت متفاوتی (لیست، پاراگراف، بولتپوینت) به شما بدهد.
اما در JSON Prompt، شما یک “قرارداد” با مدل میبندید که دقیقا چه ورودیای دارید و چه خروجیای میخواهید.
۲. ساختار استاندارد یک پرامپت JSON
یک پرامپت JSON حرفهای معمولاً شامل کلیدهای زیر است:
|
کلید (Key) |
توضیحات |
|
“role” |
نقش مدل (مثلاً: “مترجم”، “تحلیلگر داده”). |
|
“task” |
دستور اصلی و کاری که باید انجام شود. |
|
“context” |
اطلاعات پسزمینه یا دادههای ورودی که مدل باید روی آنها کار کند. |
|
“constraints” |
محدودیتها و قوانین (مثلاً: “تعداد کلمات”، “لحن”، “عدم استفاده از توضیحات اضافی”). |
|
“output_format” |
(مهمترین بخش) ساختار دقیق خروجی که انتظار دارید (Schema). |
|
“examples” |
نمونههایی از ورودی و خروجی مطلوب (Few-shot learning). |
۳. الگوی عملی (Template)
این یک قالب آماده است که میتوانید برای هر کاری از آن استفاده کنید:
{
“role”: “Expert [نقش مدل]”,
“task”: “[دستور اصلی]”,
“input_data”: “[متن یا داده ورودی]”,
“constraints”: {
“tone”: “[لحن: رسمی/دوستانه]”,
“language”: “[زبان خروجی]”,
“format”: “JSON object only, no markdown code blocks”
},
“output_schema”: {
“field_1”: “Description of field 1”,
“field_2”: “Description of field 2”
}
}
۴. مثالهای کاربردی
مثال اول: استخراج اطلاعات از متن (Data Extraction)
فرض کنید میخواهید از نظرات مشتریان، نام محصول، احساس (Sentiment) و خلاصه نظر را استخراج کنید.
پرامپت شما:
{
“role”: “Data Analyst”,
“task”: “Analyze the following customer review and extract key information.”,
“input_text”: “من هفته پیش گوشی آیفون ۱۳ خریدم. دوربینش عالیه ولی باتریش زود تموم میشه. در کل راضیم.”,
“constraints”: {
“response_format”: “JSON only”,
“sentiment_options”: [“Positive”, “Negative”, “Neutral”],
“language”: “Persian”
},
“output_schema”: {
“product_name”: “Name of the product mentioned”,
“sentiment”: “Overall sentiment from options”,
“pros”: [“List of positive points”],
“cons”: [“List of negative points”],
“summary”: “One sentence summary”
}
}
خروجی مدل (تضمین شده):
{
“product_name”: “آیفون ۱۳”,
“sentiment”: “Positive”,
“pros”: [“دوربین عالی”],
“cons”: [“عمر کم باتری”],
“summary”: “مشتری از دوربین راضی است اما از باتری شکایت دارد، ولی در کل تجربه مثبتی داشته است.”
}
مثال دوم: تولید محتوا (Content Generation)
برای تولید یک پست لینکدین با ساختار مشخص.
پرامپت شما:
{
“role”: “Social Media Manager”,
“task”: “Create a LinkedIn post about ‘AI in Marketing’.”,
“constraints”: {
“tone”: “Professional and engaging”,
“max_length”: “150 words”,
“include_hashtags”: true
},
“output_structure”: {
“hook”: “A catchy opening sentence”,
“body”: “The main content paragraphs”,
“call_to_action”: “A question to engage the audience”,
“hashtags”: [“List of 3-5 relevant hashtags”]
}
}
۵. نکات طلایی برای حرفهای شدن
- تفکیک دستور از داده: همیشه دستورات (task) را از دادههای ورودی (input) جدا کنید. این کار جلوی گیج شدن مدل را میگیرد (مخصوصاً در متون طولانی).
- تعریف دقیق Schema: در بخش output_schema یا output_format، نه تنها کلیدها را بنویسید، بلکه جلوی آنها توضیح دهید چه نوع دادهای میخواهید (مثلاً: “age”: “Integer only”).
- مدیریت کد بلاکها: مدلها معمولاً خروجی JSON را داخل Markdown (json … ) میگذارند. اگر میخواهید مستقیماً JSON خام بگیرید، در بخش constraints قید کنید: “Return raw JSON without markdown formatting”.
- تکنیک تودرتو (Nested): اگر تسک پیچیده است، آن را به مراحل کوچکتر تقسیم کنید:
“steps”: {
“step_1”: “Summarize the text”,
“step_2”: “Translate summary to English”,
“step_3”: “Extract keywords from translation”
}
جمعبندی
استفاده از JSON Prompt مثل صحبت کردن با زبان مادری کامپیوتر است. این روش ابهام را از بین میبرد و اگر قصد دارید هوش مصنوعی را به برنامههای دیگر وصل کنید (اتوماسیون)، تنها روش قابل اتکا است.
- سطح / ناشرمقاله تخصصی
- بازدید119