۲۷ مهر ۱۴۰۵ github.com ۳ دقیقه مطالعه

پروژه STROT؛ کامپایل قصد کاربر با LLM برای اجرای محلی و همیشگی تصمیم‌ها

پروژه STROT؛ کامپایل قصد کاربر با LLM برای اجرای محلی و همیشگی تصمیم‌ها — Show HN: Strot – Compile an LLM's intent once, run decisions locally forever

خلاصه

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

در یک نگاه

  • نام پروژه: STROT (Project-STROT)
  • مخزن گیت‌هاب: strot-ai/Project-STROT
  • زبان اصلی: پایتون (Python)
  • مجوز: MIT
  • ستاره‌ها: ۳۲
  • کاربرد اصلی: کامپایل کردن قصد (Intent) مدل زبانی در زمان بیلد برای اجرای تصمیم‌گیری‌های محلی، قطعی و ارزان در زمان اجرا (Runtime).

معرفی پروژه STROT و مسئله‌ای که حل می‌کند

ابزار STROT یک «کامپایلر تصمیم» (Decision Compiler) متن‌باز است که ایده‌ای جذاب را دنبال می‌کند: استفاده از مدل‌های زبانی بزرگ (LLM) تنها در زمان کامپایل یا آماده‌سازی، و اجرای محلی و سریع تصمیم‌ها روی داده‌ها در زمان اجرا. بسیاری از تیم‌های مهندسی برای کارهایی مثل دسته‌بندی تیکت‌های پشتیبانی، امتیازدهی به نظرات یا روتینگ داده‌ها، مدام به سراغ APIهای گران‌قیمت و کند LLM می‌روند. STROT این فرآیند را تغییر می‌دهد؛ شما یک بار منظورتان را به مدل سنگینی مثل Claude می‌گویید، و سیستم آن را به یک آرتیفکت پایتون فریز شده، سبک و محلی تبدیل می‌کند.

نحوه کارکرد و معماری

معماری STROT بر پایه جداسازی «زمان کامپایل» از «زمان اجرا» طراحی شده است:

  • زمان کامپایل (Compile Time): یک LLM قدرتمند (مانند Claude) برای یک بار فراخوانی می‌شود تا بر اساس کوئری و نمونه داده‌های شما، برچسب‌ها، پروژکشن‌ها و هندلرها را سنتز کند. سپس اعتبارسنجی‌های لازم انجام می‌شود.
  • زمان اجرا (Runtime): در زمان تولید، هیچ فراخوانی به LLM انجام نمی‌شود. یک مدل محلی بسیار کوچک و سبک (به طور پیش‌فرض مدل Julia-1 با ۱۴۴ میلیون پارامتر) روی CPU اجرا می‌شود و با سرعتی حدود ۶۰ میلی‌ثانیه به ازای هر رکورد، خروجی JSON نوع‌یافته (Type-safe) تحویل می‌دهد.

این ابزار دو سطح اصلی در اختیار شما می‌گذارد:

  • متد run() برای هدایت و روت کردن هر رکورد به اکشن مربوطه و اجرای هندلر.
  • متد decide() برای پرسیدن سوالات ساختاریافته (بولین، امتیازی یا انتخابی) از داده‌ها به همراه محاسبه درصد اطمینان (Confidence).

نحوه استفاده و نصب

برای نصب کتابخانه پایه و نسخه محلی آن می‌توانید از پکیج منیجر pip استفاده کنید:

pip install strot-ai[local]

یک نمونه کد ساده برای دسته‌بندی تیکت‌ها به شرح زیر است:

import strot

result = strot.run(
    tickets,
    query="Triage incoming support tickets into the correct workflow.",
    action_registry={
        "billing_dispute": "Refunds, invoice corrections, double charges",
        "technical_defect": "Crashes, bugs, broken behavior",
    },
    llm="anthropic/claude-opus-4-8",
)

for o in result.outcomes:
    print(o["action"], round(o["confidence"], 2))

سیگنال‌های بلوغ و وضعیت مخزن

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

چرا در هکرنیوز مورد توجه قرار گرفت؟

طرح این موضوع در هکرنیوز با استقبال توسعه‌دهندگانی روبه‌رو شد که از هزینه‌های بالا و غیرقابل‌پیش‌بینی فراخوانی‌های مکرر LLM در زمان اجرا خسته شده‌اند. بحث‌های کاربران بیشتر پیرامون مفهوم «تولید کد یا منطق یک‌بار برای همیشه» و مقایسه آن با رویکردهای سنتی تصمیم‌گیری چرخید. سازنده پروژه نیز در کامنت‌ها توضیح داد که هدف اصلی، انتقال بخش گران‌قیمت و غیرقطعی هوش مصنوعی به فاز بیلد (Build) است تا بخش ران‌تایم کاملاً محلی، ارزان و قابل ممیزی باقی بماند.

این مطلب به‌صورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل

این خبر را با دیگران به اشتراک بگذارید

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