Az eredményeinket persze nem csak az Azure szolgáltatásain belül vagyunk képesek használni, hanem simán ki tudjuk vinni a modellünket egy külső appra is. Gyors megmutatom, hogy hogyan is néz ez ki C# és R programokban.
Mind a kettő programnyelvhez elsősorban szükség van az API kulcsra, és egy mintakódra, amely ugyanúgy megtalálható a Web Service oldalának a REQUEST/RESPONSE linkje alatt. (A példakódok C#, Python és R kódokhoz az oldal alján lesznek, teljesen az alján)
C#
Nyissunk meg egy Visual Studio-t, majd kezdjünk is rögtön egy új projektet. (Ami most egy sima Console App. lesz, mert erre van a példakód, de ezt nem nagy tudomány átírni. 😀 )
Mivel az app HTTP alapú kapcsolattal fog működni, szükségünk lesz egy csomagtelepítésre, hogy hasznáni tudjuk a post requestet. Ehhez nyissuk meg a NuGet Package Manager Console -t.
Ha megnyitottuk, akkor a Console ablakba pattintsuk be a következő parancsot:
Install-Package Microsoft.AspNet.WebApi.Client
Ha az install lefutott akkor minden hiba nélkül fogjuk tudni használni a példakódot!
Ezek után, az említett Request/response oldal alján található C# mintakódot egy sima copy-paste módszerrel tegyük be a Program.cs fájlba (Fontos, ami eddig volt benne az kuka, nem kell onnan semmi 😀 ).
Első dolog amit meg kell tennünk, az az, hogy az API kulcsunkat másoljuk be a kódba. Ezt az apiKey változónak kell megadni kábé az 54. sorban.
Ha ez megvan, lényegében futásra kész a példakód. És most jegyeznék meg néhány infót a példakóddal kapcsolatban. Először is ahogy látszik is szépen benne az adatainkat egy dupla string tömbös megoldásban tárolódnak, az első a ColumnNames az inputok nevei, azok amelyeket a web servicben megadunk. A második a a Values, értelemszerűen az alapértelmezett numerikus vagy szöveges értékeket tartalmazza az input paraméterek számára. Ha minden alapértelmezetten hagyunk, azaz 0 vagy value értéken akkor lényegében le kell fusson az kód és sikeresen meg kell hívódjon a web service.
Na de cseréljük ki az alapértelmezett Values tömb értékeit (vagyis most értékét az én esetemben, mert a legutóbb feltett film javasló modellel ügyeskedem most.) valós értékekre és nézzük meg, hogy értelmes adatot kapunk-e vissza. tehát nálam most egy user id kell kell és megkapjuk hozzá azt az 5 filmet amit nagyon de nagyon meg kellene nézni az adott usernek.
Az eredmény pedig a Console-ban szépen leolvasható, ugyanúgy mint ahogy eddig a Studio-nak a tesztfelületén:
R
Az R script esetében sem túl bonyolult a helyzet, és az eljárás módja sem tér el túlzottan az előbbi folyamattól, de azért nézzük:
(Ahhoz hogy minden tökéletes legyen jobb ha az R beszerzése mellett az RStudio is felkerül az gépünkre, kicsit kellemesebb vele a munka.
R link itt ezen az oldalon
RStudio link itt ezen az oldalon)
Az RStudio megnyitása után itt is kreálunk egy új scriptet, majd ismét a Request/Response oldalon található R mintakódot bemásoljuk a munkaterületre.
DE még nem futtatjuk, mert itt is szükség van némi install-ra, azaz pontosabban kettő darab csomag feltelepítése szükséges. Ezt a Tools menüben az Install packages… menüpont alatt tehetjük meg.
Itt megjelenik egy ablak, ahol a Packages beviteli mezőbe nekünk a következőt kell beütögetni: RCurl, RJSONIO (mehet vesszővel egyszerre). Figyeljünk rá, hogy a csomagok használva legyenek, és fel legyen telepítve mert különben hibakódok tömkelegét kapjuk meg. Azt, hogy egy csomag használatban van-e a Studió jobb alsó ablakában található Package ablakban kereshetjük meg, illetve ki és be is kapcsolhatjuk az egyes csomagok használatát.
Majd Install gomb, ezután majd a konzolon is látszik, hogy megy a dolog, egy letöltés ablak is meg fog jelenni, tehát pörög a munka.
Most újra ott tartunk, hogy szükségünk lesz az API kulcsunkra, ezt a szokásos helyről másoljuk be a kódba, pontosan a 23. sorban található api_key változóhoz.
Ha mindennek megvagyunk, akkor futtathatjuk is a kódot, (már kicseréltem a user-id-t 111-re, hogy ugyanazt az eredményt kapjuk meg mint a C# kód esetében). A kódot futtatni az RStudióban úgy lehet, hogy kijelöljük az egész kódot a munkaterületen, majd a munkaterület jobb felső sarkában a Run gombra kattintunk, vagy ütünk egy ctrl+ENTER kombinációt.
Ha sikeresen lefutott a kód, akkor a Console ablakban megjelenik a várva várt információ.
Nos, összegzésül ezek a kis példák tökéletesen elegek kellenek legyenek arra, hogy elinduljunk egy komolyabb kód megírásában és az Azure Ml eredményeink felhasználásában.