مفاهیم › مستندات Jev

چگونه با TypeSafe بسازیم

نرم‌افزار مبتنی بر هوش مصنوعی را طوری طراحی کنید که کنترل در دست کد بماند و System One فقط تصمیم‌های محدود و ساختاریافته بگیرد.

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

System One مدل TypeSafe برای ساختن نرم‌افزار مبتنی بر هوش مصنوعی است، نه ایجنت. کد تولید نمی‌کند و اقدام بعدی خود را انتخاب نمی‌کند. پریمیتیوهای هوش مصنوعی ارائه می‌دهد که درون نرم‌افزار جا می‌گیرند؛ بنابراین کنترل در دست کد می‌ماند و مدل قضاوت‌های «عقل سلیم» را انجام می‌دهد.

خلاصه: یک جریان کاری نرم‌افزاری معمولی بسازید و System One را فقط جایی بگذارید که به هوش مصنوعی نیاز است.

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

سه معماری نرم‌افزار

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

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

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

چه چیزی System One را ترکیب‌پذیر می‌کند

ساختاریافته

System One ذاتاً type-safe است. تصمیم‌ها و احتمال‌ها با تایپ‌ها و JSON schema مورد انتظار کد شما منطبق‌اند.

موازی

پرسش‌ها مستقل و موازی ارزیابی می‌شوند. نتیجه‌ی یک پریمیتیو کانتکست پنهانی برای دیگری نمی‌شود.

قابل مقایسه

خروجی‌ها قابل مرتب‌سازی‌اند و می‌توانند ifهای هوشمند، آستانه‌ها و مقایسه‌ها را هدایت کنند.

سریع

بیشتر پرسش‌ها در حدود ۱۰۰ میلی‌ثانیه کامل می‌شوند؛ به‌اندازه‌ی کافی سریع برای مسیرهای بی‌درنگ و رابط کاربری.

اطمینان کالیبره

احتمال‌ها در برابر نتایج واقعی بهینه شده‌اند تا عدم قطعیت را بازتاب دهند.

خودسازگار

System One طوری طراحی شده که در ارزیابی‌های تکراری پاسخ‌های پایدار برگرداند.

طراحی یک جریان کاری System One

هر جا می‌توانید از کد استفاده کنید

کارهای قطعی را در کد نگه دارید؛ قابل اعتماد و ارزان است. وقتی یک جریان نرم‌افزاری می‌تواند همان رفتار را بیان کند، از حلقه‌های while ایجنتی پرهیز کنید.

state ورودی را تجزیه کنید

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

در state ورودی از ساختار استفاده کنید

برای state و questions از JSON تودرتو استفاده کنید. با مسیر نقطه‌ای داخل بک‌تیک، مثل support.tickets[0].message، پرسش را به مقدار مشخصی اشاره دهید.

پرسش‌ها را تجزیه کنید

صریح‌ترین، محدودترین و اتمی‌ترین پرسش‌های ممکن را بپرسید. احتمالاً این مهم‌ترین مفهوم این راهنماست. پرسش‌های کلی چند قضاوت را پشت یک پاسخ پنهان می‌کنند؛ پرسش‌های اتمی آن‌ها را آشکار می‌کنند تا بتوانید بررسی، تنظیم و در کد ترکیبشان کنید.

در پرسش‌ها از ساختار استفاده کنید

پرسش‌ها را کوتاه نگه دارید. instructions و criteria معمولاً رشته‌اند، اما می‌توانند شیء یا آرایه هم باشند: پرسش در یک فیلد و داده‌ی راهنما در فیلدهای دیگر. جزئیات در پیشرفته: ساختار.

پرسش‌های زیادی بپرسید

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

خروجی‌ها را در کد ترکیب کنید (یا به یک مدل ML کلاسیک بدهید)

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

مثال: قواعد قطعی را در کد نگه دارید
مثال: تجزیه‌ی تشخیص اسپم

به‌جای یک پرسش کلی «آیا این ایمیل اسپم است؟»، چند پرسش اتمی بپرسید و در کد ترکیب کنید: