యూనిట్ 6 / 11

యాక్సెస్ నియంత్రణ, ప్రాంప్ట్ టెంప్లేట్ మరియు సంభాషణ నిర్వహణ

లాభాలు:

  • వినియోగదారు అధికారం ఆధారంగా తిరిగి పొందడాన్ని ఫిల్టర్ చేసే యాక్సెస్ కంట్రోల్ (ACL)ని సెటప్ చేయండి
  • సందర్భం మరియు వినియోగదారు ప్రశ్నను సరిగ్గా ఉంచే సాలిడ్ ప్రాంప్ట్ టెంప్లేట్‌ను వ్రాయడం
  • బహుళ రౌండ్ సంభాషణలలో ప్రశ్న స్వతంత్రత మరియు చరిత్ర నిర్వహణను అభ్యసించడం

మేము నిర్మాణాన్ని స్థాపించాము; ఇప్పుడు దానిని సురక్షితంగా, స్థిరంగా మరియు సంభాషణాత్మకంగా చేద్దాం. ఈ యూనిట్‌లో మూడు క్లిష్టమైన అంశాలు ఉన్నాయి: (1) వినియోగదారు అధికారం ఆధారంగా తిరిగి పొందడాన్ని ఫిల్టర్ చేసే యాక్సెస్ నియంత్రణ, (2) సందర్భం మరియు ప్రశ్నను సరిగ్గా ఉంచే బలమైన ప్రాంప్ట్ టెంప్లేట్, (3) బహుళ రౌండ్ చాట్‌లో ప్రశ్న స్వాతంత్ర్యం మరియు సంభాషణ చరిత్ర నిర్వహణ. ఈ మూడు లేకుండా, సహాయకుడు డేటాను లీక్ చేస్తాడు, అస్థిరమైన సమాధానాలు ఇస్తాడు లేదా ఫాలో-అప్ ప్రశ్నలతో విడిపోతాడు.

యాక్సెస్ నియంత్రణ: అనధికార డేటా ఎప్పుడూ రాకూడదు

ఎంటర్‌ప్రైజ్ అతిపెద్ద ప్రమాదం: వినియోగదారు చూడకూడని పత్రం ప్రతిస్పందనలోకి లీక్ అవుతుంది. చాలా సాధారణ అనుభవశూన్యుడు పొరపాటు ఏమిటంటే "ప్రాంప్ట్‌లో 'దాచిన పత్రాలను చూపించమని' మోడల్‌కు చెప్పడం." ఇది సురక్షితం కాదు. మోడల్ సూచనలను మరచిపోవచ్చు లేదా తక్షణ ఇంజెక్షన్ దానిని తప్పించుకోవచ్చు. సరైన స్థలం తిరిగి పొందే దశ: అనధికార భాగాన్ని అస్సలు తీసుకురాకూడదు.

శోధన సమయంలో మీరు ప్రతి భాగంపై ఫిల్టర్‌గా ఉంచిన అధికార మెటాడేటా (డిపార్ట్‌మెంట్, పాత్ర, గోప్యతా స్థాయి)ని వర్తింపజేయడం దీనికి మార్గం. మీరు అప్లికేషన్ లేయర్‌లో వినియోగదారు ఎవరో (గుర్తింపు మరియు పాత్రలు) సురక్షితంగా నిర్ణయిస్తారు మరియు కాల్‌కి ACL (యాక్సెస్ కంట్రోల్ లిస్ట్) ఫిల్టర్‌ని జోడించండి.

# అథారిటీ రీట్రీవల్ ద్వారా ఫిల్టర్ చేయబడింది (సంభావిత) వినియోగదారు = ప్రామాణీకరించబడింది(సెషన్) # విశ్వసనీయ మూలం నుండి ప్రామాణీకరించబడింది = user.roles + ["ప్రతి ఒక్కరూ"] # ఉదా. ["HR", "admin"]ఫలితం = vektor_db.search( vektor=embed(question), top_k=20, filter={"permission_group": {"in": அனுமதிக்கப்பட்ட}, # మాత్రమే అనుమతించబడిన భాగాలు "గోప్యత": {"lte": user.level}} # స్థాయి కంటే తక్కువ)

హెచ్చరిక: అధికారం కోసం మోడల్‌ను ఎప్పుడూ అడగవద్దు లేదా ప్రాంప్ట్‌పై ఆధారపడవద్దు. అప్లికేషన్ యొక్క విశ్వసనీయ పొరలో గుర్తింపు మరియు అధికారం నిర్ణయించబడతాయి; రిట్రీవల్ ఫిల్టర్ తప్పనిసరి, ప్రాంప్ట్ సూచన కేవలం అదనపు లేయర్. "నేను ప్రాంప్ట్‌లో వ్రాసాను" అనేది భద్రత కాదు.

సాలిడ్ ప్రాంప్ట్ టెంప్లేట్

ప్రాంప్ట్ టెంప్లేట్ అనేది రిట్రీవల్ నుండి సందర్భం, వినియోగదారు ప్రశ్న మరియు ప్రవర్తన సూచనలను ఒకచోట చేర్చే అస్థిపంజరం. మంచి టెంప్లేట్ యొక్క భాగాలు: పాత్ర/పని వివరణ, ప్రవర్తనా నియమాలు (గ్రౌండింగ్, నాకు అనుమతి తెలియదు, వనరుల అభ్యర్థన, టోన్), సందర్భం, ప్రశ్న.

మీరు కార్పొరేట్ HR అసిస్టెంట్. కింది సందర్భం ఆధారంగా మాత్రమే ఉద్యోగి ప్రశ్నలకు సమాధానం ఇవ్వడం మీ పని. నియమాలు:- సమాధానం సందర్భోచితంగా స్పష్టంగా లేకుంటే "నేను డాక్యుమెంటేషన్‌లో దీని గురించి సమాచారాన్ని కనుగొనలేకపోయాను, HR బృందంతో తనిఖీ చేయండి" అని వ్రాయండి. ఊహించవద్దు, తయారు చేయవద్దు.- సందర్భంలోని మూలాధారాలు వైరుధ్యంలో ఉన్నట్లయితే, అధికారిక విధానాన్ని ప్రాతిపదికగా తీసుకుని, వైరుధ్యాన్ని పేర్కొనండి.- ప్రతి దావా చివరిలో మీరు ఆధారపడే మూలాన్ని [మూలం: ఫైల్, విభాగం]గా జోడించండి.- చిన్న, స్పష్టమైన మరియు వృత్తిపరమైన భాషలో సమాధానం ఇవ్వండి. CONTEXT:{numbered_parts}QUESTION: {user_question}

సందర్భ భాగాల సంఖ్య ([1], [2], ...) మోడల్‌ను ఉదహరించడం సులభం చేస్తుంది. అలాగే, ప్రతి భాగం ప్రారంభంలో మూలాన్ని వ్రాయండి, తద్వారా మోడల్ దానిని సరిగ్గా ఉదహరించవచ్చు.

చిట్కా: ప్రాంప్ట్ టెంప్లేట్‌ను స్థిరంగా ఉంచండి మరియు ఎల్లప్పుడూ అదే ప్రదేశాలలో వేరియబుల్స్ (సందర్భం, ప్రశ్న) ఉంచండి. స్థిర టెంప్లేట్ రెండూ పరీక్ష సామర్థ్యాన్ని పెంచుతాయి మరియు కొన్ని సిస్టమ్‌లలో ప్రాంప్ట్ కాషింగ్ కారణంగా ఖర్చులను తగ్గిస్తాయి.

సందర్భం:[1] (మూలం: ik_el_kitabi.pdf, విభాగం 5.2) వార్షిక చెల్లింపు సెలవు 14 రోజులు...[2] (మూలం: ik_el_kitabi.pdf, సెక్షన్ 5.4) 5 సంవత్సరాల కంటే ఎక్కువ సర్వీస్ ఉన్న వ్యక్తులకు 20 రోజులు సెలవు...

బలహీనమైన ప్రాంప్ట్ / బలమైన ప్రాంప్ట్

బలహీనం (గ్రౌండింగ్ లేదు, మూలం లేదు, గుర్తింపు మిశ్రమం):

ఈ పత్రాలను ఉపయోగించండి మరియు ప్రశ్నకు సమాధానమివ్వండి: {parts}యూజర్: {question}# సమస్య: మోడల్ సందర్భం నుండి బయటపడుతుంది, రూపొందించబడింది, మూలాలను ఉదహరించదు, # వైరుధ్యంలో ఏకపక్షంగా ప్రవర్తిస్తుంది.

బలమైన (పాత్ర + నియమాలు + సంఖ్యా సందర్భం + మూలం తప్పనిసరి):

మీరు... కేవలం CONTEXTపై ఆధారపడండి. లేకపోతే, "నాకు తెలియదు" అని చెప్పండి. వైరుధ్యంలో, అధికారిక విధానాన్ని ఎంచుకోండి. ప్రతి దావాకు [మూలం: ...] జోడించండి.CONTEXT: [1]... [2]... ప్రశ్న: {question}# ఫలితం: సందర్భానికి నమ్మకంగా ఉండే సమాధానం, మూలాధారం మరియు వైరుధ్యాన్ని సరిగ్గా నిర్వహించడం.

మల్టీ-టూర్ సంభాషణ నిర్వహణ

నిజమైన వినియోగదారు ఒక్క ప్రశ్నను అడగడు మరియు దానిని ఒంటరిగా వదిలివేయడు; మాట్లాడుతుంది. "నాకు వార్షిక సెలవు ఎన్ని రోజులు?" → "6 సంవత్సరాల ఉద్యోగి గురించి ఏమిటి?" → "నేను దాని కోసం ఎలా దరఖాస్తు చేయాలి?" రెండవ మరియు మూడవ ప్రశ్నలు మాత్రమే అర్థరహితమైనవి; మునుపటి సందర్భం మీద ఆధారపడి ఉంటుంది.

మీరు రెండు సమస్యలను పరిష్కరించాలి. మొదటిది తిరిగి పొందడం కోసం: తదుపరి ప్రశ్నను స్వతంత్రంగా చేయండి (ప్రశ్నను తిరిగి వ్రాయడం). "6 సంవత్సరాల ఉద్యోగి గురించి ఏమిటి?" → "6 సంవత్సరాల ఉద్యోగికి ఎన్ని రోజుల వార్షిక సెలవులకు అర్హత ఉంది?" మీరు ఈ స్వతంత్ర ప్రశ్నతో శోధించండి. రెండవది ఉత్పత్తి కోసం: మీరు మోడల్‌కు సంభాషణ చరిత్రను కూడా ఇస్తారు, తద్వారా ఇది స్థిరంగా కొనసాగుతుంది.

# రెండు-దశ: స్వతంత్రంగా → శోధన → చరిత్రతో (సంభావిత) స్వతంత్రంగా రూపొందించండి = model.uret( "ప్రశ్నను దాని స్వంతదానిపై అర్థం చేసుకునేలా సంభాషణ చరిత్రను ఉపయోగించండి:\nచరిత్ర: {history}\nప్రశ్న: {follow_question}") సందర్భం = తిరిగి పొందడం(స్వతంత్రం) # స్వతంత్ర ప్రశ్న సమాధానాలు (ప్రోల్యూషన్ చరిత్ర)తో శోధించండి(ప్రశ్నలు, నమూనా)

చరిత్ర పెరిగేకొద్దీ (సుదీర్ఘ సంభాషణ), అన్నింటినీ ఒకేసారి పంపడం ఖరీదైనది మరియు సందర్భ విండోను నింపుతుంది. పరిష్కారం: మునుపటి రౌండ్‌లను సంగ్రహించండి లేదా చివరి N రౌండ్‌లను ఉంచండి మరియు మునుపటి వాటిని సారాంశానికి తగ్గించండి. అందువలన, ఖర్చులు నియంత్రణలో ఉంటాయి మరియు స్థిరత్వం నిర్వహించబడుతుంది.

స్థితి

సమస్య

పరిష్కారం

తదుపరి ప్రశ్నకు సందర్భం లేదు

అన్వేషణ అర్థరహితం

ప్రశ్నను స్వతంత్రంగా చేయండి (తిరిగి వ్రాయండి)

సుదీర్ఘ చాట్

ఖర్చు మరియు విండో ఉబ్బు

గత పర్యటనల సారాంశం

వినియోగదారు టాపిక్ మార్చారు

పాత సందర్భం సోకుతుంది

కొత్త అంశంపై గత ప్రభావాన్ని తగ్గించండి

పర్యటనల మధ్య అధికారం మారవచ్చు

లీకేజీ ప్రమాదం

ప్రతి రౌండ్‌లో ACL ఫిల్టర్‌ని మళ్లీ వర్తించండి

మూడు మినీ కేసులు

కేసు 1 — ప్రాంప్ట్‌తో “భద్రత” తప్పు. ఒక కంపెనీ ఎవరైనా అడిగేలా ఒక అసిస్టెంట్‌పై రహస్య జీతం పత్రాలను ఉంచింది, కానీ ప్రాంప్ట్‌లో "జీతం సమాచారం ఇవ్వవద్దు" అని మాత్రమే రాసింది. ఒక వినియోగదారు రౌండ్‌అబౌట్ మార్గంలో ప్రశ్న అడిగినప్పుడు మోడల్ జీతం పరిధిని లీక్ చేసింది. ACL ఫిల్టర్ పునరుద్ధరణకు జోడించబడినప్పుడు (HR పాత్రకు మాత్రమే జీతం భాగాలు), లీక్ పూర్తిగా మూసివేయబడింది; ఎందుకంటే ఆ భాగం ఇకపై తీసుకురాబడదు.

కేసు 2 - సందర్భం లేని స్టాకింగ్. సపోర్ట్ అసిస్టెంట్‌లో, యూజర్ "రిటర్న్ పీరియడ్?" → "విరిగిన ఉత్పత్తి గురించి ఏమిటి?" వ్యవస్థ "విరిగిన ఉత్పత్తి" కోసం అసంబద్ధమైన భాగాలను తీసుకువచ్చింది. ప్రశ్న స్వతంత్రత జోడించబడినప్పుడు ("విరిగిన ఉత్పత్తికి తిరిగి వచ్చే కాలం ఎంత?"), సరైన సమాధాన రేటు 44% నుండి 90%కి పెరిగింది.

కేసు 3 - ఉబ్బిన గతం. సహాయకుడితో 30 రౌండ్ల చాట్‌లలో, ప్రతి కాల్ మొత్తం చరిత్రను పంపింది; ప్రతి రౌండ్‌కు ఖర్చు 3 రెట్లు పెరుగుతోంది మరియు ప్రతిస్పందనలు మందగించాయి. మేము చివరి 6 రౌండ్‌లను ఉంచి, మునుపటి వాటిని సంగ్రహించిన నిర్మాణానికి మారినప్పుడు, టోకెన్ ధర 62% తగ్గింది మరియు స్థిరత్వం నిర్వహించబడుతుంది.

సాధారణ తప్పులు

  • ప్రాంప్ట్‌కు అధికారాన్ని వదిలివేయడం: మోడల్ మర్చిపోయి/బైపాస్ చేస్తుంది; తిరిగి పొందేటప్పుడు ACL ఫిల్టర్ తప్పనిసరి.
  • సందర్భాన్ని లెక్కించడం లేదు: మోడల్ సరైన మూలాన్ని పేర్కొనలేదు.
  • తదుపరి ప్రశ్నను స్వతంత్రంగా ఉంచడం లేదు: తిరిగి పొందడం అర్థరహితంగా శోధిస్తుంది.
  • హిస్టరీ బ్లైండ్‌ని పంపుతోంది: ఖర్చు మరియు ఆలస్యంతో పేలుతుంది; సంగ్రహించండి.
  • వైరుధ్య నియమాన్ని వ్రాయడం లేదు: మోడల్ నమ్మదగని మూలాన్ని అధికారికంగా ప్రదర్శించవచ్చు.

సారాంశంలో

  • పునరుద్ధరణ దశలో మెటాడేటా ఫిల్టర్‌తో యాక్సెస్ నియంత్రణ అమలు చేయబడుతుంది; అనధికార విడిభాగాలను ఎప్పుడూ తీసుకురాకూడదు.
  • గుర్తింపు మరియు అధికారం విశ్వసనీయ అప్లికేషన్ లేయర్‌లో నిర్ణయించబడతాయి; ప్రాంప్ట్ సూచన రక్షణ యొక్క అదనపు పొర మాత్రమే.
  • బలమైన ప్రాంప్ట్ టెంప్లేట్‌లో పాత్ర, ప్రవర్తనా నియమాలు (గ్రౌండింగ్, అనుమతి తెలియదు, మూలం, వైరుధ్యం), సంఖ్యా సందర్భం మరియు ప్రశ్న ఉంటాయి.
  • బహుళ-రౌండ్ సంభాషణలో, తదుపరి ప్రశ్నలు వేరుచేయబడతాయి మరియు మోడల్ చరిత్రతో స్థిరమైన సమాధానాలను ఉత్పత్తి చేస్తుంది.
  • సుదీర్ఘ చరిత్రను సంగ్రహించడం ద్వారా, ఖర్చు మరియు సందర్భ విండో నియంత్రణలో ఉంచబడుతుంది; ACL ప్రతి రౌండ్‌కు మళ్లీ వర్తించబడుతుంది.

అప్లికేషన్ టాస్క్

(1) మీ స్వంత సహాయకుడి కోసం కనీసం మూడు అధికార సమూహాలను నిర్వచించండి (ఉదా. ప్రతి ఒక్కరూ, డిపార్ట్‌మెంట్, మేనేజర్) మరియు ఏ సమూహానికి ఏ పత్ర రకాన్ని తెరవాలో పట్టికలో వ్రాయండి. (2) మీ స్వంత పాత్ర మరియు స్వరానికి అనుగుణంగా పై ప్రాంప్ట్ టెంప్లేట్‌ను స్వీకరించండి మరియు వ్రాయండి; సందర్భాన్ని సంఖ్యగా మరియు మూలంగా చేయండి. (3) మూడు రౌండ్ల వాస్తవిక సంభాషణ దృశ్యాన్ని వ్రాయండి (ప్రశ్న → ఫాలో-అప్ → ఫాలో-అప్) మరియు ప్రతి తదుపరి ప్రశ్నకు మాన్యువల్‌గా స్వతంత్ర సంస్కరణలను రూపొందించండి. (4) ఈ దృష్టాంతంలో ప్రతి రౌండ్‌కు ACL ఫిల్టర్‌ను ఎందుకు మళ్లీ వర్తింపజేయాలో ఒక వాక్యంలో వివరించండి.

చెక్లిస్ట్

  • [ ] నేను రిట్రీవల్ ఫిల్టర్‌తో యాక్సెస్ నియంత్రణను అమలు చేస్తాను, నేను ప్రాంప్ట్‌పై ఆధారపడను.
  • [ ] నేను గ్రౌండింగ్‌ని జోడిస్తాను, నా ప్రాంప్ట్ టెంప్లేట్‌కు అనుమతి, మూలం మరియు వైరుధ్య నియమం నాకు తెలియదు.
  • [ ] నేను సందర్భోచిత భాగాలను నంబర్ చేసి మరియు సూచించాను.
  • [ ] నేను తిరిగి పొందే ముందు తదుపరి ప్రశ్నలను స్వతంత్రంగా తయారు చేస్తాను.
  • [ ] నేను సుదీర్ఘ సంభాషణ చరిత్రను సంగ్రహించడం ద్వారా ఖర్చు మరియు విండోను నిర్వహిస్తాను.