Njësia 6 / 11

Kontrolli i aksesit, modeli i shpejtë dhe menaxhimi i bisedave

Fitimet:

  • Konfiguro kontrollin e aksesit (ACL) që filtron rikthimin bazuar në autoritetin e përdoruesit
  • Shkrimi i një shablloni solid të shpejtë që vendos saktë kontekstin dhe pyetjen e përdoruesit
  • Praktikimi i pavarësisë së pyetjeve dhe menaxhimit të historisë në biseda me shumë raunde

Ne themeluam arkitekturën; Tani le ta bëjmë atë të sigurt, të qëndrueshëm dhe bisedues. Ekzistojnë tre tema kritike në këtë njësi: (1) kontrolli i aksesit që filtron rikthimin bazuar në autoritetin e përdoruesit, (2) një shabllon i fuqishëm i shpejtë që vendos saktë kontekstin dhe pyetjen, (3) pyetja për pavarësinë dhe menaxhimin e historisë së bisedave në bisedën me shumë raunde. Pa këto tre, një asistent ose do të nxjerrë të dhëna, do të japë përgjigje jokonsistente ose do të ndahet në pyetjet vijuese.

Kontrolli i hyrjes: Të dhënat e paautorizuara nuk duhet të mbërrijnë kurrë

Rreziku më i madh i ndërmarrjes: Një dokument që një përdorues nuk duhet të shohë rrjedhje në përgjigje. Një gabim shumë i zakonshëm fillestar është t'i thuash modelit të 'tregojë dokumente të fshehura' menjëherë. Kjo nuk është e sigurt. Modeli mund të harrojë një udhëzim ose një injeksion i shpejtë mund ta shmangë atë. Vendi i duhur është faza e marrjes: pjesa e paautorizuar nuk duhet të sillet fare.

Mënyra për ta bërë këtë është të aplikoni metadatat e autoritetit (departamenti, roli, niveli i privatësisë) që vendosni në secilën pjesë si filtër gjatë kërkimit. Ju përcaktoni me siguri se kush është përdoruesi (identiteti dhe rolet) në shtresën e aplikacionit dhe shtoni një filtër ACL (Lista e Kontrollit të Qasjes) në thirrje.

# Filtrohet sipas autoritetit rikthim (konceptual) përdorues = vërtetoj(sesion) # vërtetuar nga burimi i besuar = përdorues.rolet + ["të gjithë"] # p.sh. ["HR", "admin"]rezultat = vektor_db.search( vektor=embed(pyetje), top_k=20, filter={"permission_group": {"in": lejohet}, # vetëm pjesë të lejuara "privacy": {"lte": user.level}} # poshtë nivelit)

Kujdes: Asnjëherë mos kërkoni autoritet nga modeli ose mos u mbështetni në kërkesën. Identiteti dhe autoriteti përcaktohen në shtresën e besuar të aplikacionit; Filtri i rikuperimit është i detyrueshëm, udhëzimi i shpejtë është vetëm një shtresë shtesë. "E shkrova në prompt" nuk është siguri.

Modeli i kërkesës së ngurtë

Modeli i shpejtë është skeleti që bashkon kontekstin, pyetjen e përdoruesit dhe udhëzimet e sjelljes nga marrja. Pjesë të një shablloni të mirë: përshkrimi i rolit/detyrës, rregullat e sjelljes (bazimi, nuk e di lejen, kërkesa për burime, toni), konteksti, pyetja.

Ju jeni një asistent i korporatës për burime njerëzore. Detyra juaj është t'u përgjigjeni pyetjeve të punonjësve VETËM bazuar në KONTEKSTIN e mëposhtëm. Rregullat: - Nëse përgjigja nuk është e qartë në kontekst, shkruani "Nuk mund të gjeja informacion për këtë në dokumentacion, kontrolloni me ekipin e burimeve njerëzore". Mos hamendësoni, mos shpikni.- Nëse burimet në kontekst bien ndesh, merrni si bazë politikën zyrtare dhe tregoni kontradiktën.- Shto burimin në të cilin mbështeteni si [Burimi: dosja, seksioni] në fund të çdo pretendimi.- Përgjigjuni me një gjuhë të shkurtër, të qartë dhe profesionale. KONTEKSTI:{numbered_parts}PYETJE: {user_question}

Numërimi i pjesëve të kontekstit ([1], [2], ...) e bën më të lehtë citimin e modelit. Gjithashtu, shkruani burimin në fillim të çdo pjese në mënyrë që modeli ta citojë saktë.

Këshillë: Mbajeni modelin e kërkesës konstante dhe vendosni gjithmonë variablat (kontekst, pyetje) në të njëjtat vende. Një shabllon fiks rrit testueshmërinë dhe zvogëlon kostot falë ruajtjes së shpejtë të memories në disa sisteme.

KONTEKSTI:[1] (Burimi: ik_el_kitabi.pdf, Seksioni 5.2) Pushimi vjetor me pagesë është 14 ditë...[2] (Burimi: ik_el_kitabi.pdf, Seksioni 5.4) Pushimi është 20 ditë për personat me më shumë se 5 vjet shërbim...

Prompt i dobët / Prompt i fortë

I dobët (pa bazë, pa burim, identitet të përzier):

Përdorni këto dokumente dhe përgjigjuni pyetjes: {pjese}Përdoruesi: {question}# Problem: modeli del jashtë kontekstit, krijon, nuk citon burime, # sillet në mënyrë arbitrare në kundërshtim.

E fortë (roli + rregullat + konteksti i numëruar + burimi i detyrueshëm):

Ju jeni... Vetëm mbështetuni në KONTEKST. Përndryshe, thuaj "nuk e di". Në konflikt, zgjidhni politikën zyrtare. Shtoni [Burimi: ...] për çdo pretendim. KONTEKSTI: [1]... [2]... PYETJA: {question}# Rezultati: përgjigje që është besnike ndaj kontekstit, me burim dhe menaxhon saktë kontradiktën.

Menaxhimi i bisedave me shumë turne

Një përdorues i vërtetë nuk bën një pyetje të vetme dhe e lë të qetë; flet. "Sa ditë pushim vjetor kam?" → "Po punonjësi 6-vjeçar?" → "Si mund të aplikoj për të?" Vetëm pyetja e dytë dhe e tretë janë të pakuptimta; varet nga konteksti i mëparshëm.

Ju duhet të zgjidhni dy probleme. E para është për rikthim: bëni pyetjen vijuese të pavarur (rishkrimi i pyetjes). "Po punonjësi 6-vjeçar?" → "Sa ditë pushim vjetor ka të drejtë një punonjësi 6-vjeçar?" Ju kërkoni me këtë pyetje të pavarur. E dyta është për prodhimin: ju gjithashtu i jepni modelit historikun e bisedës në mënyrë që të vazhdojë vazhdimisht.

# Dyhapësh: pavarur → kërko → gjenero me histori (konceptuale) pavarur = model.uret( "Përdor historikun e bisedës për ta bërë pyetjen të kuptueshme më vete:\nHistoria: {histori}\nPyetja: {follow_question}") kontekst = rikthim (i pavarur) # kërko me pyetje të pavarura = model.uret(promptext, prompt)(

Ndërsa historia rritet (bisedë e gjatë), dërgimi i të gjitha në një kohë bëhet i shtrenjtë dhe mbush dritaren e kontekstit. Zgjidhja: përmblidhni raundet e mëparshme ose mbani N raundet e fundit dhe reduktoni ato të mëparshme në përmbledhje. Kështu, kostot mbeten nën kontroll dhe konsistenca ruhet.

Statusi

problem

Zgjidhje

Pyetja vijuese nuk ka kontekst

Kërkimet e rikthimit janë të pakuptimta

Bëni pyetjen të pavarur (rishkruajeni)

bisedë e gjatë

Kostoja dhe dritarja fryhet

Përmbledhje e turneve të kaluara

Përdoruesi ka ndryshuar temën

Konteksti i vjetër infektohet

Zvogëloni ndikimin e kaluar në një temë të re

Autoriteti mund të ndryshojë midis turneve

Rreziku i rrjedhjes

Riaplikoni filtrin ACL çdo raund

Tre Mini Rastet

Rasti 1 - Gabimi i "Sigurisë" me nxitje. Një kompani vendosi dokumente konfidenciale pagash për një asistent që çdokush mund t'i kërkonte, por vetëm shkroi "mos jep informacione për pagat" në kërkesë. Modelja zbuloi diapazonin e pagave kur një përdorues e bëri pyetjen në mënyrë rrethrrotulluese. Kur filtri ACL iu shtua rikthimit (pjesët e pagave vetëm në rolin e HR), rrjedhja u mbyll plotësisht; sepse pjesa nuk sillet më kurrë.

Rasti 2 - Përndjekje pa kontekst. Në një asistent mbështetës, përdoruesi pyet "periudha e kthimit?" → "po në lidhje me produktin e prishur?" Sistemi solli pjesë të parëndësishme për "produktin e prishur". Kur u shtua pavarësia e pyetjes ("Sa zgjat periudha e kthimit për një produkt të prishur?"), shkalla e përgjigjes së saktë u rrit nga 44% në 90%.

Rasti 3 - E kaluara e fryrë. Në 30 raunde bisedash me një asistent, çdo telefonatë dërgoi të gjithë historinë; Kostoja po rritej 3 herë në raund, dhe përgjigjet po ngadalësoheshin. Kur kaluam në një strukturë që mbajti 6 raundet e fundit dhe përmblodhi ato të mëparshme, kostoja e shenjës ra me 62% dhe qëndrueshmëria u ruajt.

Gabimet e zakonshme

  • Lënia e autoritetit tek prompti: Modeli harron/anashkalon; Filtri ACL është i detyrueshëm gjatë marrjes.
  • Mos numërimi i kontekstit: Modeli nuk mund të citojë burimin e saktë.
  • Mos pavarësimi i pyetjes vijuese: Rikthimi kërkon pa kuptim.
  • Dërgimi i të gjithë historisë blind: Shpërthen në kosto dhe vonesë; përmbledh.
  • Mos shkrimi i rregullit të kontradiktës: Modeli mund të paraqesë burimin jo të besueshëm si zyrtar.

Në përmbledhje

  • Kontrolli i aksesit zbatohet me një filtër të meta të dhënave gjatë fazës së rikthimit; Pjesët e paautorizuara nuk duhet të sillen kurrë.
  • Identiteti dhe autoriteti përcaktohen në shtresën e besuar të aplikacionit; Udhëzimi i shpejtë është vetëm një shtresë shtesë e mbrojtjes.
  • Modeli i fuqishëm i shpejtë përfshin rolin, rregullat e sjelljes (bazimi, nuk e di lejen, burimin, konfliktin), kontekstin e numëruar dhe pyetjen.
  • Në bisedën me shumë raunde, pyetjet vijuese shkëputen dhe modeli prodhon përgjigje të qëndrueshme me historinë.
  • Duke përmbledhur historinë e gjatë, dritarja e kostos dhe kontekstit mbahet nën kontroll; ACL ri-aplikohet çdo raund.

Detyra e aplikimit

(1) Përcaktoni të paktën tre grupe autorizimi për asistentin tuaj (p.sh. të gjithë, departamenti, menaxheri) dhe shkruani në një tabelë se cili lloj dokumenti është i hapur për cilin grup. (2) Përshtatni dhe shkruani modelin e mësipërm të kërkesës sipas rolit dhe tonit tuaj; Bëni kontekstin të numëruar dhe me burim. (3) Shkruani një skenar bisede realiste me tre raunde (pyetje → vazhdim → vazhdim) dhe gjeneroni manualisht versione të pavarura të secilës pyetje vijuese. (4) Shpjegoni me një fjali pse filtri ACL duhet të riaplikohet çdo raund në këtë skenar.

listë kontrolli

  • [ ] Unë zbatoj kontrollin e aksesit me një filtër rikuperimi, thjesht nuk mbështetem në kërkesën.
  • [ ] Unë shtoj bazën, nuk e di lejen, burimin dhe rregullin e konfliktit në shabllonin tim të shpejtë.
  • [ ] I jap pjesët e kontekstit të numëruara dhe të referuara.
  • [ ] Unë i bëj pyetjet vijuese të pavarura përpara rikthimit.
  • [ ] Unë menaxhoj koston dhe dritaren duke përmbledhur historinë e gjatë të bisedave.