خروجی JSON از هوش مصنوعی؛ آموزش ساختارمند با پرامپت آماده

برای اتصال مدل به ابزارهای دیگر، خروجی باید ساختارمند باشد؛ آموزش گرفتن JSON تمیز از ChatGPT و Claude با پرامپت آماده و جدول خطاهای رایج.
وقتی خروجی مدل قرار است وارد صفحهگسترده، دیتابیس یا یک اسکریپت شود، «متن زیبا» دیگر کافی نیست؛ باید خروجی JSON باشد. تفاوت میان یک پرامپت معمولی و یک پرامپت ساختارمند، تفاوت میان دستینوشته و فرم استاندارد است: دومی را ماشین میتواند بخواند. این آموزش، قواعد گرفتن JSON پایدار از مدلها را از دید کاربر فارسیزبان مرور میکند — بدون نیاز به دانش برنامهنویسی عمیق.
چرا پرامپت بدون اسکیما کافی نیست؟
اگر فقط بنویسید «به JSON تبدیل کن»، مدل ساختار را حدس میزند: یک بار کلیدها را فارسی میسازد، یک بار انگلیسی؛ یک بار آرایه میدهد، یک بار شیء. برای پردازش بعدی، این تنوع یعنی خطا. راهحل، دادن اسکیما است: نمونهٔ دقیق ساختار با نام کلیدها، نوع مقادیر و توضیح هر فیلد. برای درک بهتر محیط، پرامپت چیست را از دانشنامه بخوانید.
پرامپت آمادهٔ ۱ — استخراج مشخصات با اسکیما
از متن زیر مشخصات را استخراج کن و «فقط» یک JSON معتبر برگردان؛
هیچ توضیح، هیچ متن اضافه و بدون بلوک کد. مقادیر گمشده = null.
اسکیما:
{
"نام_کالا": "رشته",
"قیمت_تومان": "عدد صحیح یا null",
"دسته": "یکی از: دیجیتال، لباس، خوراکی، نامشخص",
"ویژگیها": ["حداکثر ۳ رشته"],
"لحن_نظر": "مثبت، منفی، خنثی"
}
متن: «کفش رانینگ مدل ایکس، حدود ۲/۴ میلیون تومان، خیلی راحته اما دوامش هنوز معلوم نیست.»
پرامپت آمادهٔ ۲ — خلاصهٔ جلسه به JSON
صورتجلسهٔ زیر را به این JSON تبدیل کن؛ آرایهٔ تصمیمها خالی نشود،
اگر تصمیمی نیست بنویس [] و تاریخها را به میلادی نگه دار:
{
"عنوان": "رشته",
"حاضران": ["رشته"],
"اقدامها": [{"کار": "رشته", "مسئول": "رشته یا null", "مهلت": "تاریخ یا null"}],
"بحثهای_باز": ["رشته"]
}
متن جلسه: [متن شما]
قواعد پایداری خروجی JSON
| قانون | چرا | مثال |
|---|---|---|
| اسکیما با مثال مقدار | مدل از «عدد» بهتر میفهمد | «قیمت: عدد صحیح مثل ۲۴۰۰۰۰» |
| ممنوعکردن متن اضافه | حتی «البته:» خروجی را خراب میکند | «فقط JSON خام؛ بدون سلام و تشکر» |
| کلیدهای ثابت | یکساننویسی کلیدها، پردازش را ممکن میکند | همیشه «قیمت_تومان» نه «Price» |
| مقدار گمشده = null | جلوی حذف ردیف را میگیرد | «اگر نبود null بگذار» |
| اعتبارسنجی بعدی | خطای مدل را قبل از استفاده بگیرید | یک ابزار JSON Validator |
ابزارها چه تفاوتی دارند؟
ChatGPT در تابع JSON Mode و فرمتهای ساختاری، پایدارترین خروجی را دارد؛ Claude با گذاشتن اسکیما در تگ، تمیز و بدون حاشیه جواب میدهد و برای متنهای چندزبانه خوب است؛ Gemini هم JSON میدهد و در ترکیب با ابزارهای گوگل، مسیر کوتاهتری برای ورود به صفحهگسترده دارد. برای مقایسهٔ کلی این سه، راهنمای کامل ChatGPT و مقایسه ابزارها را ببینید. نکتهٔ مهم: هر سه در زبان فارسی، کلیدهای فارسی را میپذیرند؛ برای سیستمهای بینالمللی کلید انگلیسی + مقدار فارسی بهتر است.
خطاهای رایج و اصلاحشان
۱. متن اضافه دور JSON: جملهٔ «فقط JSON خام، هیچ کلمهٔ دیگری» را اضافه کنید. ۲. نوسان کلیدها: کلیدها را در اسکیما با زیرخط جدا کنید و بگویید «کلیدها باید دقیقاً همین باشند». ۳. آرایه بهجای شیء: در اسکیما نوع را صریح بنویسید و یک مثال پرشده بدهید. ۴. اعداد فارسی در فیلد عددی: بگویید «اعداد با ارقام لاتین» — این نکتهٔ مهمی برای پردازش بعدی است.
جمعبندی
JSON، پل میان مدل و بقیهٔ ابزارهای شماست. الگوی کار همیشه یکی است: اسکیما + مثال + ممنوعیت متن اضافی + اعتبارسنجی. یک بار قالب درست بسازید و در کتابخانهٔ پرامپت شخصی نگه دارید؛ از آن به بعد، هر دادهای که به دستتان رسید، چند دقیقهای ساختارمند میشود.
مثال عملی: ورودی و خروجی واقعی قالب ۱
برای متن «کفش رانینگ مدل ایکس، حدود ۲/۴ میلیون تومان، خیلی راحته اما دوامش هنوز معلوم نیست»، خروجی سالمِ قالب استخراج این است: {"نام_کالا": "کفش رانینگ مدل ایکس"، "قیمت_تومان": 2400000، "دسته": "لباس"، "ویژگیها": ["راحت"]، "لحن_نظر": "مثبت"}. سه نکته در همین خروجی پنهان است: قیمت از «حدود ۲/۴ میلیون» به عدد خام تبدیل شده — این تبدیل باید در پرامپت صریح گفته شود («قیمت را به تومان و عدد خام تبدیل کن»)؛ «دوامش معلوم نیست» به فهرست ویژگیها نرفته چون ویژگی مثبت نیست؛ و «لحن_نظر» بهتنهایی «مثبت» گرفته تا لحن کلی از جزئیات جدا بماند. اگر مدلی این قواعد را رعایت نکرد، جای اصلاح همان JSON است: همان خروجی را برگردانید با جملهٔ «قیمت را عدد خام کن؛ دسته را فقط از چهار مقدار مجاز انتخاب کن». این حلقهٔ اصلاح معمولاً یک دور کافی است و از بازنویسی کل پرامپت ارزانتر است.
پرسشهای پرتکرار
کلیدها فارسی باشند یا انگلیسی؟
اگر مصرفکننده فارسی است (اکسل، گزارش داخلی) فارسی بهتر است؛ اگر قرار است به کد یا ابزار خارجی برود، کلید انگلیسی و مقدار فارسی.
اگر مدل JSON خراب داد چه کنم؟
همان پرامپت را با جملهٔ «این JSON نامعتبر است، خطای آن را پیدا و اصلاح کن» دوباره بفرستید؛ معمولاً بار دوم درست میشود.
برای دادههای حساس میتوانم JSON بگیرم؟
بله؛ فقط مطمئن شوید طبق سیاست سازمانتان، دادهٔ حساس به سرویس ابری نرود — برای این سناریو مدلهای محلی مطرح میشوند.
میتوانم از مدل بخواهم خودش اسکیما پیشنهاد بدهد؟
بله و حتی بهتر است؛ در اولین کار، چند نمونهٔ متنتان را بدهید و بخواهید «فیلدهای تکراری و نوع هرکدام» را پیشنهاد کند. شما تأیید یا اصلاح میکنید و از آن به بعد اسکیما مال خودتان است — دقیقتر از هر قالب آماده.
این مطلب برایتان مفید بود؟
با پسندیدن، به ما کمک میکنید مطالب بهتری منتشر کنیم.



