بررسی آگهی قبل از انتشار
در واقعیت، بعد از ثبت آگهی وضعیت pending میشود و موتور سهلایه تصمیم میگیرد:
قوانین فوری (کلمات نامناسب، تماس، لینک، متن کوتاه)، سپس مدل زبانی با پرامپت moderation،
و در نهایت آستانه تأیید/رد. دستههای پرریسک مثل خودرو و املاک هرگز خودکار تأیید نمیشوند.
- ۱فرم را مثل ثبت آگهی پر کنید و «انتشار و بررسی» را بزنید.
- ۲لایه قوانین سیگنالها را استخراج میکند (اسپم، تماس، تلاش کم).
- ۳اگر رد قطعی نباشد، LLM تصمیم approve / reject / escalate میدهد.
- ۴خروجی دقیقاً مثل کارت ادمین است؛ هیچ ردی در دیتابیس نوشته نمیشود.
کد مهم: ادغام قوانین + LLM + آستانه
function ai_mod_merge_results(...) {
if (rule.reject && confidence >= auto_reject) return reject;
if (llm.reject && high_confidence) return reject;
if (category in never_approve) return escalate;
if (llm.approve && safe_category && conf >= 0.93) return approve;
return escalate;
}
خروجی JSON لایه مدل (type=moderation)
{
"type": "moderation",
"decision": "approve|reject|escalate",
"confidence": 0.0,
"unsafe_flags": ["spam","contact_info"],
"reason_codes": ["R004","R010"],
"persian_note": "توضیح فارسی برای کاربر و ادمین"
}
فرم انتشار آزمایشی
بدون ذخیرهتخمین ارزش کالا هنگام ثبت
همان جریانی که در ثبت آگهی بعد از تکمیل فرم اجرا میشود: مدل با mode=pricing محدوده تومان، اطمینان ۰ تا ۱ و دلیل فارسی برمیگرداند. اگر مدل در دسترس نباشد، fallback قاعدهمحور همان قالب را پر میکند.
- ۱عنوان، توضیح، دسته و وضعیت خوانده میشود.
- ۲در پروداکشن آگهیهای مشابه دسته هم به کانتکست اضافه میشود؛ در دمو این بخش خالی است تا دیتابیس خوانده نشود.
- ۳خروجی به نزدیکترین ۱۰۰ هزار تومان گرد و به صورت محدوده نمایش داده میشود.
خروجی JSON ارزشگذاری
{
"type": "pricing",
"value_range": { "min": 10000000, "max": 14000000 },
"confidence": 0.78,
"reason": "توضیح فارسی بر اساس مشخصات کالا"
}
ارزشگذاری هوشمند
بدون ذخیرهپیشنهاد معاوضه با چهار ستون امتیاز
تطبیق تولید روی آگهیهای واقعی کاربر اجرا میشود. اینجا آگهی شما با چند کالای نمونه سنجیده میشود تا همان امتیازدهی دیده شود: همخوانی نیاز (~۳۴٪)، نزدیکی ارزش (~۲۴٪)، دسته (~۲۲٪)، احتمال موفقیت (~۲۰٪).
خروجی JSON تطبیق
{
"type": "matching",
"matches": [{
"listing_id": 9102,
"score": 81,
"trade_type": "direct",
"reason": "همخوانی نیاز + نزدیکی ارزش"
}]
}
آگهی من در برابر کاندیداهای نمونه
کاندیدای ساختگیامتیاز مؤلفهای معاوضه اطراف شما
مدل فقط سازگاری معاوضه، ارزش، دسته، مکان و اطمینان را میدهد. نمره نهایی را بکاند حساب میکند: حدود ۸۲٪ سازگاری معاوضه + ۱۸٪ مکان. مدل حق ندارد score نهایی بسازد.
کد نمره نهایی بکاند
final_score = round( swap_compatibility * 0.82 + location_score * 0.18 );
خروجی JSON پیشنهاد نزدیک
{
"type": "swap_suggestions",
"matches": [{
"listing_id": 9101,
"swap_compatibility": 84,
"value_compatibility": 76,
"category_compatibility": 90,
"location_score": 70,
"confidence": 80,
"reasons": ["نیاز دوطرفه"]
}]
}
پیشنهاد اطراف (نمونه)
بدون geo واقعینیاز را به زبان ساده بنویسید
مدل mode=need_search متن را به کلیدواژه، دسته، شهر و بازه قیمت تبدیل میکند. در سایت واقعی بعد از آن روی آگهیهای فعال کوئری زده میشود. در آزمایشگاه همان فیلترها روی چند آگهی نمونه اعمال میشود تا چیزی ذخیره یا از دیتابیس خوانده نشود.
خروجی استخراج نیت جستجو
{
"type": "need_search",
"keywords": ["لپتاپ", "گیمینگ"],
"category_slug": "electronics",
"city_hint": "تهران",
"price_max": 30000000,
"summary": "لپتاپ گیمینگ در تهران"
}
جستجو بر اساس نیازمندی
نتایج نمونهراهنمای ثبت، قوانین و تصمیمگیری
چت پروداکشن با همان system prompt موتور سواَپین کار میکند و فقط JSON نوع chat برمیگرداند. این باکس برای مهمان هم باز است و تاریخچه را فقط در مرورگر نگه میدارد.
قرارداد پاسخ چت
{
"type": "chat",
"message": "پاسخ فارسی دستیار"
}