رفتن به محتوای اصلی
بازگشت به وبلاگ

پرامپت و کیفیت پاسخ

خروجی مدل: null، فیلد حذف‌شده و متن خالی چه تفاوتی دارند؟

برای null، فیلد غایب، رشته خالی و فاصله در خروجی مدل قرارداد معنایی بنویسید؛ جدول تصمیم و نمونه schema جلوی تغییر ناخواسته داده را می‌گیرد.

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

اول معنی را تعیین کنیم، بعد schema را

در قرارداد آموزشی زیر، «فیلد غایب» یعنی تولیدکننده درباره آن چیزی گزارش نکرده است؛ null یعنی مقدار بررسی شده اما معلوم نیست؛ متن خالی ورودی قابل قبول نیست. این معنی‌ها انتخاب طراحی همین مثال‌اند، نه رفتار پیش‌فرض همه APIها. اگر سرویس مقصد null را دستور پاک‌کردن می‌داند، نباید این قرارداد را مستقیم به آن فرستاد. یک لایه تبدیل باید وضعیت «نامعلوم» را بدون تغییر رکورد به صف بررسی بفرستد.

جدول تصمیم با پنج ورودی

خروجی آموزشیتفسیر در این قرارداداقدام مصرف‌کننده
{}فیلد گزارش نشدهورودی ناقص؛ رکورد قبلی ثابت بماند
{"answer":null}بررسی شده، پاسخ نامعلومارجاع برای بررسی؛ پاسخ جعلی ساخته نشود
{"answer":""}رشته خالیرد اعتبارسنجی متن
رشته شامل فقط فاصلهاز نظر کاربرد، بدون پاسخپس از بررسی فاصله‌ها رد شود
رشته «نامشخص»یک متن عادی، نه nullطبق قرارداد معنا بررسی شود

schema کدام بخش را کنترل می‌کند؟

برای نمونه، این schema حضور answer را لازم می‌کند و null یا رشته غیرخالی را می‌پذیرد. ویژگی minLength فقط محدودیت رشته است؛ قرار نیست null را به رشته تبدیل کند.

{"type":"object","properties":{"answer":{"type":["string","null"],"minLength":1}},"required":["answer"],"additionalProperties":false}

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

نمونه آزمون مصرف‌کننده

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

کاربرگ و ادامه کار

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

منابع اصلی

JSON Schema: null، ویژگی‌های object و required و محدودیت طول رشته؛ خوانده‌شده در ۱ نوامبر ۲۰۲۶، تاریخ انتشار مشخص نشده است.

برای این نیاز، کدام خدمت مناسب‌تر است؟

تماس و منشی، چت سایت و تحلیل مکالمه سه مسیر متفاوت‌اند. ابتدا خدمت متناسب نیازتان را انتخاب کنید.

انتخاب میان سه خدمتراهنمای شروع با تیم اپرا

برآورد هزینه