ٹون کیا ہے؟
ہم سب وہاں رہے ہیں۔ آپ کسی بڑی زبان کے ماڈل (ایل ایل ایم) کے لئے اشارہ انجینئرنگ کر رہے ہیں ، اور آپ کو ساختہ ڈیٹا پاس کرنے کی ضرورت ہے۔ آپ JSON کے لئے پہنچتے ہیں۔ آخر یہ صنعت کا معیار ہے۔ لیکن جب آپ دیکھتے ہیں کہ آپ کے سیاق و سباق کی کھڑکی کو لامتناہی گھوبگھرالی منحنی خطوط وحدانی ، بار بار چابیاں ، اور سادہ عدد کے ارد گرد کے نشانات سے بھرتے ہیں تو ، آپ حیران ہونے لگتے ہیں: _ کیا اس سے بہتر طریقہ ہے؟ _ _
یامل پڑھنے کی اہلیت کی پیش کش کرتا ہے لیکن ابہام کا شکار ہے۔ CSV گھنے ہے لیکن اس میں درجہ بندی کا فقدان ہے۔
درج کریں ** ٹون **۔
ٹون ایک ڈیٹا سیریلائزیشن فارمیٹ ہے جو ڈویلپرز کے لئے تازہ ہوا کی سانس اور اے آئی ماڈلز کے لئے مادری زبان کی طرح محسوس ہوتا ہے۔ یہ انسانی پڑھنے کی اہلیت اور مشین کی کارکردگی کے مابین فرق کو ختم کرتا ہے۔ آج ، ٹون کے نحو اور میکانکس میں گہری غوطہ لگائیں تاکہ یہ سمجھنے کے لئے کہ یہ اعلی کارکردگی کے ڈیٹا انٹرچینج کے لئے جلدی سے کیوں پسندیدہ بن رہا ہے۔
فلسفہ: JSON Semantics ، یمل جمالیات
اس کے بنیادی حصے میں ، ٹون JSON کے عین مطابق ڈیٹا ماڈل کا اشتراک کرتا ہے۔ اگر آپ اس کی نمائندگی JSON - primitives (ڈور ، نمبر ، بولینز ، NULL) ، اشیاء اور صفوں میں کرسکتے ہیں تو آپ ٹون میں اس کی نمائندگی کرسکتے ہیں۔ تاہم ، پریزنٹیشن یکسر مختلف ہے۔
ٹون نے منحنی خطوط وحدانی کو کھود لیا۔ یہ تقویم کی نمائندگی کرنے کے لئے انڈینٹیشن کا استعمال کرتا ہے ، جیسے یامل کی طرح۔ ایک سادہ شے صاف اور قابل رسائی نظر آتی ہے:
یامل کے برعکس ، تاہم ، ٹون اقسام کے بارے میں سخت ہے۔ اس میں کوئی اندازہ نہیں ہے کہ اگر No کا مطلب ہے FALLیا تار" نہیں "۔ ٹون میں ، تاروں کو صرف جب ضروری ہو تو قیمتوں کی ضرورت ہوتی ہے - جیسے کہ ان میں خصوصی حرف ہوتے ہیں ، نمبر ملتے ہیں ، یا خالی ہوتے ہیں۔ اگر آپپیغام ٹائپ کرتے ہیں: ہیلو ورلڈ، آپ کو ایک تار مل جاتا ہے۔ اگر آپگنتی: 42` ٹائپ کرتے ہیں تو ، آپ کو ایک نمبر مل جاتا ہے۔
`یمل ID: 123 نام: اڈا فعال: سچ ہے `
صفوں کی طاقت: لمبائی اور میزیں
جہاں ٹون واقعی اپنے آپ کو پیک سے الگ کرتا ہے اس کی صفوں کو سنبھالنا ہے۔ ٹوکن کی اصلاح کے ل This یہ "قاتل خصوصیت" ہے۔
ٹون کی ہر صف واضح طور پر بریکٹ میں اپنی لمبائی کا اعلان کرتی ہے ، جیسے آئٹمز [3]۔ یہ انسان کے لئے بے کار لگتا ہے ، لیکن ایل ایل ایم کے لئے ، یہ ایک سپر پاور ہے۔ یہ ماڈل کو فوری طور پر ڈھانچے کی توثیق کرنے اور تراشنے کا پتہ لگانے کی اجازت دیتا ہے۔ اگر ندی دو اشیاء کے بعد کٹ جاتی ہے لیکن ہیڈر نے تین وعدہ کیا تو ، پارسر جانتا ہے کہ کچھ غلط ہو گیا ہے۔
ٹون مؤثر طریقے سے صفوں کو سنبھالنے کے لئے تین طریقے پیش کرتا ہے ، خود بخود انتہائی موثر انتخاب کا انتخاب کرتے ہیں۔
- ** ان لائن قدیم: ** نمبروں یا تاروں کی آسان فہرستوں کے لئے ، ٹون اسے کمپیکٹ کرتا ہے۔ `ٹیگز [3]: ایڈمن ، او پی ایس ، دیو
- ** معیاری فہرستیں: ** مخلوط اقسام کے لئے ، یہ یامیل کی طرح ایک ہائفینیٹڈ لسٹ نحو کا استعمال کرتا ہے۔
- ** ٹیبلر آبجیکٹ: ** یہ گیم چینجر ہے۔
اگر آپ کے پاس ایسی اشیاء کی ایک صف ہے جو ایک ہی چابیاں بانٹتی ہیں۔ ہر ایک قطار کے لئے چابیاں دہرانے کے بجائے ، یہ ایک بار ہیڈر میں چابیاں کا اعلان کرتا ہے۔
مذکورہ بالا مثال میں ، صارفین [2] {ID ، نام ، کردار}: ہمیں بتاتا ہے کہ ہمارے پاس 2 قطاریں ہیں اور اسکیما کی وضاحت کرتی ہیں۔ اعداد و شمار CSV جیسے ڈھانچے میں ہیں۔ اس سے " ID "کو دہرانے کے بڑے پیمانے پر ٹوکن اوور ہیڈ ختم ہوجاتا ہے: ، " نام ": ، اور " کردار ": ہر صارف کے لئے۔
`یمل صارفین [2] {ID ، نام ، کردار}: 1 ، ایلس ایڈمن ، ایڈمن 2 ، باب اسمتھ ، صارف `
ڈیمیٹرز اور ٹوکن کی کارکردگی
آپ کو مذکورہ بالا مثالوں میں کوما کا استعمال محسوس ہوسکتا ہے۔ ٹون دراصل تین ڈیمیٹرز کی حمایت کرتا ہے: کوما (پہلے سے طے شدہ) ، ٹیبز ، اور پائپ (|)۔
یہ کیوں فرق پڑتا ہے؟ ٹوکنائزیشن۔
بہت سے ایل ایل ایم ٹوکنیزرز میں ، ایک کوما کے بعد ایک کوما کو ایک سے زیادہ ٹوکن میں تقسیم کیا جاسکتا ہے۔ ایک ٹیب کردار ، تاہم ، اکثر بہت صاف ستھرا ہوتا ہے۔ ٹون آپ کو سرنی ہیڈر کی سطح پر ڈیمیٹرز کو تبدیل کرنے کی اجازت دیتا ہے۔ اگر آپ ٹیب ڈیلیمیٹر استعمال کرتے ہیں تو ، آپ کو اکثر اپنے اعداد و شمار کو کمپریس کرتے ہوئے خالی جگہوں پر مشتمل تار کا حوالہ دینے کی ضرورت نہیں ہوتی ہے۔
فارمیٹ "تصادم" کو سنبھالنے کے لئے کافی ہوشیار ہے۔ اگر آپ کے اعداد و شمار میں فعال حد بندی پر مشتمل ہے تو ، ٹون صرف اس مخصوص قدر کا حوالہ دیتا ہے۔
`یمل اشیا [2] {SKU ، نام ، Qty}: A1 ، ویجیٹ کا نام ، 2 بی 2 ، گیجٹ کا نام ، 1 `
کلیدی فولڈنگ: منحنی خطوط کو چپٹا کرنا
ایک اور خصوصیت جو ٹون کی کارکردگی پر توجہ مرکوز کرتی ہے وہ ہے ** کلیدی فولڈنگ **۔ گہری گھریلو اشیاء کے نتیجے میں عام طور پر انڈینٹیشن کی "سیڑھی" ہوتی ہے جو افقی جگہ اور ٹوکن کھاتا ہے۔
اگر آپ کے پاس گہری درجہ بندی ہے جہاں انٹرمیڈیٹ اشیاء کے بہن بھائی نہیں ہوتے ہیں تو ، ٹون انہیں ڈاٹ نٹیشن کے راستے میں گر سکتا ہے۔
لکھنے کے بجائے:
آپ لکھ سکتے ہیں:
`یمل ڈیٹا: میٹا ڈیٹا: اشیا [2]: a ، b `
یہ خصوصیت ، جو اسپیک V1.5 کے بعد دستیاب ہے ، لائن کی گنتی اور انڈینٹیشن ٹوکن کو نمایاں طور پر کم کرتی ہے۔ اہم بات یہ ہے کہ یہ مکمل طور پر الٹ ہے۔ جب آپ ڈیٹا کو راہ میں توسیع کے ساتھ ڈی کوڈ کرتے ہیں تو ، یہ گہری شے کے درجہ بندی کو بالکل ٹھیک کرتا ہے۔
`یمل data.metadata.items [2]: a ، b `
سختی اور حفاظت
اس کی جامع شکل کے باوجود ، ٹون ڈیٹا کے ساتھ ڈھیلا نہیں ہے۔ یہ حوالہ دینے اور فرار ہونے کے لئے ایک سخت قواعد پر عمل پیرا ہے۔
ڈور عام طور پر غیرقانونی رہتے ہیں ، جو پڑھنے کی اہلیت کے لئے بہت اچھا ہے۔ تاہم ، ٹون ڈیٹا کی سالمیت کو یقینی بنانے کے لئے کنارے کے مقدمات کے حوالے سے قیمتوں کو نافذ کرتا ہے۔ اگر کوئی تار کسی نمبر کی طرح دکھائی دیتا ہے (جیسے ، " 05 " یا " 1E-6 ") ، تو اس کو ایک نمبر کے طور پر تجزیہ کرنے سے روکنے کے لئے اس کا حوالہ دیا جاتا ہے۔ اگر تار سچے یا null` جیسے مخصوص لفظ ہے تو ، اس کا حوالہ دیا جاتا ہے۔
مزید برآں ، ٹون تعداد کو معمول پر لاتا ہے۔ یہ کیننیکل اعشاریہ شکلوں کو خارج کرتا ہے - آؤٹ پٹ میں کوئی سائنسی اشارے یا پیچھے سے نہیں۔ یہاں تک کہ یہ محفوظ طریقے سے BIGINT ہینڈل کرتا ہے۔ اگر کوئی بڑی تعداد محفوظ انٹیجر رینج سے زیادہ ہے تو ، نقل و حمل کے دوران صحت سے متعلق نقصان کو روکنے کے لئے اسے تار کے طور پر سیریلائز کیا جاتا ہے۔
جڑ فارم
جبکہ ہم میں سے بیشتر جڑوں کی اشیاء کے ساتھ کام کرتے ہیں ، ٹون لچکدار ہے۔ ایک دستاویز کو کلیدی قدر کی جوڑی کے ساتھ شروع کرنے کی ضرورت نہیں ہے۔ یہ جڑ کی صفوں کی حمایت کرتا ہے (فوری طور پر [n]:) یا یہاں تک کہ ایک ہی جڑ قدیم سے بھی شروع ہوتا ہے۔ JSON کے ساتھ اس برابری کا مطلب ہے کہ آپ ٹون کو تقریبا کسی بھی پائپ لائن میں تبدیل کرسکتے ہیں جہاں JSON فی الحال استعمال ہوتا ہے ، بشرطیکہ آپ کے پاس دوسرے سرے پر پارسر موجود ہو۔
حتمی خیالات
ٹون صرف "ایک اور فارمیٹ" نہیں ہے۔ یہ ایک ایسے دور کے لئے ایک خصوصی ٹول ہے جہاں اعداد و شمار کے ذریعہ اعداد و شمار کا استعمال ہوتا ہے جب تک کہ یہ تعی .ن کوڈ کے ذریعہ ہوتا ہے۔ JSON کے سخت ڈیٹا ماڈل کو CSV کی کثافت اور YAML کی پڑھنے کی اہلیت کے ساتھ جوڑ کر ، یہ قسم کی حفاظت کی قربانی کے بغیر سیاق و سباق کے ونڈو اصلاح کے مخصوص مسئلے کو حل کرتا ہے۔
اگر آپ ایجنٹوں ، فائن ٹوننگ ماڈل بنا رہے ہیں ، یا لامتناہی بند منحنی خطوط وحدانی کے ذریعے طومار کرنے سے صرف تھک چکے ہیں تو ، ٹون کو ایک نظر ڈالنے کا وقت آگیا ہے۔