Viimeisen 12 kuukauden aikana ei ole voinut välttyä kuulemasta AI:sta ja siitä miten chatGPT mullistaa kaiken. Kyllästymiseen asti. Microsoft on kehityksessä vahvasti mukana ja julkaissut hengästyttävällä tahdilla tuotteisiinsa muun muassa tekoälypohjaisa avustajia (copilot).

Osa uusista AI-sovellutuksista vaikuttaa todella hyödyllisiltä ja uskon että ne tulevat muuttamaan työn tekemistä ja työroolien sisältöjä.

Osa julkaisuista taas vaikuttaa lähinnä siltä että tuotteeseen on haluttu nopeasti AI-leima.

Kumpaan leiriin Power Platformin AI-ominaisuudet kuuluvat? Päätä itse.k

Canvas Power Apps ja AI

Ideat

Tämä lienee Power Platformin ensimmäinen AI-pohjainen avustaja. Voit valita galleriassa olevan tekstikentän (1) ja ideat-välilehdellä (2) antaa esimerkin miten kentän arvo halutaan muotoilla (3).

Avustaja ehdottaa kaavaa, jolla lopputulokseen päästään (4). Ehdotuksen voi halutessaan ottaa käyttöön (5).

Avustaja luo meille käden käänteessä kaavan, joka näyttää asiakkaan (account) nimen kolme ensimmäistä merkkiä isoin kirjaimin.

Upper(Left(ThisItem.'Account Name', 3))

Kätevää mikäli PowerFx ei ole tuttua. Tai jos tarvittava muotoilu on niin hankala, ettei se itseltä synny.

Toinen esimerkki paljastaa kuitenkin kolikon kääntöpuolen.

Haluamme muotoilla galleriassa esitettävän päivämäärän tutumpaan muotoon. Käyttämämme esimerkki on ”16.8. 2023”.

AI:n ehdottama kaava on seuraava.

Text(Day(ThisItem.'Created On'), "0.0", "en-GB") & Text(ThisItem.'Created On', "m", "en-GB") & ". " & Text(ThisItem.'Created On', "yyyy", "en-GB")

Hmmm. Hieman monimutkaisen tuntuinen? Totta. Samaan lopputulokseen pääsee huomattavasti helpommalla.

Text(ThisItem.'Created On', "dd.m yyyy", "en-GB")

Lähes saman tuottaa myös seuraava.

Text(ThisItem.'Created On', DateTimeFormat.ShortDate, "Fi-fi")

Tekoälyn luomat Power Fx -kaavat (yleensä) toimivat, mutta ne voivat olla aivan turhan monimutkaisia. Ne eivät ole suorituskykymielessä optimaalisia. Mikä tärkeämpää, niiden lukeminen voi olla hankalaa. Jopa niin hankalaa, ettei sovelluksen tekijä ymmärrä lainkaan, mitä kaava tekee. Se vain tuottaa toivotun lopputuloksen. Ainakin tällä pienellä aineistolla.

Onko kaavaa tällöin järkevää käyttää sovelluksessa? Mielestäni ei.

Ideat toimivat toistaiseksi vain yhden taulun sisällä. LookUp-kentän takaa löytyviä tietoja, kuten rivin luojan (Created By) nimeä, on turha yrittää muotoilla.

Power Fx:n muodostaminen luonnollisesta kielestä

Microsoft Learnin mukaan esimerkiksi gallerian suodatuksia voi rakentaa luonnollista kieltä käyttäen.

Tätä ominaisuutta en ole vielä nähnyt missään ympäristössä.

Power Apps Copilot (preview)

Power Appsista löytyy oma Copilot, jota voi pyytää tekemään pieniä muutoksia sovellukseen.

Esimerkiksi pyyntö ”add form for modifying accounts” luo meille (tyhjän) lomakkeen, joka on kytketty Accounts-tauluun.

Entä kenttien lisääminen juuri luotuun lomakkeeseen? Se on vielä avustajalle liian vaikeaa.

Pyydetään copilottia lisäämään näytölle painike, joka lähettää lomakkeen tiedot eteenpäin (SubmitForm).

Painike syntyy, mutta kaava menee vielä väärin. Olin kirjoittanut komentoon lomakkeen nimen pienellä alkukirjaimella (form1). Lomakkeen nimi olisi pitänyt kirjoittaa tarkalleen oikein (Form1) niin se olisi toiminut.

Yksittäisen kontrollin ominaisuuksia voi vaihtaa copilotin avulla. Tyyliin ”Set selected label color to black”.

Yritetään jotain hieman monimutkaisempaa.

Set selected label color to red if value starts with "A" and blue if value starts with "C" and green if value starts with "B"

Kaikki otsikot muuttuivat vihreäksi vaikka yritys oli vaihtaa väri asettuman ensimmäisen kirjaimen perusteella.

Vaikuttaa siltä että copilot kykenee lisäämään näytölle yksittäisiä kontrolleja, sekä muuttamaan niiden yksittäisiä arvoja. Toimintalogiikkaa sillä ei vielä pysty tuottamaan.

Power Appsin luominen luonnollista kieltä käyttäen

Power Appseja voi myös luoda täysin tyhjästä luonnollista kieltä käyttäen. Kokeillaanpas sitä.

Luodaan sovellus jolla voi arvostella katsomiaan elokuvia. Käytetään kehotteena seuraavaa.

Create app for rating movies. For each movie store name, year, rating (1-5 star), director and genre 

Avustaja hahmotelee ensin (Dataverse) taulun, johon arvostelut kerätään. Se osaa luoda jopa esimerkkisisältöä siihen. Vaikuttavaa.

Tyylilaji on tekstikenttä. Pyydetään avustajaa vaihtamaan se valinnaksi (choice).

Change genre column to be choice. Values are Crime, Drama, Action, Comedy, Family, Horror, Scifi, Magna and Animation

Ja senhän se tekee.

Tässä kohtaa ei kannata alkaa ahnehtimaan. Ominaisuudella voi toistaiseksi luoda sovelluksen, joka käyttää taustalla yhtä taulua. Älä turhaan pyydä sitä luomaan genreä omaan tauluunsa ja luomaan relaatiota näiden kahden taulun välille.

Jatketaan luomalla määritellyn taulun pohjalta sovellus. Eli painetaan ”Create App”.

Lyhyen miettimisen jälkeen meillä on siistin näköinen responsiivinen sovellus, jolla voi lähteä syöttämään elokuva-arvosteluja.

Jatketaan yksityiskohtien hieromista copilotin avulla. Pyydetään sitä vaihtamaan otsikkopalkin teksti orannsiksi.

Usean yrityksen jälkeen se lopulta onnistui! Käytännössä copilotille tuli kertoa muokattavan kontrollin nimi. Harmiksemme edes tablenamelabel1 ei riittänyt. Kontrolli piti kertoa muodossa TableNameLabel1.

Copilotin ongelmat ovat samat kuin aiemmassa esimerkissämme. En keksi käytännössä mitään järkevää tehtävää, jonka se kykenisi tekemään.

Dataverse taulun luominen AI:lla

Voit käyttää copilotia myös luodessasi yksittäistä taulua.

Ja sitten vain kertomaan mitä kaikkea tauluun haluaa.

Puritaaneille tiedoksi että kaikki näin luodut taulut saavat ympäristön oletusprefixin.

AI:n hyödyntäminen sovelluksessa

Tähän asti olemme käsitelleet Power Appsin AI-ominisuuksia, jotka helpottavat sovelluksen tekemistä. Kerrataan vielä lopuksi miten eri AI-kyvykkyyksiä voi hyödyntää itse soveluksessa.

AI Builder

Voimme hyödyntää AI Builderin eri malleja valmiilla kontrolleilla.

ChatGPT:n hyödyntäminen

Internet on pullollaan esimerkkejä siitä miten voit hyödyntää chatGPT:tä Power Appsissa. Joko julkista palvelua tai ikiomaasi Azuresta.

Mainio apuväline jos sinun tarvitsee sovelluksessasi esimerkiksi tuottaa tekstiä tai poimia vapaamuotoisesta tekstistä sisältöä eteenpäin välitettäväksi.

Copilot -kontrolli

Tätä en ole vielä päässyt itse kokeilemaan. Voit lisätä sovellukseeksi avustajan, jolta loppukäyttäjät voivat vapaasti kysellä kysymyksiä.

Koukku on siinä, että copilot-kontrolli sidotaan yhteen Dataverse-tauluun. Se osaa vastata kysymyksiin, jotka liittyvät ko taulun sisältämään dataan.

Yhteenveto

Onko nämä Power Appsin AI -ominaisuudet jotain täysin turhaa kuraa?

Eivät.

Ne auttavat aivan varmasti jo tällaisenaan ensimmäisiä sovelluksiaan tekevää kansalaiskehittäjää.

Hyödynkö minä kokeneena Power Apps -tekijänä niistä?

En. Vielä.

Mutten usko hetkeäkään että esimerkiksi Power Appsin copilot jäisi tähän. Vuoden päästä se on takuulla huomattavasti kyvykkäämpi. Ja ehkä jo minullakin päivittäisessä käytössä.