منصوبے کے بارے میں
SNAFU (Symbol Name Ambiguity Fixer-Upper) ایک کمانڈ-لائن ڈویلپر ٹول ہے جو Large Language Models (LLMs) کا استعمال کرتے ہوئے ڈویلپرز کو ان کے سورس کوڈ میں سمبلز کے لیے واضح اور کم مبہم ناموں کا انتخاب کرنے میں مدد کرتا ہے۔ یہ Name Ambiguity Number (NAN) نامی ایک میٹرک متعارف کراتا ہے، جو یہ مقدار دیتا ہے کہ کسی سمبل کے نام کو کتنی آسانی سے غلط سمجھا جا سکتا ہے۔
یہ ٹول ایک ملٹی-اسٹیپ ایجنٹک پائپ لائن کے ذریعے کام کرتا ہے۔ سب سے پہلے، یہ سورس فائل سے سمبلز نکالتا ہے اور انہیں کسی بھی اردگرد کے سیاق و سباق (جیسے فنکشن باڈیز یا ڈاکسٹرنگز) کے بغیر LLM کو بھیجتا ہے، تاکہ ڈویلپر کے کوڈ کو تازہ نظر سے پڑھنے کے ذہنی بوجھ کی نقل کی جا سکے۔ LLM نام کے لیے ممکنہ، باہمی طور پر خصوصی تشریحات کی ایک فہرست فراہم کرتا ہے، ساتھ ہی امکانات بھی۔ SNAFU ان امکانات کا استعمال کرتے ہوئے شانون انٹروپی کا حساب لگاتا ہے اور NAN اخذ کرتا ہے، جہاں کم اسکور کا مطلب واضح نام ہے۔
اس کے بعد ایک انسانی مداخلت کا مرحلہ آتا ہے، جہاں صارف سمبل کے اصل مطلوبہ معنی کی تصدیق کرتا ہے۔ پھر LLM ایک نیا نام تجویز کرتا ہے جو صرف ان تصدیق شدہ معنی کو ظاہر کرتا ہے۔ اس تجویز کردہ نام کا دوبارہ جائزہ لیا جاتا ہے تاکہ نیا NAN حساب لگایا جا سکے۔ اگر نیا نام مبہمی کو کم نہیں کرتا (مثبت ڈیلٹا)، تو اسے رد کر دیا جاتا ہے۔ زندہ بچ جانے والے مشورے ایک آخری صحت کی جانچ سے گزرتے ہیں، جس میں LLM مکمل سیاق و سباق کے ساتھ یہ یقینی بناتا ہے کہ نیا نام معقول ہے اور تصدیق شدہ معنی کے ساتھ مطابقت رکھتا ہے۔ آخر میں، تجویز کردہ ناموں کی ایک رپورٹ صارف کو پیش کی جاتی ہے۔
SNAFU کے لیے Python 3.14 یا اس سے بعد کا ورژن اور `uv` پیکج مینیجر کی ضرورت ہے۔ یہ `any-llm` لائبریری کے ذریعے متعدد LLM فراہم کنندگان کو سپورٹ کرتا ہے، جس سے صارفین کو `--model` فلیگ کا استعمال کرتے ہوئے مختلف ماڈلز کی وضاحت کرنے کی اجازت ملتی ہے۔ ڈیفالٹ طور پر، یہ مقامی طور پر Python کو سمجھتا ہے اور دیگر زبانوں، بشمول Ruby، C#، Java، JavaScript، TypeScript، PHP، Rust، اور Go کے لیے سمبل نکالنے کے لیے Tree-sitter کا استعمال کرتا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.