سنجه، مدل‌های تصمیم

تصمیم‌های بسته روی متن فارسی با سنجه: مدل‌ها، سه نوع پرسش، نمونه و محدودیت‌ها

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

POST https://api.dana.expert/v1/decide

مدل‌ها

مدلمقدار modelاندازهدقتمناسب برای
قناری (پیش‌فرض)ghanariحدود ۰٫۸ میلیارد پارامتر۶۵٪حجم بالا و جواب سریع، مثل بررسی ورودی و مسیریابی درخواست
کبوترkabootarحدود ۴ میلیارد پارامتر۸۰٪تصمیم‌هایی که دقت در آن‌ها از سرعت مهم‌تر است
شاهین-حدود ۹ میلیارد پارامتر-به‌زودی

دقت میانگین روی ۱٬۲۰۰ پرسش فارسی از ۱۲ مجموعه‌داده است که در ساخت مدل‌ها نبوده‌اند (سنجش داخلی دانا، مهر ۱۴۰۵). روی دادهٔ شما ممکن است بیشتر یا کمتر باشد.

کدام را انتخاب کنم

  • با قناری شروع کنید. پیش‌فرض است و زودتر جواب می‌دهد.
  • اگر جواب اشتباه برایتان گران است یا پرسش‌ها ظریف‌اند، "model": "kabootar" بفرستید.
  • هر دو را روی چند ده نمونه از دادهٔ خودتان امتحان کنید و آستانهٔ confidence را از روی همان بگذارید.

نمونه

curl https://api.dana.expert/v1/decide \
  -H "Authorization: Bearer $DANA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "state": "سه روز است سفارشم را پرداخت کرده‌ام ولی هنوز ارسال نشده.",
    "questions": {
      "dept": {"type": "choice", "instructions": "مربوط به کدام بخش است؟", "criteria": ["مالی", "فنی", "ارسال کالا"]},
      "complaint": {"type": "noul", "instructions": "آیا این پیام شکایت است؟"},
      "anger": {"type": "score", "instructions": "نویسنده چقدر عصبانی است؟", "criteria": ["آرام", "کمی ناراحت", "عصبانی"]}
    }
  }'

پاسخ:

{
  "model": "ghanari",
  "model_version": "ghanari-ir-v0.1",
  "answers": {
    "dept": {"type": "choice", "choice": "ارسال کالا", "probabilities": {"مالی": 0.0181, "فنی": 0.0203, "ارسال کالا": 0.9616}, "confidence": 0.8278},
    "complaint": {"type": "noul", "noul": 0.9521, "confidence": 0.9521},
    "anger": {"type": "score", "score": 1.7202, "legend": {"0": "آرام", "1": "کمی ناراحت", "2": "عصبانی"}, "probabilities": {"0": 0.0283, "1": 0.2232, "2": 0.7485}, "confidence": 0.406}
  },
  "usage": {"input_tokens": 218, "output_tokens": 0},
  "latency_ms": 78.2
}

بدنهٔ درخواست

فیلدتوضیح
stateمتنی که دربارهٔ آن تصمیم گرفته می‌شود؛ رشته یا هر JSON، تا ۲۰٬۰۰۰ کاراکتر
questionsپرسش‌ها با نامی که خودتان می‌گذارید، از ۱ تا ۳۲ پرسش در هر درخواست
modelاختیاری: ghanari (قناری، پیش‌فرض و سریع‌تر) یا kabootar (کبوتر، دقیق‌تر). نسخهٔ مدلی که جواب داده در فیلد model_version پاسخ می‌آید

سه نوع پرسش

typecriteriaجواب
choiceفهرست گزینه‌ها، یا شیئی از گزینه به توضیح آنchoice گزینهٔ برنده و probabilities احتمال هر گزینه
noulندارد (بله یا خیر)noul احتمال «بله»
scoreفهرست مرتب پله‌ها، از کم به زیادscore عددی از ۰ تا شمارهٔ آخرین پله

instructions متن پرسش است. کوتاه و روشن بنویسید. confidence اطمینان مدل به جوابش است، نه تضمین درستی آن.

usage در پاسخ، توکن‌هایی است که خود مدل خوانده است. هزینه با شمارش دانا حساب می‌شود (بخش بعد).

محدودیت‌ها و هزینه

  • state رشته یا هر دادهٔ JSON است، تا ۲۰٬۰۰۰ کاراکتر.
  • هر درخواست ۱ تا ۳۲ پرسش دارد.
  • فقط پرسش بسته: سنجه متن نمی‌نویسد و جواب آزاد نمی‌دهد. برای متن فارسی ساخته شده است.
  • توکن‌های state و پرسش‌ها ورودی حساب می‌شوند و هر پرسش یک توکن خروجی. هر یک میلیون توکن ۱۰٬۰۰۰ تومان است (قیمت و توکن).
  • سقف درخواست همان سقف کلید است (محدودیت‌ها).
  • متن شما ذخیره نمی‌شود؛ فقط تعداد توکن‌ها ثبت می‌شود.

خطاها

کدیعنی
400state یا questions نیست، یا پرسشی درست تعریف نشده؛ پیام خطا می‌گوید کدام
401کلید نیست یا شناخته نشد
429سقف درخواست یا اعتبار تمام شده
503با code برابر model_unavailable: سنجه همین حالا در دسترس نیست؛ چند دقیقه بعد دوباره بفرستید. با coming_soon: سرویس موقتا خاموش است

شرح کامل هر کد در خطاها و قرارداد کامل مسیر در مرجع API است.