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

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 a părut a fi o decizie logică. Cu toate acestea, aplicația în sine a provocat așteptările convenționale ale utilizatorilor. A introdus noi fluxuri de lucru bazate pe tehnologie emergentă, nefamiliară 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 a fost de a ajuta utilizatorii să înțeleagă nu numai ce trebuie să facă, ci și de ce sistemul se comportă într-un anumit mod. Am crezut că oferirea de explicații contextuale va accelera învățarea și va reduce confuzia.
Din start, agentul de inteligență artificială a fost conceput ca o soluție cu scop limitat. A fost proiectat strict pentru a sprijini documentația și 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 continuu disponibilă, 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 este stocată istoria conversației și cum sistemul identifică participanții din cadrul thread-urilor. Acest lucru ne-a permis să determinăm variabilele de bază necesare pentru a începe procesarea întrebărilor utilizatorilor.
Stabilirea modelului: De la halucinații la context fiabil
Modelele de limbaj mare sunt puternice, dar fără ancorare contextuală, sunt predispuse la halucinații. Pentru a aborda acest lucru, am implementat o tehnică de încorporare vectorială.
Ghizile utilizatorilor, 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, în loc 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 semantice relevante și le-a injectat în promptul modelului. Modelul a generat apoi un răspuns bazat pe acele documente specifice, adesea rezumând informațiile relevante.
Acest abordare a îmbunătățit semnificativ acuratețea răspunsurilor. În loc să genereze răspunsuri bazate pur și simplu pe cunoștințe generale, modelul a răspuns utilizând documentația noastră internă ca context.
Complexitatea ascunsă a gestionării contextului
A fost esențial să includem istoria conversației în prompt, astfel încât botul să poată interpreta întrebările ulterioare și să mențină continuitatea. Fără istorie, interacțiunile au devenit fragmentate și repetitive. Utilizatorii au refinit adesea întrebările în mod incremental, și fără context, botul nu a putut interpreta referințe precum “acea opțiune” sau “pasul anterior”.
Cu toate acestea, includerea unei cantități prea mari de istorie a creat o altă problemă: limitele de token. Acestea apar atunci când modelele de limbaj trunchiază intrările care depășesc fereastra de context maximă. Dacă o întrebare sau o conversație a devenit prea lungă, informații importante ar fi putut fi pierdute. Acest lucru nu a produs o eroare explicită, ci mai degrabă a afectat calitatea răspunsului sau a afectat 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ării. 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 fi nevoie să se autentificeze în aplicație. Ideea a fost 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, însă. 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 necesitau autentificare sau execuție deliberată în cadrul platformei.
Botul nu a fost niciodată proiectat pentru a efectua acele acțiuni, dar distincția dintre asistența informativă ș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 constant 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 suportat recuperarea cross-lingvală sau compararea semantică între limbi. Ca rezultat, întrebările în limbi non-engleze au recuperat adesea documentație mai puțin relevantă, conducând la răspunsuri mai slabe.
Acest lucru a evidențiat o idee importantă: capacitatea multilingvă nu este automată.
Când așteptările depășesc scopul
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 au fost liberi să pună orice întrebare.
Această 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 diferență între ceea ce utilizatorii sperau că ar putea face și ceea ce a fost proiectat să sprijine.
Acest decalaj a redus treptat utilitatea percepută. Utilizarea a scăzut, iar chatbotul a fost în cele din urmă înlocuit, cu eforturi 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 incorporat istoria 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ă.
Cu toate acestea, a lipsit proiectarea intenționată a interacțiunii.
Botul nu a modelat în mod 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ță artificială conversațională necesită mai mult decât modele puternice și date structurate. Acestea necesită așteptări proiectate cu atenție. Utilizatorii au nevoie de claritate cu privire la rolul agentului, limitele și punctele 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 în mod constant.
Fără această proiectare 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 nedeclarate nu sunt îndeplinite.
Ideea de bază este simplă, dar puternică.
Construirea inteligenței artificiale conversaționale nu este doar o provocare tehnică. Este, de asemenea, o provocare de proiectare a interacțiunii.
Contextul puternic, recuperarea precisă și arhitectura robustă sunt necesare, dar nu suficiente. Eficacitatea sistemului depinde în mod egal de modul în care definește rolul său, comunică limitele și modelează așteptările utilizatorilor.
Tehnologia singură nu garantează adoptarea. Proiectarea interacțiunii clară o face.






