Voitot:
- Määritä pääsynhallinta (ACL), joka suodattaa haun käyttäjän valtuuksien perusteella
- Kiinteän kehotemallin kirjoittaminen, joka sijoittaa kontekstin ja käyttäjän kysymyksen oikein
- Kysymysriippumattomuuden ja historianhallinnan harjoittelua monikierroksisissa keskusteluissa
Perustimme arkkitehtuurin; Tehdään siitä nyt turvallinen, johdonmukainen ja puhutteleva. Tässä yksikössä on kolme kriittistä aihetta: (1) pääsynhallinta, joka suodattaa haun käyttäjän valtuuksien perusteella, (2) vankka kehotemalli, joka sijoittaa kontekstin ja kysymyksen oikein, (3) kysymysten riippumattomuus ja keskusteluhistorian hallinta monikierroksisessa chatissa. Ilman näitä kolmea avustaja joko vuotaa tietoja, antaa epäjohdonmukaisia vastauksia tai hajoaa jatkokysymyksiin.
Kulunvalvonta: Luvattomat tiedot eivät saa koskaan saapua
Yrityksen suurin riski: Asiakirja, jota käyttäjän ei pitäisi nähdä, vuotaa vastaukseen. Hyvin yleinen aloittelijan virhe on "käyttää mallia "näytä piilotetut asiakirjat" kehotteessa." Tämä ei ole turvallista. Malli saattaa unohtaa ohjeen tai nopea injektio voi välttää sen. Oikea paikka on hakuvaihe: luvatonta kappaletta ei saa tuoda sisään ollenkaan.
Tapa tehdä tämä on käyttää viranomaismetatietoja (osasto, rooli, tietosuojataso), jotka asetat kullekin osalle suodattimeksi haun aikana. Määrität turvallisesti, kuka käyttäjä on (identiteetti ja roolit) sovellustasolla ja lisäät kutsuun ACL-suodattimen (Access Control List).
# Suodatettu auktoriteetin haulla (käsitteellinen) käyttäjä = autentikoida(istunto) # todennettu luotettavasta lähteestä = user.roles + ["kaikki"] # esim. ["HR", "admin"]tulos = vektor_db.search(vektori=embed(kysymys), top_k=20, filter={"permission_group": {"in": sallittu}, # vain sallittuja osia "yksityisyys": {"lte": user.level}} # tason alapuolella)
Varoitus: Älä koskaan pyydä mallilta auktoriteettia tai luota kehotteeseen. Identiteetti ja auktoriteetti määritetään sovelluksen luotetussa kerroksessa; Hakusuodatin on pakollinen, kehoteohje on vain lisäkerros. "Kirjoitin sen kehotteeseen" ei ole turvallisuus.
Kiinteä kehotemalli
Kehotusmalli on luuranko, joka kokoaa yhteen kontekstin, käyttäjän kysymyksen ja käyttäytymisohjeet hausta. Hyvän mallin osat: roolin/tehtävän kuvaus, käyttäytymissäännöt (maadoitus, en tiedä lupaa, resurssipyyntö, sävy), konteksti, kysymys.
Olet yrityksen HR-assistentti. Sinun tehtäväsi on vastata työntekijöiden kysymyksiin VAIN seuraavan KONTEKSTIN perusteella. Säännöt: - Jos vastaus ei ole selkeästi kontekstissa, kirjoita "En löytänyt tästä tietoa dokumentaatiosta, tarkista HR-tiimistä". Älä arvaa, älä keksi.- Jos kontekstin lähteet ovat ristiriidassa, ota virallinen käytäntö perustaksi ja kerro ristiriita.- Lisää lähde, johon luotat, [Lähde: tiedosto, osio] jokaisen väitteen loppuun.- Vastaa lyhyellä, selkeällä ja ammattimaisella kielellä. KONTEKSTI:{numbered_parts}KYSYMYS: {user_question}
Kontekstiosien numerointi ([1], [2], ...) helpottaa mallin lainaamista. Kirjoita myös lähde jokaisen kappaleen alkuun, jotta malli voi lainata sen oikein.
Vinkki: Pidä kehotemalli vakiona ja sijoita muuttujat (konteksti, kysymys) aina samoihin paikkoihin. Kiinteä malli sekä lisää testattavuutta että vähentää kustannuksia nopean välimuistin ansiosta joissakin järjestelmissä.
KONTEKSTI:[1] (Lähde: ik_el_kitabi.pdf, kohta 5.2) Vuosipalkkainen loma on 14 päivää...[2] (Lähde: ik_el_kitabi.pdf, kohta 5.4) Loma on 20 päivää henkilöille, joilla on yli 5 vuoden työsuhde...
Heikko kehote / Vahva kehote
Heikko (ei maadoitusta, ei lähdettä, identiteetti sekaisin):
Käytä näitä asiakirjoja ja vastaa kysymykseen: {parts}Käyttäjä: {kysymys}# Ongelma: malli irtoaa kontekstista, keksii, ei mainitse lähteitä, # käyttäytyy mielivaltaisesti ristiriitaisesti.
Vahva (rooli + säännöt + numeroitu konteksti + pakollinen lähde):
Olet... Luota vain KONTEKSTIIN. Muussa tapauksessa sano "en tiedä". Ristiriitatilanteessa valitse virallinen politiikka. Lisää [Lähde: ...] jokaiseen väitteeseen. KONTEKSTI: [1]... [2]... KYSYMYS: {kysymys}# Tulos: vastaus, joka vastaa kontekstia, lähtee ja hallitsee ristiriidan oikein.
Monen matkan keskustelunhallinta
Todellinen käyttäjä ei kysy yhtä kysymystä ja jätä sitä rauhaan; puhuu. "Kuinka monta päivää vuosilomaa minulla on?" → "Entä 6-vuotias työntekijä?" → "Kuinka haen sitä?" Toinen ja kolmas kysymys ovat yksinään merkityksettömiä; riippuu aikaisemmasta kontekstista.
Sinun on ratkaistava kaksi ongelmaa. Ensimmäinen on hakua varten: tee jatkokysymyksestä itsenäinen (kysymyksen uudelleenkirjoitus). "Entä 6-vuotias työntekijä?" → "Kuinka moneen päivään vuosilomaa 6 vuotta täyttäneellä työntekijällä on oikeus?" Haet tällä itsenäisellä kysymyksellä. Toinen on tuotantoa varten: annat myös keskusteluhistorian mallille, jotta se jatkuu johdonmukaisesti.
# Kaksivaiheinen: riippumaton → haku → generoi historian avulla (käsitteellinen) riippumaton = model.uret( "Käytä keskusteluhistoriaa tehdäksesi kysymyksestä ymmärrettävän:\nHistoria: {history}\nKysymys: {seuraa_kysymys}") konteksti = haku(itsenäinen) # haku itsenäisellä kysymysvastauksella historia = model.uret(prompt,seuraa_kontekstit)
Historian kasvaessa (pitkä keskustelu) sen lähettäminen kerralla tulee kalliiksi ja täyttää konteksti-ikkunan. Ratkaisu: tee yhteenveto edellisistä kierroksista tai säilytä viimeiset N kierrosta ja vähennä edelliset yhteenvedoksi. Näin kustannukset pysyvät hallinnassa ja johdonmukaisuus säilyy.
Tila
ongelma
Ratkaisu
Jatkokysymyksellä ei ole kontekstia
Hakuhaut ovat merkityksettömiä
Tee kysymyksestä itsenäinen (kirjoita uudelleen)
pitkä keskustelu
Kustannukset ja ikkunat turpoavat
Yhteenveto aiemmista matkoista
Käyttäjä vaihtoi aihetta
Vanha konteksti tarttuu
Vähennä aiempaa vaikutusta uuteen aiheeseen
Valtuutukset voivat vaihdella retkien välillä
Vuotovaara
Käytä ACL-suodatinta uudelleen joka kierros
Kolme minikoteloa
Tapaus 1 – "Turvallisuus"-virhe kehotteen kanssa. Yritys laittoi assistentille luottamukselliset palkkaasiakirjat, joita kuka tahansa saattoi kysyä, mutta kehotteeseen kirjoitti vain "älä anna palkkatietoja". Malli vuoti palkkaluokkaa, kun käyttäjä esitti kysymyksen kiertokulkusuunnassa. Kun ACL-suodatin lisättiin noutoon (palkkaosat vain HR-rooliin), vuoto suljettiin kokonaan; koska osaa ei enää koskaan tuoda.
Tapaus 2 – Kontekstiton vainoaminen. Tukiavustajassa käyttäjä kysyy "paluujakso?" → "entä rikkinäinen tuote?" Järjestelmä toi epäolennaisia osia "rikkoutuneelle tuotteelle". Kun lisättiin kysymysriippumattomuus ("Kuinka pitkä on rikkinäisen tuotteen palautusaika?"), oikea vastausprosentti nousi 44 prosentista 90 prosenttiin.
Tapaus 3 – Turvonnut ohi. 30 keskustelukierroksella avustajan kanssa jokainen puhelu lähetti koko historian; Kustannukset nousivat 3 kertaa kierrosta kohden, ja vastaukset hidastuivat. Kun siirryimme rakenteeseen, joka piti viimeiset 6 kierrosta ja tiivistimme edelliset, tokenin hinta laski 62 % ja johdonmukaisuus säilyi.
Yleisiä virheitä
- Valtuutuksen jättäminen kehotteeseen: Malli unohtaa/ohittaa; ACL-suodatin on pakollinen haettaessa.
- Kontekstia ei luetella: Malli ei voi lainata oikeaa lähdettä.
- Ei itsenäistä jatkokysymystä: Haku etsii turhaan.
- Lähetetään kaikki historia sokeasti: Räjähtää kustannuksissa ja viiveessä; tiivistää.
- Ristiriitasäännön kirjoittamatta jättäminen: Malli saattaa esittää epäluotettavan lähteen virallisena.
Yhteenvetona
- Kulunvalvonta toteutetaan hakuvaiheessa metatietosuodattimella; Luvattomia osia ei saa koskaan tuoda.
- Identiteetti ja auktoriteetit määritetään luotetussa sovelluskerroksessa; Nopea ohje on vain lisäpuolustus.
- Vankka kehotemalli sisältää roolin, käyttäytymissäännöt (maadoitus, en tiedä lupaa, lähde, ristiriita), numeroidun kontekstin ja kysymyksen.
- Monikierroksisessa keskustelussa jatkokysymykset irrotetaan ja malli tuottaa johdonmukaisia vastauksia historian kanssa.
- Yhteenvetona pitkästä historiasta kustannus- ja kontekstiikkuna pidetään hallinnassa; ACL otetaan uudelleen käyttöön joka kierroksella.
Sovellustehtävä
(1) Määritä omalle avustajallesi vähintään kolme valtuutusryhmää (esim. kaikki, osasto, johtaja) ja kirjoita taulukkoon, mikä asiakirjatyyppi mille ryhmälle on avoinna. (2) Mukauta ja kirjoita yllä oleva kehotemalli oman roolisi ja sävysi mukaan; Tee kontekstista numeroitu ja lähtenyt. (3) Kirjoita kolmen kierroksen realistinen keskusteluskenaario (kysymys → seuranta → seuranta) ja luo manuaalisesti itsenäiset versiot jokaisesta jatkokysymyksestä. (4) Selitä yhdellä virkkeellä, miksi ACL-suodatin tulisi käyttää uudelleen joka kierros tässä skenaariossa.
tarkistuslista
- [ ] Käytän kulunvalvontaa hakusuodattimella, en vain luota kehotteeseen.
- [ ] Lisään kehotemalliini maadoituksen, en tiedä lupaa, lähdettä ja ristiriitasäännön.
- [ ] Annan kontekstiosat numeroidut ja viitatut.
- [ ] Teen jatkokysymykset itsenäisiksi ennen hakua.
- [ ] Hallitsen kustannuksia ja ikkunaa tekemällä yhteenvedon pitkästä keskusteluhistoriasta.