پرسش‌ها (پریمیتیوها) › مستندات Jev

پرسش‌ها (پریمیتیوها)

سه نوع پرسش TypeSafe، پاسخ‌های تایپ‌شده‌ی آن‌ها، نحوه‌ی انتخاب بینشان و پرسیدن چند پرسش با هم.

آخرین به‌روزرسانی: مدل: jev-1.13.0 منبع بازبینی‌شده در منبع انگلیسی

پریمیتیوهای TypeSafe بلوک‌های کوچک و تایپ‌شده‌ای‌اند که در کد ترکیبشان می‌کنید. به‌صورت جفت می‌آیند: یک پرسش یک قضاوت را برای مدل درباره‌ی state تعریف می‌کند و پاسخ آن مقدار تایپ‌شده‌ای است که برمی‌گردد.

نوعبه چه پاسخ می‌دهدخروجی
Choiceکدام‌یک از این گزینه‌ها؟choice، probabilities، confidence
Scoreکدام سطح؟score، legend، probabilities، confidence
Noulآیا این درست است؟noul (۰ تا ۱)

برای هر پرسش یک قضاوت لحظه‌ای بخواهید

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

تعریف یک پرسش

هر پرسش یک شناسه (ID)، یک type و instructions دارد. Choice و Score همچنین criteria می‌گیرند. در Noul، criteria اختیاری است و معنای بله و خیر را روشن می‌کند.

IDstring

کلیدی که خودتان انتخاب می‌کنید، مثل refund_requested. پاسخ را در response مشخص می‌کند.

type"choice" | "score" | "noul"الزامی

نوع پرسش.

instructionsstring | object | arrayالزامی

پرسشی که درباره‌ی state می‌پرسید؛ منطق ارزیابی این‌جا قرار می‌گیرد. آن را به‌صورت یک پرسش روشن و مشخص یا گزاره‌ای برای قضاوت بنویسید.

criteriamap | array | object

پاسخ‌های ممکن: نگاشتی از گزینه‌ها برای Choice، فهرست مرتبی از سطوح برای Score و توصیف اختیاری بله/خیر برای Noul.

شناسه‌های پرسش برای کد شما هستند و به مدل فرستاده نمی‌شوند. پرسش کامل را در instructions بنویسید، حتی اگر شناسه به‌نظر گویا باشد.

انتخاب نوع پرسش

  • Choice وقتی مناسب است که پاسخ یکی از مجموعه‌ای شناخته‌شده از گزینه‌ها بدون ترتیب باشد: مسیریابی تیکت به یک بخش، طبقه‌بندی نوع سند، تشخیص زبان برنامه‌نویسی. فهرست کامل گزینه‌ها را بدهید و وقتی ممکن است فهرست همه‌ی ورودی‌ها را پوشش ندهد، گزینه‌ی other یا none of the above اضافه کنید.
  • Score وقتی مناسب است که پاسخ روی یک طیف قرار دارد و می‌توانید معنای هر نقطه‌ی آن را توصیف کنید: شدت باگ، ناراحتی مشتری، سطح مهارت.
  • Noul برای یک پرسش بله/خیر تمیز که خودِ احتمال سیگنال مفیدی است: آیا پیام اطلاعات شخصی دارد، آیا مشتری بازپرداخت می‌خواهد، آیا رزومه به سیستم‌های توزیع‌شده اشاره می‌کند.

برای قضاوت بله/خیر از Noul و برای سنجش یک موقعیت روی طیف از Score استفاده کنید. «آیا این نامزد در پایتون قوی است؟» به تعریف روشنی از «قوی» نیاز دارد. مقدار Noul برابر ۰٫۵ یعنی مدل به بله و خیر احتمال برابر می‌دهد؛ به معنای «مهارت متوسط» نیست.

برای سنجش سطح مهارت از Score با سطوح تعریف‌شده (بدون تجربه، آشنایی مختصر، استفاده‌ی روزمره، تخصص عمیق) استفاده کنید.

اگر دو نوع مناسب به‌نظر می‌رسند، آن را ترجیح دهید که کدتان مستقیم‌تر بر اساسش عمل می‌کند: Choice بین refund، rebook و information مستقیماً به سه مسیر کد نگاشت می‌شود؛ Score ناراحتی به یک آستانه؛ و Noul به یک if.

چه چیزی برمی‌گردد

نوعفیلدهای پاسخچگونه بخوانیم
Choicechoice، probabilities، confidencechoice گزینه‌ی انتخاب‌شده است؛ probabilities توزیع روی همه‌ی گزینه‌ها؛ confidence خلاصه‌ی میزان تیزی آن توزیع.
Scorescore، legend، probabilities، confidencescore موقعیتی روی سطوح شماست و می‌تواند بین دو سطح باشد. legend سطوح را با شماره تکرار می‌کند.
Noulnoulاحتمال «بله» بودن پاسخ. نزدیک ۱ یعنی بله‌ی قوی، نزدیک ۰ خیر قوی، نزدیک ۰٫۵ نامطمئن. Noul فیلد confidence جداگانه ندارد.

دو ویژگی این پاسخ‌ها را ترکیب‌پذیر می‌کند:

  • هر پاسخ محدود به گزینه‌هایی است که داده‌اید. مدل هرگز مقداری خارج از آن‌ها برنمی‌گرداند.
  • هر پاسخ مستقل است. پاسخ یک پرسش کانتکست پنهانی برای دیگری نیست؛ می‌توانید پرسش اضافه یا حذف کنید بی‌آنکه نتایج بقیه تغییر کند.

ارجاع به فیلدهای مشخص

وقتی پرسش درباره‌ی بخشی از یک state ساختاریافته است، آن بخش را در instructions با مسیر نقطه‌ای و اندیس، همراه با بک‌تیک‌ها، نام ببرید:

چند پرسش را با هم بپرسید

همه‌ی پرسش‌هایی را که از یک state استفاده می‌کنند در یک درخواست بفرستید و انواع را آزادانه ترکیب کنید. افزودن پرسش تقریباً زمان پاسخ را تغییر نمی‌دهد و فقط هزینه‌ی توکن‌های همان پرسش‌ها را دارد. پرسیدن پرسشی که شاید لازم نداشته باشید تقریباً رایگان است.

ایجنت‌های کدنویسی بیشتر از انسان‌ها در دام «یک پرسش در هر فراخوانی» می‌افتند. اسکیل ایجنت TypeSafe به ایجنت می‌گوید در هر فراخوانی پرسش‌های زیادی بگذارد.

وقتی یک پرسش به دیگری وابسته است

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

گام‌های بعدی

برای دیدن اینکه این پریمیتیوها چگونه به معماری‌های کامل سیستم ترکیب می‌شوند، به الگوها بروید.