Ieguvumi:
- Iestatiet piekļuves kontroli (ACL), kas filtrē izguvi, pamatojoties uz lietotāja pilnvarām
- Uzrakstiet stabilu uzvednes veidni, kas pareizi ievieto kontekstu un lietotāja jautājumu
- Jautājumu neatkarības un vēstures pārvaldības praktizēšana daudzkārtējās sarunās
Mēs izveidojām arhitektūru; Tagad padarīsim to drošu, konsekventu un sarunvalodu. Šajā nodaļā ir trīs svarīgas tēmas: (1) piekļuves kontrole, kas filtrē izguvi, pamatojoties uz lietotāja pilnvarām, (2) stabila uzvednes veidne, kas pareizi ievieto kontekstu un jautājumu, (3) jautājumu neatkarība un sarunu vēstures pārvaldība vairāku kārtu tērzēšanā. Bez šiem trim palīgiem vai nu noplūdīs dati, sniegs nekonsekventas atbildes vai sabruks uz papildu jautājumiem.
Piekļuves kontrole: nesankcionēti dati nekad nedrīkst nonākt
Uzņēmuma lielākais risks: atbildē noplūst dokuments, kuru lietotājam nevajadzētu redzēt. Ļoti izplatīta iesācēju kļūda ir "piesakot modelim "parādīt slēptos dokumentus". Tas nav droši. Modelis var aizmirst norādījumu vai tūlītēja injekcija var izvairīties no tā. Pareizā vieta ir izguves fāze: neatļautu gabalu vispār nevajadzētu ienest.
Veids, kā to izdarīt, ir izmantot autoritātes metadatus (nodaļu, lomu, privātuma līmeni), ko meklēšanas laikā ievietojat katrai daļai kā filtru. Jūs droši nosakāt, kas ir lietotājs (identitāte un lomas) lietojumprogrammas slānī, un zvanam pievienojat ACL (piekļuves kontroles saraksta) filtru.
# Filtrēts pēc autoritātes izguves (konceptuālais) lietotājs = autentificēt(sesija) # autentificēts no uzticama avota = user.roles + ["visi"] # piem. ["HR", "admin"]rezultāts = vektor_db.search(vektori = iegult(jautājums), top_k = 20, filtrs = {"permission_group": {"in": atļauts}, # tikai atļautās daļas "privacy": {"lte": user.level}} # zem līmeņa)
Uzmanību: nekad nelūdziet modelim autoritāti un nepaļaujieties uz uzvedni. Identitāte un autoritāte tiek noteikta lietojumprogrammas uzticamajā līmenī; Izguves filtrs ir obligāts, tūlītēja instrukcija ir tikai papildu slānis. “Es to uzrakstīju uzvednē” nav drošība.
Cieta uzvednes veidne
Uzvednes veidne ir skelets, kas apvieno kontekstu, lietotāja jautājumu un uzvedības norādījumus no izguves. Labas veidnes daļas: lomas/uzdevuma apraksts, uzvedības noteikumi (zemējums, atļauju nezinu, resursa pieprasījums, tonis), konteksts, jautājums.
Jūs esat uzņēmuma personāla asistents. Jūsu uzdevums ir atbildēt uz darbinieku jautājumiem, TIKAI pamatojoties uz šādu KONTEKSTU. Noteikumi:- Ja atbilde nav skaidri redzama kontekstā, ierakstiet "Es nevarēju atrast informāciju par to dokumentācijā, sazinieties ar HR komandu". Nedomājiet, neizdomājiet.- Ja avoti kontekstā ir pretrunā, ņemiet par pamatu oficiālo politiku un norādiet pretrunu.- Katras pretenzijas beigās pievienojiet avotu, uz kuru paļaujaties, kā [Avots: fails, sadaļa].- Atbildiet īsā, skaidrā un profesionālā valodā. KONTEKSTS:{numbered_parts}JAUTĀJUMS: {user_question}
Konteksta daļu numerācija ([1], [2], ...) atvieglo modeļa citēšanu. Katra gabala sākumā ierakstiet arī avotu, lai modelis varētu to pareizi citēt.
Padoms. Saglabājiet uzvednes veidni nemainīgu un vienmēr ievietojiet mainīgos (kontekstu, jautājumu) tajās pašās vietās. Fiksēta veidne gan palielina pārbaudāmību, gan samazina izmaksas, pateicoties ātrai kešatmiņai dažās sistēmās.
KONTEKSTS:[1] (Avots: ik_el_kitabi.pdf, 5.2. sadaļa) Ikgadējais apmaksātais atvaļinājums ir 14 dienas...[2] (Avots: ik_el_kitabi.pdf, 5.4. sadaļa) Atvaļinājums ir 20 dienas personām ar darba stāžu vairāk nekā 5 gadus...
Vāja uzvedne / spēcīga uzvedne
Vāji (bez zemējuma, nav avota, identitāte ir sajaukta):
Izmantojiet šos dokumentus un atbildiet uz jautājumu: {parts}Lietotājs: {question}# Problēma: modelis iziet no konteksta, izdomā, neatsauc avotus, # uzvedas patvaļīgi pretrunā.
Spēcīgs (loma + noteikumi + numurēts konteksts + obligāts avots):
Jūs esat... Vienkārši paļaujieties uz KONTEKSTU. Pretējā gadījumā sakiet "es nezinu". Konfliktu gadījumā izvēlieties oficiālo politiku. Katram apgalvojumam pievienojiet [Avots: ...].KONTEKSTS: [1]... [2]... JAUTĀJUMS: {jautājums}# Rezultāts: atbilde, kas atbilst kontekstam, ir iegūta un pareizi pārvalda pretrunu.
Vairāku ceļojumu sarunu pārvaldība
Īsts lietotājs neuzdod nevienu jautājumu un neatstāj to mierā; runā. "Cik dienas man ir ikgadējā atvaļinājuma?" → "Kā ir ar 6 gadus veco darbinieku?" → "Kā pieteikties?" Otrajam un trešajam jautājumam vien nav nozīmes; atkarīgs no iepriekšējā konteksta.
Jums jāatrisina divas problēmas. Pirmais ir paredzēts izguvei: padariet papildu jautājumu neatkarīgu (jautājuma pārrakstīšana). "Kā ir ar 6 gadus veco darbinieku?" → "Cik dienu ikgadējais atvaļinājums pienākas 6 gadus vecam darbiniekam?" Jūs meklējat ar šo neatkarīgo jautājumu. Otrais ir paredzēts ražošanai: jūs arī nododat modelim sarunu vēsturi, lai tā konsekventi turpinātos.
# Divpakāpju: neatkarīga → meklēšana → ģenerēt ar vēsturi (konceptuāli) neatkarīgs = model.uret( "Izmantojiet sarunu vēsturi, lai jautājums būtu saprotams pats par sevi:\nVēsture: {vēsture}\nJautājums: {follow_question}") konteksts = izguve(neatkarīgs) # meklēt ar neatkarīgu jautājumu atbildi vēsture = model.uret(prompt, follow(contexts)
Vēsturei augot (garai sarunai), tās visu sūtīšana vienlaikus kļūst dārga un aizpilda konteksta logu. Risinājums: apkopot iepriekšējās kārtas vai paturēt pēdējās N kārtas un samazināt iepriekšējās uz kopsavilkumu. Tādējādi izmaksas tiek kontrolētas un tiek saglabāta konsekvence.
Statuss
problēma
Risinājums
Turpmākajam jautājumam nav konteksta
Izguves meklēšana bezjēdzīga
Padarīt jautājumu neatkarīgu (pārrakstīt)
gara tērzēšana
Izmaksas un logs uzbriest
Iepriekšējo ekskursiju kopsavilkums
Lietotājs mainīja tēmu
Vecais konteksts tiek inficēts
Samaziniet pagātnes ietekmi uz jaunu tēmu
Autoritāte dažādās ekskursijās var atšķirties
Noplūdes risks
Atkārtoti uzklājiet ACL filtru katrā kārtā
Trīs mini futrāļi
1. gadījums — “Drošības” kļūda ar uzvedni. Kāds uzņēmums uzlika asistentam konfidenciālus algas dokumentus, kurus varēja pajautāt ikviens, bet uz uzvednes uzrakstīja tikai "nesniedziet informāciju par algu". Modelis atklāja algu diapazonu, kad lietotājs uzdeva jautājumu apļveida veidā. Kad izguvei tika pievienots ACL filtrs (algas daļas tikai HR lomai), noplūde tika pilnībā aizvērta; jo daļu vairs nekad neatnes.
2. gadījums — izsekošana bez konteksta. Atbalsta palīgā lietotājs jautā "atgriešanās periods?" → "kā ar sabojāto produktu?" Sistēma atnesa "salauztajam produktam" neatbilstošas daļas. Pievienojot jautājumu neatkarību ("Cik ilgs ir bojātas preces atgriešanas termiņš?"), pareizo atbilžu rādītājs pieauga no 44% līdz 90%.
3. gadījums — uztūkusi pagātne. 30 tērzēšanas kārtās ar palīgu katrs zvans nosūtīja visu vēsturi; Izmaksas pieauga 3 reizes vienā kārtā, un atbildes palēninājās. Kad mēs pārgājām uz struktūru, kas saglabāja pēdējās 6 kārtas un apkopojām iepriekšējās, marķiera izmaksas samazinājās par 62%, un konsekvence tika saglabāta.
Biežas kļūdas
- Autoritātes atstāšana uzvednei: modelis aizmirst/ apiet; ACL filtrs ir obligāts izguves laikā.
- Neuzskaita kontekstu: modelī nevar norādīt pareizo avotu.
- Papildjautājuma neatkarība: izguve meklē bezjēdzīgi.
- Visas vēstures akla nosūtīšana: eksplodē izmaksas un kavēšanās; apkopot.
- Pretrunu noteikuma neierakstīšana: modelis var uzrādīt neuzticamu avotu kā oficiālu.
Rezumējot
- Piekļuves kontrole tiek realizēta ar metadatu filtru izguves fāzē; Nekad nedrīkst ņemt līdzi neatļautas detaļas.
- Identitāte un autoritāte tiek noteikta uzticamajā lietojumprogrammas līmenī; Ātra instrukcija ir tikai papildu aizsardzības slānis.
- Izturīgā uzvednes veidnē ir ietverta loma, uzvedības noteikumi (sazemējums, nezināt atļauju, avots, konflikts), numurēts konteksts un jautājums.
- Vairāku kārtu sarunā papildu jautājumi tiek atdalīti, un modelis sniedz konsekventas atbildes ar vēsturi.
- Apkopojot ilgo vēsturi, izmaksu un konteksta logs tiek kontrolēts; ACL tiek atkārtoti piemērots katrā kārtā.
Lietojumprogrammas uzdevums
(1) Definējiet vismaz trīs autorizācijas grupas savam palīgam (piem., visi, nodaļa, vadītājs) un ierakstiet tabulā, kurš dokumenta veids ir atvērts kādai grupai. (2) Pielāgojiet un uzrakstiet iepriekš minēto uzvednes veidni atbilstoši savai lomai un tonim; Padariet kontekstu numurētu un avotu. (3) Uzrakstiet trīs kārtas reālistisku sarunas scenāriju (jautājums → pēcpārbaude → pēcpārbaude) un manuāli ģenerējiet katra papildu jautājuma neatkarīgas versijas. (4) Paskaidrojiet vienā teikumā, kāpēc šajā scenārijā ACL filtrs ir jāpiemēro atkārtoti katrā kārtā.
kontrolsaraksts
- [ ] Es ieviešu piekļuves kontroli ar izguves filtru, tikai nepaļaujos uz uzvedni.
- [ ] Savai uzvednes veidnei pievienoju pamatojumu, es nezinu atļauju, avotu un konflikta noteikumu.
- [ ] Es sniedzu konteksta daļas numurētas un atsauces.
- [ ] Pirms izguves es padaru papildu jautājumus neatkarīgus.
- [ ] Es pārvaldu izmaksas un logu, apkopojot garo sarunu vēsturi.