Kasu:
- Seadistage juurdepääsu kontroll (ACL), mis filtreerib kasutaja volituste alusel otsingu
- Tugeva viipamalli kirjutamine, mis asetab konteksti ja kasutaja küsimuse õigesti
- Küsimuste sõltumatuse ja ajaloohalduse harjutamine mitmevoorulistes vestlustes
Panime paika arhitektuuri; Nüüd teeme selle turvaliseks, järjepidevaks ja vestlust soodustavaks. Selles üksuses on kolm kriitilist teemat: (1) juurdepääsukontroll, mis filtreerib otsinguid kasutaja volituste alusel, (2) jõuline viipamall, mis asetab konteksti ja küsimuse õigesti, (3) küsimuste sõltumatus ja vestluste ajaloo haldamine mitmevoorulises vestluses. Ilma nende kolmeta lekib assistent andmeid, annab ebajärjekindlaid vastuseid või laguneb järelküsimuste peale.
Juurdepääsukontroll: volitamata andmed ei tohiks kunagi saabuda
Ettevõtte suurim risk: vastusesse lekib dokument, mida kasutaja ei peaks nägema. Väga levinud algajate viga on see, et "käsutakse mudelil, et ta näitaks viipale peidetud dokumente". See ei ole ohutu. Mudel võib juhise unustada või kiire süstimine võib sellest kõrvale hiilida. Õige koht on kättesaamise faas: loata tükki ei tohi üldse sisse tuua.
Seda saab teha volituste metaandmete (osakond, roll, privaatsustase) rakendamine, mille panite igale osale otsingu ajal filtrina. Saate turvaliselt määrata, kes on kasutaja (identiteet ja rollid) rakendusekihis, ja lisate kõnele ACL-i (juurdepääsu kontrolli loendi) filtri.
# Filtreeritud autoriteedi otsimise järgi (kontseptuaalne)kasutaja = autentida(seanss) # autentitud usaldusväärsest allikast = user.rolles + ["kõik"] # nt. ["HR", "admin"]result = vektor_db.search( vektor=embed(question), top_k=20, filter={"permission_group": {"in": lubatud}, # ainult lubatud osad "privaatsus": {"lte": user.level}} # allpool taset)
Ettevaatust: ärge kunagi küsige mudelilt autoriteeti ega lootke viipale. Identiteet ja autoriteet määratakse rakenduse usaldusväärsel kihil; Otsimisfilter on kohustuslik, kiire juhis on vaid lisakiht. "Ma kirjutasin selle viipasse" ei ole turvalisus.
Kindel viipamall
Viipamall on skelett, mis koondab otsingu konteksti, kasutaja küsimuse ja käitumisjuhised. Hea malli osad: rolli/ülesande kirjeldus, käitumisreeglid (maandus, ma ei tea luba, ressursitaotlus, toon), kontekst, küsimus.
Olete ettevõtte personali assistent. Teie ülesanne on vastata töötajate küsimustele AINULT järgmise KONTEKSTI alusel. Reeglid:- Kui vastus ei ole kontekstis selgelt, kirjutage "Ma ei leidnud dokumentatsioonist selle kohta teavet, pöörduge personalimeeskonna poole". Ärge arvake, ärge mõelge välja.- Kui kontekstis olevad allikad on vastuolus, võtke aluseks ametlik poliitika ja teatage vastuolu.- Lisage iga väite lõppu allikas, millele toetute, kui [Allikas: toimik, jaotis].- Vastake lühikeses, selges ja professionaalses keeles. KONTEKST:{numbered_parts}KÜSIMUS: {user_question}
Kontekstiosade nummerdamine ([1], [2], ...) muudab mudeli tsiteerimise lihtsamaks. Samuti kirjuta iga kirjatüki algusesse allikas, et modell saaks sellele õigesti tsiteerida.
Näpunäide. Hoidke viipamall konstantsena ja asetage muutujad (kontekst, küsimus) alati samadesse kohtadesse. Fikseeritud mall suurendab nii testitavust kui ka vähendab kulusid tänu kiirele vahemällu salvestamisele mõnes süsteemis.
KONTEKST:[1] (Allikas: ik_el_kitabi.pdf, punkt 5.2) Iga-aastane tasustatud puhkus on 14 päeva...[2] (Allikas: ik_el_kitabi.pdf, punkt 5.4) Puhkus on 20 päeva inimestele, kellel on üle 5 aasta staaži...
Nõrk viip / Tugev viip
Nõrk (maandus puudub, allikas puudub, identiteet on segatud):
Kasutage neid dokumente ja vastake küsimusele: {parts}Kasutaja: {question}# Probleem: mudel väljub kontekstist, mõtleb välja, ei viita allikatele, # käitub meelevaldselt vastuolus.
Tugev (roll + reeglid + nummerdatud kontekst + allikas kohustuslik):
Sa oled... Lihtsalt toetu KONTEKSTILE. Vastasel juhul öelge "ma ei tea". Konflikti korral valige ametlik poliitika. Lisage igale väitele [Allikas: ...].KONTEKST: [1]... [2]... KÜSIMUS: {question}# Tulemus: vastus, mis on kontekstitruu, allikas ja juhib vastuolu õigesti.
Mitme tuuri vestluse haldamine
Tõeline kasutaja ei esita ühtki küsimust ega jäta seda rahule; räägib. "Mitu päeva põhipuhkust mul on?" → "Aga 6-aastane töötaja?" → "Kuidas seda taotleda?" Ainuüksi teine ja kolmas küsimus on mõttetud; oleneb eelnevast kontekstist.
Peate lahendama kaks probleemi. Esimene on otsimiseks: tehke järelküsimus sõltumatuks (küsimuse ümberkirjutamine). "Aga 6-aastane töötaja?" → "Mitu päeva põhipuhkust on 6-aastasel töötajal õigus saada?" Otsite selle sõltumatu küsimusega. Teine on tootmiseks: annad modellile ka vestluse ajaloo, et see järjepidevalt jätkuks.
# Kahesammuline: sõltumatus → otsing → genereeri ajalooga (kontseptuaalne) sõltumatu = model.uret( "Kasutage vestluse ajalugu, et muuta küsimus iseseisvalt arusaadavaks:\nAjalugu: {ajalugu}\nKüsimus: {follow_question}") kontekst = otsimine(sõltumatu) # otsing sõltumatu küsimuse vastusega ajalugu = model.uret(prompt, follow_questions)
Ajaloo kasvades (pikk vestlus) muutub selle korraga saatmine kulukaks ja täidab kontekstiakna. Lahendus: võta eelnevad voorud kokku või jäta alles viimased N voorud ja taandada eelnevad kokkuvõtteks. Seega jäävad kulud kontrolli alla ja järjepidevus säilib.
Olek
probleem
Lahendus
Järelküsimusel puudub kontekst
Taasotsingud on mõttetud
Muutke küsimus iseseisvaks (kirjutage ümber)
pikk vestlus
Kulud ja aknad paisuvad
Kokkuvõte möödunud tuuridest
Kasutaja muutis teemat
Vana kontekst nakatub
Vähendage varasemat mõju uuele teemale
Autoriteedid võivad ekskursioonidel erineda
Lekkeoht
Kasutage ACL-filtrit igal ringil uuesti
Kolm miniümbrist
Juhtum 1 – „Turvalisus” viipaga. Üks ettevõte pani assistendile konfidentsiaalsed palgadokumendid, mida igaüks võis küsida, kuid viipale kirjutas ainult "ära anna palgainfot". Mudel lekitas palgavahemiku, kui kasutaja esitas küsimuse ringteel. Kui otsimisele lisati ACL-filter (palgaosad ainult HR rollile), suleti leke täielikult; sest osa ei tuua enam kunagi.
Juhtum 2 – kontekstivaba jälitamine. Tugiassistendis küsib kasutaja "tagastusperiood?" → "Aga katkise tootega?" Süsteem tõi "katkise toote" jaoks ebaolulised osad. Küsimuse sõltumatuse lisamisel ("Kui pikk on katkise toote tagastusperiood?") tõusis õigete vastuste määr 44%-lt 90%-le.
Juhtum 3 – minevik paistes. 30 vestlusringis assistendiga saatis iga kõne kogu ajaloo; Maksumus kasvas 3 korda ringi kohta ja vastused aeglustusid. Kui läksime üle struktuurile, mis säilitas viimased 6 vooru ja tegime eelnevad kokkuvõtte, langes märgikulu 62% ja järjepidevus säilis.
Levinud vead
- Viipale volituse jätmine: mudel unustab/läheb mööda; ACL-filter on otsimisel kohustuslik.
- Konteksti loetlemata: mudel ei saa viidata õigele allikale.
- Järelküsimuse iseseisvumata jätmine: otsimine otsib mõttetult.
- Kogu ajaloo pimesi saatmine: kulu ja viivitus plahvatab; kokku võtta.
- Vastuolureegli kirjutamata jätmine: mudel võib esitada ebausaldusväärse allika ametlikuna.
Kokkuvõttes
- Juurdepääsu kontroll rakendatakse otsingufaasis metaandmete filtriga; Mitte kunagi ei tohi kaasa võtta volitamata osi.
- Identiteet ja volitused määratakse usaldusväärse rakenduse kihis; Kiire juhendamine on vaid täiendav kaitsekiht.
- Tugev viipamall sisaldab rolli, käitumisreegleid (maandus, ei tea luba, allikas, konflikt), nummerdatud konteksti ja küsimust.
- Mitmevoorulises vestluses eraldatakse järelküsimused lahti ja mudel annab ajalooga järjekindlad vastused.
- Pika ajaloo kokkuvõtteid tehes hoitakse kulude ja konteksti aken kontrolli all; ACL-i rakendatakse uuesti igal voorul.
Rakenduse ülesanne
(1) Määrake oma assistendi jaoks vähemalt kolm volituste rühma (nt kõik, osakond, juht) ja kirjutage tabelisse, milline dokumenditüüp millisele rühmale on avatud. (2) Kohandage ja kirjutage ülaltoodud viipade mall vastavalt oma rollile ja toonile; Muutke kontekst nummerdatud ja lähtekohaks. (3) Kirjutage kolmevooruline realistlik vestlusstsenaarium (küsimus → järeltegevus → järeltegevus) ja genereerige käsitsi igast järelküsimusest sõltumatud versioonid. (4) Selgitage ühe lausega, miks tuleks selle stsenaariumi korral ACL-filtrit igal ringil uuesti rakendada.
kontrollnimekiri
- [ ] Rakendan juurdepääsukontrolli otsingufiltriga, ma lihtsalt ei tugine viipale.
- [ ] Lisan oma viipamallile maanduse, ma ei tea luba, allika ja konfliktireegli.
- [ ] Kontekstiosad annan nummerdatuna ja viidatud.
- [ ] Muudan järelküsimused enne otsimist iseseisvaks.
- [ ] Ma haldan kulusid ja akent, võttes kokku pika vestlusajaloo.