فائدہ:
- رسائی کنٹرول (ACL) قائم کریں جو صارف کے اختیار کی بنیاد پر بازیافت کو فلٹر کرتا ہے۔
- ایک ٹھوس فوری ٹیمپلیٹ لکھنا جو سیاق و سباق اور صارف کے سوال کو صحیح طریقے سے رکھتا ہے۔
- کثیر الجہتی گفتگو میں سوال کی آزادی اور تاریخ کے انتظام کی مشق کرنا
ہم نے فن تعمیر کو قائم کیا۔ اب آئیے اسے محفوظ، مستقل اور بات چیت کرتے ہیں۔ اس یونٹ میں تین اہم موضوعات ہیں: (1) رسائی کا کنٹرول جو صارف کے اختیار کی بنیاد پر بازیافت کو فلٹر کرتا ہے، (2) ایک مضبوط پرامپٹ ٹیمپلیٹ جو سیاق و سباق اور سوال کو صحیح طریقے سے رکھتا ہے، (3) کثیر راؤنڈ چیٹ میں سوال کی آزادی اور گفتگو کی تاریخ کا انتظام۔ ان تینوں کے بغیر، ایک معاون یا تو ڈیٹا لیک کرے گا، متضاد جوابات دے گا، یا فالو اپ سوالات پر الگ ہو جائے گا۔
رسائی کنٹرول: غیر مجاز ڈیٹا کبھی نہیں آنا چاہیے۔
انٹرپرائز کا سب سے بڑا خطرہ: ایک دستاویز جسے صارف کو جواب میں لیک نہیں دیکھنا چاہئے۔ ایک بہت ہی عام ابتدائی غلطی یہ ہے کہ "ماڈل کو فوری طور پر 'چھپی ہوئی دستاویزات دکھانے' کو کہنا۔" یہ محفوظ نہیں ہے۔ ماڈل کسی ہدایت کو بھول سکتا ہے یا فوری انجیکشن اس سے بچ سکتا ہے۔ صحیح جگہ بازیافت کا مرحلہ ہے: غیر مجاز ٹکڑا بالکل نہیں لایا جانا چاہئے۔
ایسا کرنے کا طریقہ یہ ہے کہ آپ تلاش کے دوران ہر حصے پر فلٹر کے طور پر لگائے گئے اتھارٹی میٹا ڈیٹا (محکمہ، کردار، رازداری کی سطح) کو لاگو کریں۔ آپ ایپلیکیشن لیئر پر محفوظ طریقے سے تعین کرتے ہیں کہ صارف کون ہے (شناخت اور کردار) اور کال میں ACL (ایکسیس کنٹرول لسٹ) فلٹر شامل کریں۔
# اتھارٹی کی بازیافت (تصوراتی) صارف = تصدیق (سیشن) کے ذریعہ فلٹر کردہ # قابل اعتماد ذریعہ سے تصدیق شدہ = user.roles + ["Everyone"] # جیسے ["HR", "admin"] نتیجہ = vektor_db.search( vektor=embed(سوال), top_k=20, filter={"permission_group": {"in": اجازت دی گئی}، # صرف اجازت شدہ حصے "privacy": {"lte": user.level}} # سطح سے نیچے)
احتیاط: کبھی بھی ماڈل سے اتھارٹی طلب نہ کریں یا پرامپٹ پر بھروسہ نہ کریں۔ شناخت اور اختیار کا تعین درخواست کی قابل اعتماد پرت پر کیا جاتا ہے۔ بازیافت کا فلٹر لازمی ہے، فوری ہدایات صرف ایک اضافی پرت ہے۔ "میں نے اسے پرامپٹ میں لکھا" سیکیورٹی نہیں ہے۔
ٹھوس پرامپٹ ٹیمپلیٹ
پرامپٹ ٹیمپلیٹ وہ کنکال ہے جو بازیافت سے سیاق و سباق، صارف کے سوال اور رویے کی ہدایات کو اکٹھا کرتا ہے۔ اچھے ٹیمپلیٹ کے حصے: کردار/کام کی تفصیل، طرز عمل کے اصول (گراؤنڈنگ، مجھے اجازت نہیں ہے، وسائل کی درخواست، لہجہ)، سیاق و سباق، سوال۔
آپ ایک کارپوریٹ HR اسسٹنٹ ہیں۔ آپ کا کام صرف مندرجہ ذیل CONTEXT کی بنیاد پر ملازمین کے سوالات کا جواب دینا ہے۔ قواعد: - اگر جواب سیاق و سباق میں واضح طور پر نہیں ہے تو لکھیں "مجھے اس پر دستاویزات میں معلومات نہیں مل سکی، HR ٹیم سے چیک کریں"۔ اندازہ نہ لگائیں، میک اپ نہ کریں۔- اگر سیاق و سباق کے ذرائع میں تضاد ہے تو، سرکاری پالیسی کو بنیاد کے طور پر لیں اور تضاد بیان کریں۔- ہر دعوے کے آخر میں وہ ماخذ شامل کریں جس پر آپ انحصار کرتے ہیں [ماخذ: فائل، سیکشن]۔- مختصر، واضح اور پیشہ ورانہ زبان میں جواب دیں۔ CONTEXT:{numbered_parts}سوال: {user_question}
سیاق و سباق کے حصوں ([1], [2], ...) کو شمار کرنے سے ماڈل کا حوالہ دینا آسان ہوجاتا ہے۔ اس کے علاوہ، ہر ٹکڑے کے شروع میں ماخذ لکھیں تاکہ ماڈل اس کا صحیح حوالہ دے سکے۔
اشارہ: پرامپٹ ٹیمپلیٹ کو مستقل رکھیں اور متغیرات (سیاق و سباق، سوال) کو ہمیشہ ایک ہی جگہ پر رکھیں۔ ایک فکسڈ ٹیمپلیٹ ٹیسٹ کی اہلیت کو بڑھاتا ہے اور کچھ سسٹمز میں فوری کیشنگ کی بدولت لاگت کو کم کرتا ہے۔
CONTEXT:[1] (ماخذ: ik_el_kitabi.pdf، سیکشن 5.2) سالانہ تنخواہ کی چھٹی 14 دن ہے...[2] (ماخذ: ik_el_kitabi.pdf، سیکشن 5.4) 5 سال سے زیادہ سروس والے لوگوں کے لیے چھٹی 20 دن ہے...
کمزور پرامپٹ / مضبوط اشارہ
کمزور (کوئی بنیاد نہیں، کوئی ذریعہ نہیں، شناخت مخلوط):
ان دستاویزات کو استعمال کریں اور سوال کا جواب دیں: {parts}صارف: {سوال}# مسئلہ: ماڈل سیاق و سباق سے ہٹ جاتا ہے، بناتا ہے، ذرائع کا حوالہ نہیں دیتا، # تضاد میں من مانی برتاؤ کرتا ہے۔
مضبوط (کردار + قواعد + نمبر والا سیاق و سباق + ذریعہ لازمی):
آپ ہیں... بس CONTEXT پر بھروسہ کریں۔ بصورت دیگر، "مجھے نہیں معلوم" کہیں۔ تنازعہ میں، سرکاری پالیسی کا انتخاب کریں۔ ہر ایک دعوے میں [ماخذ: ...] شامل کریں
ملٹی ٹور گفتگو کا انتظام
ایک حقیقی صارف ایک سوال نہیں پوچھتا اور اسے تنہا چھوڑ دیتا ہے۔ بولتا ہے "میرے پاس سالانہ کتنے دن کی چھٹی ہے؟" → "6 سالہ ملازم کا کیا ہوگا؟" → "میں اس کے لیے درخواست کیسے دوں؟" دوسرا اور تیسرا سوال ہی بے معنی ہیں۔ پچھلے سیاق و سباق پر منحصر ہے۔
آپ کو دو مسائل حل کرنے کی ضرورت ہے۔ پہلا بازیافت کے لیے ہے: فالو اپ سوال کو آزاد بنائیں (سوال دوبارہ لکھنا)۔ "6 سالہ ملازم کا کیا ہوگا؟" → "6 سال کا ملازم کتنے دنوں کی سالانہ چھٹی کا حقدار ہے؟" آپ اس آزاد سوال کے ساتھ تلاش کریں۔ دوسرا پیداوار کے لیے ہے: آپ ماڈل کو گفتگو کی تاریخ بھی دیتے ہیں تاکہ یہ مسلسل جاری رہے۔
# دو قدم: independentize → search → generate with history (تصوراتی) independent = model.uret("سوال کو خود سے قابل فہم بنانے کے لیے گفتگو کی سرگزشت کا استعمال کریں:\nHistory: {history}\nسوال: {follow_question}") سیاق و سباق = بازیافت(آزاد) # تلاش کے ساتھ آزاد سوال جواب، پیروی کریں (موڈل)
جیسے جیسے تاریخ بڑھتی ہے (طویل گفتگو)، ایک وقت میں یہ سب بھیجنا مہنگا ہو جاتا ہے اور سیاق و سباق کی کھڑکی کو بھر دیتا ہے۔ حل: پچھلے راؤنڈز کا خلاصہ کریں یا آخری N راؤنڈ رکھیں اور پچھلے راؤنڈز کو سمری میں کم کریں۔ اس طرح، اخراجات کنٹرول میں رہتے ہیں اور مستقل مزاجی برقرار رہتی ہے۔
حیثیت
مسئلہ
حل
فالو اپ سوال کا کوئی سیاق و سباق نہیں ہے۔
بازیافت کی تلاشیں بے معنی ہیں۔
سوال کو آزاد بنائیں (دوبارہ لکھیں)
لمبی بات چیت
لاگت اور کھڑکی پھول جاتی ہے۔
ماضی کے دوروں کا خلاصہ
صارف نے موضوع کو تبدیل کیا۔
پرانا سیاق و سباق متاثر ہو جاتا ہے۔
نئے موضوع پر ماضی کے اثر کو کم کریں۔
دوروں کے درمیان اتھارٹی مختلف ہو سکتی ہے۔
رساو کا خطرہ
ACL فلٹر کو ہر دور میں دوبارہ لگائیں۔
تین چھوٹے کیسز
کیس 1 - فوری طور پر "سیکیورٹی" کی غلطی۔ ایک کمپنی نے اسسٹنٹ پر تنخواہ کی خفیہ دستاویزات رکھی ہیں جن سے کوئی بھی پوچھ سکتا ہے، لیکن پرامپٹ پر صرف "تنخواہ کی معلومات نہ دیں" لکھا۔ ماڈل نے تنخواہ کی حد اس وقت لیک کر دی جب ایک صارف نے چکر لگاتے ہوئے سوال پوچھا۔ جب ACL فلٹر کو بازیافت میں شامل کیا گیا تھا (تنخواہ کے حصے صرف HR رول میں)، لیک مکمل طور پر بند ہو گیا تھا۔ کیونکہ حصہ اب کبھی نہیں لایا جاتا ہے۔
کیس 2 - سیاق و سباق کے بغیر پیچھا کرنا۔ سپورٹ اسسٹنٹ میں، صارف پوچھتا ہے "واپسی کی مدت؟" → "ٹوٹے ہوئے پروڈکٹ کا کیا ہوگا؟" سسٹم "ٹوٹے ہوئے پروڈکٹ" کے لیے غیر متعلقہ حصے لایا۔ جب سوال کی آزادی شامل کی گئی ("ٹوٹے ہوئے پروڈکٹ کی واپسی کی مدت کتنی ہے؟")، درست جواب کی شرح 44% سے بڑھ کر 90% ہوگئی۔
کیس 3 - سوجن ماضی۔ ایک اسسٹنٹ کے ساتھ چیٹ کے 30 راؤنڈز میں، ہر کال نے پوری تاریخ بھیجی تھی۔ لاگت فی راؤنڈ میں 3 گنا بڑھ رہی تھی، اور جوابات سست ہو رہے تھے۔ جب ہم نے ایک ایسے ڈھانچے پر سوئچ کیا جس نے آخری 6 راؤنڈ رکھے اور پچھلے راؤنڈز کا خلاصہ کیا تو ٹوکن لاگت میں 62% کی کمی واقع ہوئی اور مستقل مزاجی برقرار رہی۔
عام غلطیاں
- اتھارٹی کو فوری طور پر چھوڑنا: ماڈل بھول جاتا ہے/بائی پاس کرتا ہے۔ بازیافت پر ACL فلٹر لازمی ہے۔
- سیاق و سباق کی گنتی نہ کرنا: ماڈل صحیح ماخذ کا حوالہ نہیں دے سکتا۔
- فالو اپ سوال کو آزاد نہ کرنا: بازیافت بے مقصد تلاش کرتا ہے۔
- تمام تاریخ کو اندھا بھیجنا: لاگت اور تاخیر میں پھٹ جاتا ہے۔ خلاصہ
- متضاد اصول نہیں لکھنا: ماڈل غیر معتبر ذریعہ کو بطور آفیشل پیش کر سکتا ہے۔
خلاصہ میں
- بازیافت کے مرحلے کے دوران میٹا ڈیٹا فلٹر کے ساتھ رسائی کا کنٹرول لاگو کیا جاتا ہے۔ غیر مجاز پرزے کبھی نہ لائے جائیں۔
- شناخت اور اختیار کا تعین قابل اعتماد ایپلیکیشن پرت پر کیا جاتا ہے۔ فوری ہدایات دفاع کی صرف ایک اضافی پرت ہے۔
- مضبوط پرامپٹ ٹیمپلیٹ میں کردار، قواعد و ضوابط (گراؤنڈنگ، نہیں معلوم اجازت، ماخذ، تنازعہ)، نمبر والے سیاق و سباق اور سوال شامل ہیں۔
- ملٹی راؤنڈ گفتگو میں، فالو اپ سوالات کو جوڑ دیا جاتا ہے اور ماڈل تاریخ کے مطابق جوابات دیتا ہے۔
- طویل تاریخ کا خلاصہ کرتے ہوئے، لاگت اور سیاق و سباق کی کھڑکی کو کنٹرول میں رکھا جاتا ہے۔ ACL کو ہر دور میں دوبارہ لاگو کیا جاتا ہے۔
درخواست کا کام
(1) اپنے اسسٹنٹ کے لیے کم از کم تین اتھارٹی گروپس کی وضاحت کریں (جیسے ہر کوئی، ڈیپارٹمنٹ، مینیجر) اور ایک ٹیبل میں لکھیں کہ کون سی دستاویز کی قسم کس گروپ کے لیے کھلی ہے۔ (2) مندرجہ بالا فوری ٹیمپلیٹ کو اپنے کردار اور لہجے کے مطابق ڈھالیں اور لکھیں۔ سیاق و سباق کو نمبر اور ذریعہ بنائیں۔ (3) تین دور کی حقیقت پسندانہ گفتگو کا منظر نامہ لکھیں (سوال → فالو اپ → فالو اپ) اور دستی طور پر ہر فالو اپ سوال کے آزاد ورژن تیار کریں۔ (4) ایک جملے میں وضاحت کریں کہ اس منظر نامے میں ACL فلٹر کو ہر دور میں کیوں دوبارہ لاگو کیا جانا چاہیے۔
چیک لسٹ
- میں ایک بازیافت فلٹر کے ساتھ رسائی کنٹرول کو نافذ کرتا ہوں، میں صرف پرامپٹ پر انحصار نہیں کرتا ہوں۔
- [ ] میں اپنے پرامپٹ ٹیمپلیٹ میں گراؤنڈنگ شامل کرتا ہوں، مجھے اجازت، ماخذ اور تنازعہ کے اصول کا علم نہیں ہے۔
- میں سیاق و سباق کے حصوں کو نمبر اور حوالہ دیتا ہوں۔
- [ ] میں بازیافت سے پہلے فالو اپ سوالات کو آزاد بناتا ہوں۔
- میں طویل گفتگو کی تاریخ کا خلاصہ کرکے لاگت اور ونڈو کا انتظام کرتا ہوں۔