युनिट 6 / 11

प्रवेश नियंत्रण, प्रॉम्प्ट टेम्पलेट आणि संभाषण व्यवस्थापन

नफा:

  • वापरकर्ता अधिकारावर आधारित पुनर्प्राप्ती फिल्टर करणारे प्रवेश नियंत्रण (ACL) सेट करा
  • एक ठोस प्रॉम्प्ट टेम्पलेट लिहिणे जे संदर्भ आणि वापरकर्ता प्रश्न योग्यरित्या ठेवते
  • बहु-राउंड संभाषणांमध्ये प्रश्न स्वातंत्र्य आणि इतिहास व्यवस्थापनाचा सराव करणे

आम्ही आर्किटेक्चरची स्थापना केली; आता ते सुरक्षित, सुसंगत आणि संवादात्मक बनवूया. या युनिटमध्ये तीन गंभीर विषय आहेत: (1) प्रवेश नियंत्रण जे वापरकर्त्याच्या अधिकारावर आधारित पुनर्प्राप्ती फिल्टर करते, (2) एक मजबूत प्रॉम्प्ट टेम्पलेट जे संदर्भ आणि प्रश्न योग्यरित्या ठेवते, (3) बहु-राऊंड चॅटमध्ये प्रश्न स्वातंत्र्य आणि संभाषण इतिहास व्यवस्थापन. या तिघांशिवाय, सहाय्यक एकतर डेटा लीक करेल, विसंगत उत्तरे देईल किंवा फॉलो-अप प्रश्नांवर पडेल.

प्रवेश नियंत्रण: अनधिकृत डेटा कधीही येऊ नये

एंटरप्राइझचा सर्वात मोठा धोका: एक दस्तऐवज जो वापरकर्त्याला प्रतिसादात लीक दिसू नये. अगदी सामान्य नवशिक्याची चूक म्हणजे "मॉडेलला प्रॉम्प्टवर 'लपलेले दस्तऐवज दाखवायला' सांगा." हे सुरक्षित नाही. मॉडेल एखादी सूचना विसरू शकते किंवा त्वरित इंजेक्शन ते टाळू शकते. योग्य जागा पुनर्प्राप्ती टप्पा आहे: अनधिकृत तुकडा अजिबात आणू नये.

हे करण्याचा मार्ग म्हणजे तुम्ही शोध दरम्यान प्रत्येक भागावर फिल्टर म्हणून टाकलेला प्राधिकरण मेटाडेटा (विभाग, भूमिका, गोपनीयता स्तर) लागू करणे. तुम्ही ॲप्लिकेशन स्तरावर वापरकर्ता कोण आहे (ओळख आणि भूमिका) सुरक्षितपणे निर्धारित करता आणि कॉलमध्ये ACL (ऍक्सेस कंट्रोल लिस्ट) फिल्टर जोडता.

# प्राधिकरण पुनर्प्राप्तीद्वारे फिल्टर केलेले (वैकल्पिक) वापरकर्ता = प्रमाणीकरण(सत्र) # विश्वसनीय स्त्रोताकडून प्रमाणीकृत = user.roles + ["प्रत्येक"] # उदा. ["HR", "admin"]परिणाम = vektor_db.search( vektor=embed(प्रश्न), top_k=20, filter={"permission_group": {"in": अनुमत}, # फक्त अनुमत भाग "privacy": {"lte": user.level}} # पातळीच्या खाली)

खबरदारी: मॉडेलला कधीही अधिकारासाठी विचारू नका किंवा सूचनांवर अवलंबून राहू नका. ओळख आणि अधिकार अर्जाच्या विश्वसनीय स्तरावर निर्धारित केले जातात; पुनर्प्राप्ती फिल्टर अनिवार्य आहे, त्वरित सूचना फक्त एक अतिरिक्त स्तर आहे. "मी ते प्रॉम्प्टमध्ये लिहिले" ही सुरक्षा नाही.

सॉलिड प्रॉम्प्ट टेम्पलेट

प्रॉम्प्ट टेम्पलेट हा एक सांगाडा आहे जो संदर्भ, वापरकर्ता प्रश्न आणि पुनर्प्राप्तीमधील वर्तन सूचना एकत्र आणतो. चांगल्या टेम्प्लेटचे भाग: भूमिका/कार्य वर्णन, आचार नियम (ग्राउंडिंग, मला परवानगी माहित नाही, संसाधन विनंती, टोन), संदर्भ, प्रश्न.

तुम्ही कॉर्पोरेट एचआर असिस्टंट आहात. तुमचे कार्य फक्त खालील 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 वर्षांच्या कर्मचाऱ्याला किती दिवसांची वार्षिक रजा मिळू शकते?" तुम्ही या स्वतंत्र प्रश्नासह शोधा. दुसरे उत्पादनासाठी आहे: तुम्ही संभाषणाचा इतिहास मॉडेलला देखील द्याल जेणेकरून ते सातत्याने चालू राहील.

# द्वि-चरण: स्वतंत्र करा → शोध → इतिहासासह निर्माण करा (वैचारिक) स्वतंत्र = model.uret( "प्रश्न स्वतःहून समजण्याजोगा बनवण्यासाठी संभाषण इतिहास वापरा:\nइतिहास: {इतिहास}\nप्रश्न: {follow_question}") संदर्भ = पुनर्प्राप्ती(स्वतंत्र) # स्वतंत्र प्रश्नोत्तरासह शोध (संदर्भ_प्रोश्चन) = मॉडेलचे अनुसरण करा.

जसजसा इतिहास वाढतो (दीर्घ संभाषण), ते सर्व एका वेळी पाठवणे महाग होते आणि संदर्भ विंडो भरते. उपाय: मागील फेऱ्यांचा सारांश द्या किंवा शेवटच्या N फेऱ्या ठेवा आणि मागील फेऱ्या सारांशात कमी करा. त्यामुळे खर्च नियंत्रणात राहतात आणि सातत्य राखले जाते.

स्थिती

समस्या

उपाय

फॉलो-अप प्रश्नाला संदर्भ नाही

पुनर्प्राप्ती शोध निरर्थक

प्रश्न स्वतंत्र करा (पुन्हा लिहा)

लांब गप्पा

खर्च आणि विंडो swells

मागील टूरचा सारांश

वापरकर्त्याने विषय बदलला

जुन्या संदर्भाची लागण होते

नवीन विषयावरील पूर्वीचा प्रभाव कमी करा

टूर दरम्यान प्राधिकरण बदलू शकते

गळतीचा धोका

प्रत्येक फेरीत ACL फिल्टर पुन्हा लागू करा

तीन मिनी केसेस

केस 1 - प्रॉम्प्टसह "सुरक्षा" फसवणूक. एका कंपनीने सहाय्यकावर गोपनीय पगाराची कागदपत्रे ठेवली जी कोणीही विचारू शकेल, परंतु प्रॉम्प्टवर फक्त "पगाराची माहिती देऊ नका" असे लिहिले. एका वापरकर्त्याने राउंडअबाउट पद्धतीने प्रश्न विचारल्यावर मॉडेलने पगाराची श्रेणी लीक केली. जेव्हा ACL फिल्टर पुनर्प्राप्तीमध्ये जोडले गेले (केवळ HR भूमिकेसाठी वेतन भाग), गळती पूर्णपणे बंद झाली; कारण तो भाग आता कधीच आणला जात नाही.

केस 2 - संदर्भहीन पाठलाग. सपोर्ट असिस्टंटमध्ये, वापरकर्ता "रिटर्न पिरियड?" → "तुटलेल्या उत्पादनाचे काय?" सिस्टमने "तुटलेल्या उत्पादनासाठी" असंबद्ध भाग आणले. जेव्हा प्रश्न स्वातंत्र्य जोडले गेले ("तुटलेल्या उत्पादनासाठी परतावा कालावधी किती आहे?"), अचूक उत्तर दर 44% वरून 90% पर्यंत वाढला.

केस 3 - सुजलेला भूतकाळ. सहाय्यकासह चॅटच्या 30 फेऱ्यांमध्ये, प्रत्येक कॉलने संपूर्ण इतिहास पाठविला; खर्च प्रति फेरी 3 पट वाढत होता आणि प्रतिसाद कमी होत होते. जेव्हा आम्ही शेवटच्या 6 फेऱ्या ठेवणाऱ्या आणि मागील फेऱ्यांचा सारांश देणाऱ्या संरचनेवर स्विच केले, तेव्हा टोकनची किंमत 62% कमी झाली आणि सातत्य राखले गेले.

सामान्य चुका

  • प्रॉम्प्टवर अधिकार सोडणे: मॉडेल विसरते/बायपास; पुनर्प्राप्तीवर ACL फिल्टर अनिवार्य आहे.
  • संदर्भाची गणना करत नाही: मॉडेल योग्य स्त्रोत उद्धृत करू शकत नाही.
  • फॉलो-अप प्रश्न स्वतंत्र न करणे: पुनर्प्राप्ती निरर्थकपणे शोधते.
  • सर्व इतिहास आंधळा पाठवत आहे: खर्च आणि विलंब मध्ये विस्फोट; सारांश
  • विरोधाभास नियम लिहित नाही: मॉडेल अधिकृत म्हणून अविश्वसनीय स्रोत सादर करू शकते.

सारांशात

  • पुनर्प्राप्ती टप्प्यात मेटाडेटा फिल्टरसह प्रवेश नियंत्रण लागू केले जाते; अनधिकृत भाग कधीही आणू नयेत.
  • ओळख आणि अधिकार विश्वसनीय अनुप्रयोग स्तरावर निर्धारित केले जातात; त्वरित सूचना ही केवळ संरक्षणाची एक अतिरिक्त थर आहे.
  • मजबूत प्रॉम्प्ट टेम्पलेटमध्ये भूमिका, आचार नियम (ग्राउंडिंग, परवानगी माहित नाही, स्त्रोत, संघर्ष), क्रमांकित संदर्भ आणि प्रश्न समाविष्ट आहेत.
  • बहु-राऊंड संभाषणात, फॉलो-अप प्रश्न जोडले जातात आणि मॉडेल इतिहासासह सुसंगत उत्तरे तयार करतात.
  • दीर्घ इतिहासाचा सारांश देऊन, खर्च आणि संदर्भ विंडो नियंत्रणात ठेवली जाते; ACL प्रत्येक फेरीत पुन्हा लागू केले जाते.

अर्ज कार्य

(1) तुमच्या स्वतःच्या सहाय्यकासाठी (उदा. प्रत्येकजण, विभाग, व्यवस्थापक) किमान तीन अधिकृत गट परिभाषित करा आणि कोणत्या गटासाठी कोणता दस्तऐवज प्रकार खुला आहे ते टेबलमध्ये लिहा. (२) वरील प्रॉम्प्ट टेम्पलेट तुमच्या स्वतःच्या भूमिकेनुसार आणि स्वरानुसार स्वीकारा आणि लिहा; संदर्भ क्रमांकित आणि स्त्रोत बनवा. (3) तीन-फेरीतील वास्तववादी संभाषण परिदृश्य (प्रश्न → फॉलो-अप → फॉलो-अप) लिहा आणि प्रत्येक फॉलो-अप प्रश्नाच्या स्वतंत्र आवृत्त्या मॅन्युअली तयार करा. (4) या परिस्थितीत प्रत्येक फेरीत ACL फिल्टर का पुन्हा लागू केले जावे हे एका वाक्यात स्पष्ट करा.

चेकलिस्ट

  • [ ] मी पुनर्प्राप्ती फिल्टरसह प्रवेश नियंत्रण लागू करतो, मी फक्त प्रॉम्प्टवर अवलंबून नाही.
  • [ ] मी माझ्या प्रॉम्प्ट टेम्पलेटमध्ये ग्राउंडिंग जोडतो, मला परवानगी, स्त्रोत आणि संघर्ष नियम माहित नाही.
  • [ ] मी संदर्भ भाग क्रमांकित आणि संदर्भित देतो.
  • [ ] मी पुनर्प्राप्तीपूर्वी फॉलो-अप प्रश्न स्वतंत्र करतो.
  • मी दीर्घ संभाषण इतिहासाचा सारांश देऊन खर्च आणि विंडो व्यवस्थापित करतो.