Tämä artikkeli käsittelee tekoälyä käyttävän keskustelevan chatbotin luomista ja lisäämistä WordPress-sivustolle. Tämän artikkelin tuottamiseen ei sen sijaan ole käytetty tekoälyä, usko tai älä 🙂
Erilaisia tekoälyavusteisia chatboteja on ollut palveluina tarjolla jo pitkään ja vähän ”tyhmempiä” automaattisiin kysymys-vastaus-pareihin perustuvia vastaavia vielä kauemmin. Tällaisen chatbotin toteuttaminen tuntui kuitenkin mielekkäältä aiheelta, kun mietin erilaisia tapoja kartuttaa kokemusta AI-palvelujen ja erityisesti eri kielimallien tarjoajien rajapinnoista.
Google Gemini API
Pienen harkinnan jälkeen päädyin käyttämään projektissa Googlen Gemini-kielimallia. Google on tehnyt palveluidensa käyttöönotosta helppoa, ja kielimallit ovat saatavilla testikäyttöön maksutta myös rajapinnan kautta käytettäessä. Google käyttää maksuttomaan palveluun syötettyä dataa kielimalliensa jatkokouluttamiseen. Maksullisessa versiossa tätä ominaisuutta ei ole, joten kehitysvaiheen jälkeen vahdoin maksulliseen versioon.
Kielimallin räätälöinti ohjeistamalla
Kielimallille toimitettavan tekstisyötteen, chatin tapauksessa käyttäjän viestin, yhteydessä Googlen rajapintaan on mahdollista toimittaa myös ohjeistus siitä, millä tavalla ja tyylillä kielimallin toivotaan vastaavan. Tämä ohjeistus on yksi tapa, jolla mallia on mahdollista räätälöidä omiin tarpeisiin sopivaksi. Asiakkaiden kanssa viestimistä varten laadin kielimallille ohjeen käyttäytyä kuten asiantunteva asiakaspalvelija. Lisäksi kerron ohjeessa yleisesti Sivusepän toiminnasta ja palveluista, jotta kielimalli osaa luoda vastauksen juuri tästä näkökulmasta. Jotta chatissa voisi käydä järkevän tuntuisia pidempiä keskusteluja, kielimallipalvelun rajapintaan voi toimittaa koko aiemman viestiketjun, jolloin malli osaa säilyttää asiayhteyden aiempiin viesteihin.
WordPress-lisäosa
WordPress-sivuston pään toteutusta varten rakensin lisäosan, johon koodasin fronttipuolen chat-ikkuna-lomakkeen viestien syöttämistä ja vastausviestien näyttämistä varten sekä taustajärjestelmään toimintalogiikan ja kutsujärjestelmän Googlen rajapintaan päin. Lisäksi otin käyttöön erillisen tietokantainstanssin viestien tallennusta ja jatkokäyttöä varten. Kielimallin käyttöä rajapinnan kautta mitataan token-yksiköissä. Yksi kysely Googlen rajapintaan ja kielimallin vastauksen tuottaminen kuluttaa tietyn määrän tokeneita, mikä maksaa tietyn verran rahaa. Koska Google ei anna asettaa maksullisille palveluilleen euromääräistä käyttökattoa, lisäsin toteutukseeni ominaisuuden, joka pitää kirjaa käytetyistä tokeneista ja piilottaa chat-palvelun, kun asettamani käyttökatto on saavutettu.
Tämä kaikki rakentui ennestään tutuista palikoista. Erilaisia yhteydenottolomakkeita on tullut tehtyä jos jonkin moisia, eikä taustajärjestelmä eroa logiikaltaan paljoakaan aiemmin tekemistäni integraatiototeutuksista. Itse asiassa tällä kertaa integraatiototeutus on keskimääräistä yksinkertaisempi, koska nyt liikutellaan käytännössä vain vapaamuotoista tekstisisältöä, eikä datan perusteella tehdä kovinkaan monimutkaisia toimenpiteitä. Lopputulos on mielestäni kuitenkin enemmän kuin näiden teknisten osiensa summa, sillä kielimallin luovan luonteen vuoksi toteutus ikään kuin herää eloon siinä vaiheessa, kun käyttäjä alkaa vuorovaikuttaa sen kanssa.
Kielimallin hienosäätö jatkossa
Tallennan mallin kanssa käytyjä keskusteluja, tarkemmin ottaen kysymys-vastaus-pareja, omaan erilliseen tietokantaani. Jatkossa hienosäädän (fine tuning) kielimallia tämän viestienvaihtohistorian avulla. Voin poimia kielimallin aiemmin generoimista teksteistä mahdolliset virheet ja syöttää vastaukset korjattuina oman tuunatun mallin oppimateriaaliksi. Näin saan jatkossa generoitua entistä osuvampia tekstejä vastaukseksi käyttäjän syötteeseen.
Mihin malli tästä vielä kehittykään jää nähtäväksi ja tulevien artikkeleiden aiheeksi. Elämme jännittäviä aikoja 🙂
Mikko / Sivuseppä