تعداد کاراکتر
گاردریل character_count تعداد کاراکترهای هر متن را بررسی میکند. فاصله، خط جدید و علائم نگارشی هم در شمارش قرار میگیرند. این نوع وقتی مناسب است که به سقف طول دقیقتری نسبت به تعداد کلمه یا جمله نیاز دارید.
شمارش بر اساس کاراکترهای Unicode انجام میشود؛ بنابراین حروف فارسی هم شمرده میشوند. این عدد همچنان با طول بایت یا تعداد توکن مدل یکی نیست.
چه زمانی استفاده کنید؟
از character_count برای این کارها استفاده کنید:
- اعمال سقف دقیقتر از تعداد کلمه.
- جلوگیری از ورودی یا پاسخ بسیار بزرگ.
- الزام وجود حداقل محتوای متنی.
- هماهنگکردن خروجی مدل با محدودیت فیلدهای محصول، مثل توضیح کوتاه یا عنوان.
اگر هدف شما فقط جلوگیری از پاسخ خالی است، خالی نبودن سادهتر است.
رفتار اجرایی
این نوع فقط از «اعتبارسنجی» (operation: "validate") پشتیبانی میکند. هر متن انتخابشده جداگانه باید داخل بازه باشد. اگر چند پیام بررسی شوند، مجموع کاراکترهای آنها ملاک نیست.
تنظیمات
| عنوان UI | مقدار API | توضیح |
|---|---|---|
| حداقل | min | حداقل تعداد کاراکتر مجاز. مقدار باید صفر یا بیشتر باشد. |
| حداکثر | max | حداکثر تعداد کاراکتر مجاز. مقدار باید صفر یا بیشتر باشد. |
باید دستکم یکی از «حداقل» یا «حداکثر» را وارد کنید. اگر هر دو را وارد میکنید، حداقل باید کوچکتر یا برابر حداکثر باشد.
نمونه تعریف
{
"slug": "response-character-limit",
"name": "Response character limit",
"type": "character_count",
"operation": "validate",
"enforcement": "audit",
"enabled": true,
"config": {
"min": 1,
"max": 4000
}
}
نمونه استفاده
برای کنترل پاسخ غیرجریانی مدل:
x-godarai-guardrails: {"llm_output_guardrails":["guardrails/response-character-limit"]}
با «عبور همراه با نشانهگذاری»، متن بیرون از بازه فقط با وضعیت flagged ثبت میشود و پاسخ متوقف نمیشود.
اگر محدودیت طول را تازه اضافه میکنید، ابتدا enforcement را audit بگذارید. این کار کمک میکند اثر سیاست را در گزارش رخدادها ببینید و بعد از اطمینان، آن را به enforce تغییر دهید.
بررسی نتیجه
اگر تعداد کاراکتر بیرون از بازه باشد، علت character count is outside allowed range ثبت میشود. اگر متن داخل بازه باشد، وضعیت passed است.
محدودیتها
- تعداد کاراکتر با طول بایت و تعداد توکن مدل یکی نیست.
- بعضی ایموجیها یا نشانههای ترکیبی ممکن است از چند کاراکتر Unicode ساخته شده باشند.
- گاردریل آماده برای این نوع وجود ندارد؛ باید گاردریل اختصاصی بسازید.
- گاردریل خروجی با پاسخ جریانی پشتیبانی نمیشود.
اگر خروجی باید دقیقاً در یک فیلد پایگاه داده یا پیامک جا شود، علاوه بر این گاردریل، همان محدودیت را در اپلیکیشن مصرفکننده هم بررسی کنید. تفاوت Unicode، بایت و محدودیت مقصد میتواند نتیجه نهایی را تغییر دهد.
پرسشهای پرتکرار
آیا فاصله و خط جدید هم شمرده میشود؟
بله. فاصله، خط جدید و علائم نگارشی بخشی از متن هستند و در شمارش میآیند.
برای کنترل هزینه بهتر است از تعداد کاراکتر استفاده کنم؟
نه بهتنهایی. تعداد کاراکتر نشانه تقریبی طول متن است، اما هزینه مدل بر اساس توکن و تنظیمات مسیر محاسبه میشود.
گام بعدی
- برای محدودیت کلمه، تعداد کلمه را ببینید.
- برای محدودیت جمله، تعداد جمله را بخوانید.