লাভ:
- অ্যাক্সেস কন্ট্রোল (ACL) সেট আপ করুন যা ব্যবহারকারীর কর্তৃপক্ষের উপর ভিত্তি করে পুনরুদ্ধার ফিল্টার করে
- একটি কঠিন প্রম্পট টেমপ্লেট লেখা যা প্রসঙ্গ এবং ব্যবহারকারীর প্রশ্ন সঠিকভাবে রাখে
- বহু-রাউন্ড কথোপকথনে প্রশ্ন স্বাধীনতা এবং ইতিহাস ব্যবস্থাপনা অনুশীলন করা
আমরা স্থাপত্য প্রতিষ্ঠা করেছি; এখন এটাকে নিরাপদ, সামঞ্জস্যপূর্ণ এবং কথোপকথন করা যাক। এই ইউনিটে তিনটি সমালোচনামূলক বিষয় রয়েছে: (1) অ্যাক্সেস নিয়ন্ত্রণ যা ব্যবহারকারীর কর্তৃত্বের উপর ভিত্তি করে পুনরুদ্ধার ফিল্টার করে, (2) একটি শক্তিশালী প্রম্পট টেমপ্লেট যা প্রসঙ্গ এবং প্রশ্ন সঠিকভাবে রাখে, (3) বহু-রাউন্ড চ্যাটে প্রশ্ন স্বাধীনতা এবং কথোপকথনের ইতিহাস পরিচালনা। এই তিনটি ছাড়া, একজন সহকারী হয় ডেটা ফাঁস করবে, অসামঞ্জস্যপূর্ণ উত্তর দেবে, অথবা ফলো-আপ প্রশ্নে বিচ্ছিন্ন হয়ে পড়বে।
অ্যাক্সেস নিয়ন্ত্রণ: অননুমোদিত ডেটা কখনই পৌঁছানো উচিত নয়
এন্টারপ্রাইজের সবচেয়ে বড় ঝুঁকি: একটি নথি যা একজন ব্যবহারকারীর প্রতিক্রিয়ায় ফাঁস হওয়া উচিত নয়। একটি খুব সাধারণ শিক্ষানবিস ভুল হল "মডেলকে প্রম্পটে 'লুকানো নথি দেখাতে' বলা।" এটা নিরাপদ নয়। মডেল একটি নির্দেশ ভুলে যেতে পারে বা একটি প্রম্পট ইনজেকশন এটি এড়িয়ে যেতে পারে। সঠিক স্থানটি হল পুনরুদ্ধারের পর্যায়: অননুমোদিত অংশটি মোটেই আনা উচিত নয়।
এটি করার উপায় হল কর্তৃপক্ষের মেটাডেটা (বিভাগ, ভূমিকা, গোপনীয়তা স্তর) প্রয়োগ করা যা আপনি অনুসন্ধানের সময় একটি ফিল্টার হিসাবে প্রতিটি অংশে রাখেন। আপনি অ্যাপ্লিকেশন স্তরে ব্যবহারকারী কে (পরিচয় এবং ভূমিকা) নিরাপদে নির্ধারণ করুন এবং কলে একটি ACL (অ্যাক্সেস কন্ট্রোল লিস্ট) ফিল্টার যোগ করুন।
# কর্তৃপক্ষ পুনরুদ্ধার দ্বারা ফিল্টার করা (ধারণাগত) ব্যবহারকারী = প্রমাণীকরণ(সেশন) # বিশ্বস্ত উত্স থেকে প্রমাণীকৃত = user.roles + ["সবাই"] # যেমন ["HR", "admin"]result = vektor_db.search( vektor=embed(question), top_k=20, filter={"permission_group": {"in": অনুমোদিত}, # শুধুমাত্র অনুমোদিত অংশ "গোপনীয়তা": {"lte": user.level}} # স্তরের নিচে)
সতর্কতা: কখনই মডেলটিকে কর্তৃপক্ষের জন্য জিজ্ঞাসা করবেন না বা প্রম্পটের উপর নির্ভর করবেন না। আবেদনের বিশ্বস্ত স্তরে পরিচয় এবং কর্তৃত্ব নির্ধারিত হয়; পুনরুদ্ধার ফিল্টার বাধ্যতামূলক, প্রম্পট নির্দেশনা শুধুমাত্র একটি অতিরিক্ত স্তর। "আমি প্রম্পটে এটি লিখেছি" নিরাপত্তা নয়।
সলিড প্রম্পট টেমপ্লেট
প্রম্পট টেমপ্লেট হল একটি কঙ্কাল যা পুনরুদ্ধার থেকে প্রসঙ্গ, ব্যবহারকারীর প্রশ্ন এবং আচরণ নির্দেশাবলী একত্রিত করে। একটি ভাল টেমপ্লেটের অংশগুলি: ভূমিকা/টাস্কের বিবরণ, আচরণের নিয়ম (গ্রাউন্ডিং, আমি অনুমতি জানি না, সম্পদ অনুরোধ, সুর), প্রসঙ্গ, প্রশ্ন।
আপনি একজন কর্পোরেট এইচআর সহকারী। আপনার কাজ হল কর্মচারীদের প্রশ্নের উত্তর দেওয়া শুধুমাত্র নিম্নলিখিত কনটেক্সটের উপর ভিত্তি করে। নিয়ম:- যদি উত্তরটি প্রসঙ্গে স্পষ্টভাবে না হয় তাহলে লিখুন "আমি ডকুমেন্টেশনে এই বিষয়ে তথ্য খুঁজে পাইনি, HR টিমের সাথে চেক করুন"। অনুমান করবেন না, তৈরি করবেন না।- যদি প্রেক্ষাপটের সূত্রগুলি দ্বন্দ্বে থাকে, তাহলে সরকারী নীতিকে ভিত্তি হিসাবে নিন এবং দ্বন্দ্ব প্রকাশ করুন।- প্রতিটি দাবির শেষে আপনি যে উৎসের উপর নির্ভর করেন তা যোগ করুন [উৎস: ফাইল, বিভাগ]।- একটি সংক্ষিপ্ত, পরিষ্কার এবং পেশাদার ভাষায় উত্তর দিন। প্রসঙ্গ:{numbered_parts}প্রশ্ন: {user_question}
প্রসঙ্গ অংশগুলি ([1], [2], ...) সংখ্যা করা মডেলটি উদ্ধৃত করা সহজ করে তোলে। এছাড়াও, প্রতিটি অংশের শুরুতে উত্সটি লিখুন যাতে মডেলটি সঠিকভাবে এটিকে উদ্ধৃত করতে পারে।
টিপ: প্রম্পট টেমপ্লেটটি স্থির রাখুন এবং সর্বদা ভেরিয়েবল (প্রসঙ্গ, প্রশ্ন) একই জায়গায় রাখুন। একটি নির্দিষ্ট টেমপ্লেট পরীক্ষাযোগ্যতা বাড়ায় এবং কিছু সিস্টেমে প্রম্পট ক্যাশে করার জন্য খরচ কমায়।
প্রসঙ্গ:[1] (সূত্র: ik_el_kitabi.pdf, সেকশন 5.2) বার্ষিক বেতনের ছুটি হল 14 দিন...[2] (সূত্র: ik_el_kitabi.pdf, ধারা 5.4) যাদের 5 বছরের বেশি চাকরি আছে তাদের জন্য ছুটি 20 দিন...
দুর্বল প্রম্পট / শক্তিশালী প্রম্পট
দুর্বল (কোন গ্রাউন্ডিং নেই, উৎস নেই, পরিচয় মিশ্রিত):
এই নথিগুলি ব্যবহার করুন এবং প্রশ্নের উত্তর দিন: {parts}ব্যবহারকারী: {প্রশ্ন}# সমস্যা: মডেলটি প্রসঙ্গের বাইরে চলে যায়, তৈরি করে, উত্স উদ্ধৃত করে না, # স্ববিরোধিতায় নির্বিচারে আচরণ করে।
শক্তিশালী (ভূমিকা + নিয়ম + সংখ্যাযুক্ত প্রসঙ্গ + উত্স বাধ্যতামূলক):
আপনি... শুধু CONTEXT এর উপর নির্ভর করুন। অন্যথায়, "আমি জানি না" বলুন। দ্বন্দ্বে, অফিসিয়াল নীতি বেছে নিন। প্রতিটি দাবিতে [উৎস: ...] যোগ করুন। কনটেক্সট: [1]... [2]... প্রশ্ন: {প্রশ্ন}# ফলাফল: উত্তর যা প্রসঙ্গটির প্রতি বিশ্বস্ত, উৎস এবং দ্বন্দ্ব সঠিকভাবে পরিচালনা করে।
মাল্টি-ট্যুর কথোপকথন ব্যবস্থাপনা
একজন প্রকৃত ব্যবহারকারী একটি একক প্রশ্ন জিজ্ঞাসা করে না এবং এটি একা ছেড়ে দেয় না; কথা বলে "আমার কত দিনের বার্ষিক ছুটি আছে?" → "6 বছরের কর্মচারী সম্পর্কে কি?" → "আমি কীভাবে এটির জন্য আবেদন করব?" একা দ্বিতীয় এবং তৃতীয় প্রশ্ন অর্থহীন; পূর্ববর্তী প্রেক্ষাপটের উপর নির্ভর করে।
আপনাকে দুটি সমস্যা সমাধান করতে হবে। প্রথমটি পুনরুদ্ধারের জন্য: ফলো-আপ প্রশ্নকে স্বাধীন করুন (প্রশ্ন পুনর্লিখন)। "6 বছরের কর্মচারী সম্পর্কে কি?" → "6 বছরের একজন কর্মচারী কত দিনের বার্ষিক ছুটি পাওয়ার অধিকারী?" আপনি এই স্বাধীন প্রশ্ন দিয়ে অনুসন্ধান করুন. দ্বিতীয়টি উত্পাদনের জন্য: আপনি মডেলটিকে কথোপকথনের ইতিহাসও দেন যাতে এটি ধারাবাহিকভাবে চলতে থাকে।
# দুই-পদক্ষেপ: independentize → search → generate with history (conceptual) independent = model.uret( "কথোপকথনের ইতিহাস ব্যবহার করুন প্রশ্নটিকে নিজে থেকে বোধগম্য করতে:\nইতিহাস: {ইতিহাস}\nপ্রশ্ন: {অনুসরণ_প্রশ্ন}") প্রসঙ্গ = পুনরুদ্ধার (স্বাধীন) # স্বাধীন প্রশ্নোত্তর, অনুসরন_উত্তর সহ (ইতিহাস, মডেল)
ইতিহাস বাড়ার সাথে সাথে (দীর্ঘ কথোপকথন), এটি একবারে পাঠানো ব্যয়বহুল হয়ে ওঠে এবং প্রসঙ্গ উইন্ডোটি পূরণ করে। সমাধান: পূর্ববর্তী রাউন্ডগুলিকে সংক্ষিপ্ত করুন বা শেষ N রাউন্ডগুলি রাখুন এবং পূর্ববর্তীগুলিকে সারাংশে কমিয়ে দিন। সুতরাং, খরচ নিয়ন্ত্রণে থাকে এবং ধারাবাহিকতা বজায় থাকে।
স্ট্যাটাস
সমস্যা
সমাধান
ফলো-আপ প্রশ্নের কোন প্রসঙ্গ নেই
পুনরুদ্ধার অর্থহীন অনুসন্ধান
প্রশ্নটি স্বাধীন করুন (পুনরায় লিখুন)
দীর্ঘ চ্যাট
খরচ এবং জানালা swells
অতীত সফরের সারাংশ
ব্যবহারকারীর বিষয় পরিবর্তন
পুরনো প্রসঙ্গ সংক্রমিত হয়
নতুন বিষয়ে অতীতের প্রভাব হ্রাস করুন
কর্তৃপক্ষ ট্যুর মধ্যে পরিবর্তিত হতে পারে
ফুটো হওয়ার ঝুঁকি
প্রতি রাউন্ডে ACL ফিল্টার পুনরায় প্রয়োগ করুন
তিনটি মিনি কেস
কেস 1 - প্রম্পট সহ "নিরাপত্তা" বিভ্রান্তি। একটি কোম্পানী একজন সহকারীর কাছে গোপনীয় বেতনের নথি রাখে যা যে কেউ জিজ্ঞাসা করতে পারে, কিন্তু প্রম্পটে শুধুমাত্র "বেতনের তথ্য দেবেন না" লিখেছিলেন। একজন ব্যবহারকারী গোলমুখে প্রশ্ন জিজ্ঞাসা করলে মডেলটি বেতনের পরিসর ফাঁস করে। যখন এসিএল ফিল্টারটি পুনরুদ্ধারে যুক্ত করা হয়েছিল (শুধুমাত্র এইচআর ভূমিকাতে বেতনের অংশ), লিকটি সম্পূর্ণরূপে বন্ধ ছিল; কারণ অংশটি আর কখনও আনা হয় না।
কেস 2 — প্রসঙ্গহীন স্টাকিং। একটি সমর্থন সহকারীতে, ব্যবহারকারী জিজ্ঞাসা করে "রিটার্ন পিরিয়ড?" → "ভাঙ্গা পণ্য সম্পর্কে কি?" সিস্টেম "ভাঙা পণ্য" জন্য অপ্রাসঙ্গিক অংশ আনা. যখন প্রশ্ন স্বাধীনতা যোগ করা হয়েছিল ("একটি ভাঙা পণ্যের জন্য ফেরত দেওয়ার সময়কাল কতক্ষণ?"), সঠিক উত্তরের হার 44% থেকে 90% বেড়েছে৷
কেস 3 — স্ফীত অতীত। একজন সহকারীর সাথে 30 রাউন্ড চ্যাটে, প্রতিটি কল পুরো ইতিহাস পাঠিয়েছে; খরচ প্রতি রাউন্ডে 3 বার বাড়ছিল, এবং প্রতিক্রিয়াগুলি ধীর হয়ে যাচ্ছিল। যখন আমরা একটি কাঠামোতে স্যুইচ করি যা শেষ 6 রাউন্ডগুলি রাখে এবং পূর্ববর্তীগুলিকে সংক্ষিপ্ত করে, টোকেন খরচ 62% কমে যায় এবং সামঞ্জস্য বজায় রাখা হয়।
সাধারণ ভুল
- প্রম্পটে কর্তৃত্ব ছেড়ে দেওয়া: মডেল ভুলে যায়/বাইপাস; ACL ফিল্টার পুনরুদ্ধার বাধ্যতামূলক.
- প্রসঙ্গটি গণনা না করা: মডেলটি সঠিক উত্সটি উদ্ধৃত করতে পারে না।
- ফলো-আপ প্রশ্নকে স্বাধীন না করা: পুনরুদ্ধার অর্থহীনভাবে অনুসন্ধান করে।
- সব ইতিহাস অন্ধ পাঠানো: খরচ এবং বিলম্বে বিস্ফোরিত; সংক্ষিপ্ত করা
- দ্বন্দ্বের নিয়ম লিখছেন না: মডেলটি অনির্ভরযোগ্য উত্সকে অফিসিয়াল হিসাবে উপস্থাপন করতে পারে।
সংক্ষেপে
- পুনরুদ্ধার পর্বের সময় একটি মেটাডেটা ফিল্টার দিয়ে অ্যাক্সেস নিয়ন্ত্রণ প্রয়োগ করা হয়; অননুমোদিত অংশ কখনই আনা যাবে না।
- বিশ্বস্ত অ্যাপ্লিকেশন স্তরে পরিচয় এবং কর্তৃত্ব নির্ধারিত হয়; প্রম্পট নির্দেশনা শুধুমাত্র প্রতিরক্ষার একটি অতিরিক্ত স্তর।
- শক্তিশালী প্রম্পট টেমপ্লেট ভূমিকা, আচরণের নিয়ম (গ্রাউন্ডিং, অনুমতি জানি না, উত্স, বিরোধ), সংখ্যাযুক্ত প্রসঙ্গ এবং প্রশ্ন অন্তর্ভুক্ত করে।
- বহু-রাউন্ড কথোপকথনে, ফলো-আপ প্রশ্নগুলিকে জোড়া দেওয়া হয় এবং মডেলটি ইতিহাসের সাথে সামঞ্জস্যপূর্ণ উত্তর তৈরি করে।
- দীর্ঘ ইতিহাস সংক্ষিপ্ত করে, খরচ এবং প্রসঙ্গ উইন্ডো নিয়ন্ত্রণে রাখা হয়; এসিএল প্রতি রাউন্ডে পুনরায় প্রয়োগ করা হয়।
আবেদন টাস্ক
(1) আপনার নিজের সহকারীর (যেমন সবাই, বিভাগ, ব্যবস্থাপক) জন্য কমপক্ষে তিনটি অনুমোদন গোষ্ঠী সংজ্ঞায়িত করুন এবং কোন দলটির জন্য কোন দলিলের ধরন উন্মুক্ত তা একটি টেবিলে লিখুন। (2) আপনার নিজের ভূমিকা এবং সুর অনুসারে উপরের প্রম্পট টেমপ্লেটটি মানিয়ে নিন এবং লিখুন; প্রসঙ্গটি সংখ্যাযুক্ত এবং উত্সযুক্ত করুন। (3) একটি তিন-বৃত্তাকার বাস্তবসম্মত কথোপকথনের দৃশ্যকল্প লিখুন (প্রশ্ন → ফলো-আপ → ফলো-আপ) এবং প্রতিটি ফলো-আপ প্রশ্নের স্বতন্ত্র সংস্করণ ম্যানুয়ালি তৈরি করুন। (4) কেন এই পরিস্থিতিতে প্রতি রাউন্ডে ACL ফিল্টার পুনরায় প্রয়োগ করা উচিত তা এক বাক্যে ব্যাখ্যা করুন।
চেকলিস্ট
- [] আমি একটি পুনরুদ্ধার ফিল্টার দিয়ে অ্যাক্সেস নিয়ন্ত্রণ প্রয়োগ করি, আমি কেবল প্রম্পটের উপর নির্ভর করি না।
- [ ] আমি গ্রাউন্ডিং যোগ করি, আমি আমার প্রম্পট টেমপ্লেটে অনুমতি, উৎস এবং বিরোধের নিয়ম জানি না।
- [ ] আমি প্রসঙ্গ অংশগুলি সংখ্যাযুক্ত এবং রেফারেন্স দিচ্ছি।
- [ ] পুনরুদ্ধারের আগে আমি ফলো-আপ প্রশ্নগুলিকে স্বাধীন করি৷
- [ ] আমি দীর্ঘ কথোপকথনের ইতিহাস সংক্ষিপ্ত করে খরচ এবং উইন্ডো পরিচালনা করি।