Lideri de opinie

Tehnologia singură nu garantează adoptarea: Lecții din construirea unui chatbot intern de inteligență artificială

mm
Adaugă Unite.AI la sursele tale preferate pe Google

Pe măsură ce adoptarea inteligenței artificiale s-a accelerat în diverse industrii, implementarea unui chatbot pentru a sprijini o aplicație internă lansată recent părea a fi o decizie logică. Cu toate acestea, aplicația în sine a provocat așteptări convenționale ale utilizatorilor. A introdus noi fluxuri de lucru bazate pe tehnologie emergentă, necunoscută pentru majoritatea utilizatorilor.

Pentru a reduce fricțiunea și a îmbunătăți adoptarea, chatbotul a fost proiectat pentru a răspunde la întrebări despre aplicație și tehnologia subiacentă. Scopul era de a ajuta utilizatorii să înțeleagă nu numai ce să facă, ci și de ce sistemul se comporta într-un anumit mod. Am crezut că oferirea de explicații contextuale va accelera învățarea și va reduce confuzia.

Încă de la început, agentul de inteligență artificială a fost conceput ca o soluție cu scop limitat. A fost proiectat strict pentru a sprijini documentația și pentru a oferi asistență utilizatorilor. Conceptual, chatbotul a fost destinat să servească ca o înlocuire dinamică a unui document tradițional de Întrebări Frecvente, oferind o interfață conversațională, căutabilă și disponibilă în permanență, cu funcționalități extinse dincolo de conținutul static.

Pentru a integra agentul în mediul de chat intern al organizației, am trebuit să înțelegem cum sunt afișate mesajele structurate, cum se stochează istoricul conversației și cum sistemul identifică participanții în cadrul firelor de discuție. Acest lucru ne-a permis să determinăm variabilele de bază necesare pentru a începe procesarea întrebărilor utilizatorilor.

Încărcarea modelului: De la halucinații la context fiabil

Modelele de limbaj mare sunt puternice, dar fără ancorare contextuală, ele sunt predispuse la halucinații. Pentru a aborda acest lucru, am implementat o tehnică de încorporare vectorială.

Ghidurile utilizatorului, documentația internă și viziunea produsului au fost transformate în reprezentări numerice vectoriale ale textului. Aceste încorporări au capturat semnificația semantică, permițând sistemului să corespundă conceptelor, mai degrabă decât să se bazeze pe simpla potrivire a cuvintelor cheie.

Când un utilizator a pus o întrebare, sistemul a transformat întrebarea într-o reprezentare vectorială și a comparat-o cu încorporările stocate. A recuperat documentele cele mai relevante din punct de vedere semantic și le-a injectat în promptul modelului. Modelul a generat apoi un răspuns bazat pe acele documente specifice, adesea rezumând informația relevantă.

Această abordare a îmbunătățit semnificativ acuratețea răspunsurilor. În loc de a genera răspunsuri bazate pur și simplu pe cunoștințe generale, modelul a răspuns utilizând documentația noastră proprie ca context.

Complexitatea ascunsă a managementului contextului

A fost esențial să includem istoricul conversației în prompt, astfel încât botul să poată interpreta întrebările ulterioare și să mențină continuitatea. Fără istoric, interacțiunile deveneau fragmentate și repetitive. Utilizatorii adesea refinesc întrebările lor în mod incremental, și fără context, botul nu putea interpreta referințe precum “acea opțiune” sau “pasul anterior”.

Cu toate acestea, includerea prea multor informații din istoric a creat o altă problemă: limitele de token. Acestea apar atunci când modelele de limbaj taie inputurile care depășesc fereastra de context maximă. Dacă o întrebare sau o conversație devenea prea lungă, informații importante puteau fi pierdute. Acest lucru nu a produs o eroare explicită, ci mai degrabă a afectat calitatea răspunsului sau a influențat acuratețea recuperării.

Pentru a atenua acest lucru, am implementat strategii pentru a controla dimensiunea promptului, a prioritiza conținutul relevant și a monitoriza lungimea întrebărilor. Am experimentat cu rezumarea mesajelor mai vechi și includerea selectivă a celor mai relevante părți ale conversației. Contextul a fost critic, dar a trebuit să fie gestionat cu atenție.

Extinderea capacităților și crearea confuziei

Dincolo de a răspunde la întrebări bazate pe documentație, am extins capacitățile botului prin adăugarea de funcții backend care puteau extrage anumite informații publice direct din aplicație. Acest lucru a permis utilizatorilor să recupereze date din chat fără a trebui să se autentificeze în aplicație. Ideea era de a reduce fricțiunea și de a consolida chatbotul ca o interfață utilă, nu doar un strat de cunoștințe static.

Această extensie a creat confuzie pentru unii utilizatori, cu toate acestea. Odată ce botul a început să recupereze date live, utilizatorii au început să îl întrebe să execute acțiuni care necesitau interacțiune directă în cadrul platformei. Ei au presupus că chatbotul poate înlocui pașii operaționali, inclusiv cei care necesită autentificare sau executare deliberată în cadrul platformei.

Botul nu a fost proiectat să execute acele acțiuni, dar distincția dintre asistența informatională și execuția operațională nu a fost întotdeauna clară.

Integrarea datelor live a introdus, de asemenea, noi considerații tehnice. Am trebuit să definim când o întrebare ar trebui să treacă prin recuperarea bazată pe încorporare și când ar trebui să declanșeze un apel backend. Logica acestei decizii a necesitat o proiectare atentă. De asemenea, am trebuit să ajustăm răspunsurile pentru a gestiona cu grație excepțiile tehnice și pentru a evita expunerea erorilor sistemului brute către utilizatori.

Capacitatea multilingvă nu este automată

În timpul testării, am realizat că botul a performant consistent mai bine în limba engleză decât în alte limbi utilizate în cadrul Jalasoft. Motivul principal a fost structural: majoritatea documentației utilizate pentru a genera încorporări a fost scrisă în limba engleză, iar modelul de încorporare pe care l-am selectat a fost optimizat pentru similaritate semantică în limba engleză.

Acesta nu a susținut recuperarea cross-linguală sau compararea semantică între limbi. Ca urmare, întrebările non-engleze adesea au recuperat documentație mai puțin relevantă, conducând la răspunsuri mai slabe.

Acest lucru a subliniat o idee importantă: capacitatea multilingvă nu este automată.

Când așteptările se extind dincolo de scop

Pentru a controla costurile de utilizare, am implementat o limită zilnică pentru numărul de întrebări pe care utilizatorii le puteau pune. Cu toate acestea, nu am restricționat în mod explicit scopul întrebărilor. Utilizatorii erau liberi să pună orice întrebare.

Acestă deschidere a condus la modele de utilizare neașteptate. Unii utilizatori au început să interacționeze cu botul pentru scopuri personale sau de explorare, nelegate de aplicație. În timp, așteptările au depășit rolul intenționat al botului, creând o lacună între ceea ce utilizatorii sperau că poate face și ceea ce a fost proiectat să susțină.

Această neconcordanță a redus treptat utilitatea sa percepută. Utilizarea a scăzut, iar chatbotul a fost în cele din urmă învechit, cu eforturile redirectate către reproiectarea aplicației în sine pentru a o face mai intuitivă și mai ușor de utilizat.

Lecția reală: Proiectarea interacțiunii

Din punct de vedere tehnic, sistemul a funcționat în mod rezonabil. A recuperat documentația, a inclus istoricul conversației, a redus halucinațiile prin încorporări, a gestionat apelurile backend și a gestionat dimensiunea promptului. Arhitectura a funcționat așa cum a fost intenționat.

Dar a lipsit proiectarea intenționată a interacțiunii.

Botul nu a modelat clar conversațiile. Nu a întărit în mod constant scopul său. Nu a ghidat utilizatorii cu exemple structurate despre ceea ce putea și nu putea face. A răspuns la întrebări, dar nu a stabilit așteptări.

Am învățat că sistemele de inteligență conversațională necesită mai mult decât modele puternice și date structurate. Ele necesită așteptări proiectate cu atenție. Utilizatorii necesită claritate cu privire la rolul agentului, limitele sale și punctele sale forte. Sistemul trebuie să furnizeze în mod proactiv exemple de prompturi, să clarifice limitările și să redirecționeze întrebările care depășesc scopul.

Fără această încadrare intenționată, chiar și o implementare tehnică solidă poate lupta pentru a menține valoarea. Utilizatorii pot supraestima capacitățile sau se pot deconecta atunci când așteptările neexprimate nu sunt îndeplinite.

Ideea de bază este simplă, dar puternică.

Construirea inteligenței conversaționale nu este doar o provocare tehnică. Este și o provocare de proiectare a interacțiunii.

Contextul puternic, recuperarea precisă și arhitectura robustă sunt necesare, dar nu suficiente. Eficacitatea sistemului depinde în egală măsură de modul în care definește rolul său, comunică limitele sale și modelează așteptările utilizatorilor.

Tehnologia singură nu garantează adoptarea. Proiectarea interacțiunii clară o face.

Angie Navia este un Dezvoltator Full-Stack la Jalasoft cu cinci ani de experiență în construirea de aplicații de producție și integrarea capacităților de inteligență artificială în soluții software. Ea a finalizat specializarea IBM Generative AI for Software Developers și aplică instrumente de inteligență artificială în fluxul său zilnic de dezvoltare.