Iako su Googleovi servisi dobro poznati korisnicima širom svijeta jer ih koriste svakodnevno (tražilica, elektronička pošta, kartografski servisi, itd.), nešto manje poznato je da su svi ti servisi (i još poneki dodatni) dostupni i programerima u slučaju da ih žele integrirati u vlastita rješenja.
Jedan od sve popularnijih Googleovih servisa je onaj namijenjen automatskom prevođenju različitih vrsta tekstova i dokumenata. Što zapravo nije nikakvo čudo u današnjem globalnom okruženju u kakvom posluje sve veći broj tvrtki. Automatske sustave za prevođenje u takvom okruženju moguće je koristiti u različitim prilikama. Na primjer, za podršku korisnicima vlastitog IT sustava na njihovom prirodnom jeziku bez potrebe za zapošljavanjem djelatnika koji govore upravo taj jezik.
Google Cloud Translation (kako je puni naziv servisa) trenutno je dostupan u dvije verzije:
- Cloud Translation - Basic (v2)
- Cloud Translation - Advanced (v3)
Sasvim očekivano, novija Advanced verzija nudi više mogućnosti i naprednije modele prevođenja nego starija Basic verzija, pa Google preporučuje da se kod svih novih projekata svakako odlučite za nju. Na primjer, u naprednoj verziji automatskom sustavu za prevođenje možete dodati svoje vlastite specijalizirane rječnike s određenog područja, kako biste poboljšali kvalitetu prevođenja posebnih termina za to područje.
U slučaju da ste s vlastitim projektom započeli ranije prije pojave napredne verzije servisa, moguće je napraviti migraciju s osnovne verzije prema posebno pripremljenim uputama.
Googleov servis za prevođenje može trenutno kod prevođenja koristiti preko 100 različitih polaznih i odredišnih jezika, a u slučajevima kad zapravo niste sigurni o kojem je polaznom jeziku riječ, servis ga može probati prepoznati i sam.
API ključ: U osnovnom obliku nema nikakvih ograničenja za korištenje.
A koliko to košta?
Korištenje servisa za prevođenje nije besplatno, već ga Google naplaćuje, kao i većinu drugih servisa, tako da ga u praksi ima smisla intenzivno koristiti samo u nekom sustavu pomoću kojeg zarađujete, a samo prevođenje je bitan dio tog sustava za privlačenje korisnika.
Kao i obično, kod korištenja cloud servisa različitih proizvođača, postupak točnog izračunavanja potrošnje ovisi o različitim faktorima (vrsti pretplate, količini znakova u jedinici vremena i slično), pa je bolje da detalje provjerite sami ovisno o tome kako točno planirate koristiti servis. Sve potrebne informacije nalaze se na web adresi: https://cloud.google.com/translate/pricing
Dobra strana u cijeloj priči je to što Google odobrava i besplatni fond za korištenje servisa koji bi trebao biti dovoljan za upoznavanje sa servisom i izradu vlastitog rješenja.
Priprema API ključa: Potrebno je kliknuti na Create Credential i izabrati vrijednost API key.
Priprema servisa za korištenje
Prvi korak u korištenju servisa za prevođenje u vlastitim projektima je njegova „aktivacija“ preko odgovarajuće konzole zadužene za upravljanje Googleovim servisima. Spomenuta konzola dostupna je na adresi https://console.cloud.google.com/. U slučaju da nikad prije u svojim rješenjima niste koristili ni konzolu ni Google servise, onda prvo trebate proći kroz postupak registracije novog korisnika.
Nakon prijave u konzolu odmah je dostupan veliki broj Googleovih servisa koji se mogu koristiti kod razvoja vlastitih rješenja. Servisi za prevođenje dostupni su u okviru kategorije AI servisa, kao što to pokazuje prateća slika uz tekst.
Prvo što trebate napraviti u nastavku je dozvoliti njegovo korištenje, nakon čega se prelazi na dodatnu stranicu gdje se može izabrati neki od četiri dostupna modula:
- Adaptive translation
- AutoML translation
- Cloud Translation API
- Translation Hub
API ključ: U osnovnom obliku nema nikakvih ograničenja za korištenje.
Od navedena četiri servisa u nastavku teksta detaljnije ćemo se pozabaviti trećim servisom s popisa (Cloud Translation API), jer upravo taj servis omogućava prevođenje tekstova i dokumenata izravno „iz kutije“. Ostala tri servisa dozvoljavaju korisnicima da u cilju dobivanja što kvalitetnijih rezultata prevođenja ulože i malo vlastitog, dodatnog truda, poput pripreme vlastitih specijaliziranih rječnika. To možete isprobati sami nakon što upoznate način korištenja osnovne verzije servisa.
Korištenje Googleovih servisa je u pravilu povezano s korištenjem odgovarajućeg projekta. Zato ćemo kao prvi korak u pripremi korištenja servisa za prevođenje kreirati novi projekt. To se također izvodi preko ranije spomenute konzole. Osim odabira naziva projekta (u ovom slučaju će to biti TestTranslateProject), može se po potrebi upisati i naziv roditeljske organizacije.
Ovisno o postavkama vlastitog korisničkog računa, u nekom trenutku možete imati na raspolaganju manji ili veći ukupni broj projekata. Ako dostignete postavljenu granicu, možete tražiti povećanje ukupnog broja projekata, ili obrisati neki od starijih projekata (ako ga više ne koristite).
Kao rezultat izvođenja prethodne operacije priprema se novi projekt, a nakon toga otvara nadzorna ploča za pregled različitih parametara projekta, odnosno za nadzor i statističko praćenje različitih povezanih resursa. Svaki projekt osim naziva kojeg smo sami zadali, automatski dobiva i svoj jedinstveni broj (Project Number), odnosno jedinstveni identifikator (Project ID).
Naravno, vrlo važan detalj u čitavoj priči (zbog čega se on također prikazuje pri samom vrhu prikazanih podataka) su podaci povezani s troškovima korištenja i plaćanjem, tako da možete precizno pratiti koliko ćete platiti korištenje nekog servisa uključenog u projekt.
Ograničavanje korištenja API ključa: Moguće je na različite načine – za određenu web ili IP adresu, Android aplikaciju ili iOS aplikaciju.
U sljedećem koraku potrebno je omogućiti korištenje svih potrebnih API poziva. U ovom slučaju su to samo API pozivi iz biblioteke zadužene za prevođenje tekstova i dokumenata. Najjednostavniji način da to napravite je korištenjem sljedećeg dijela nadzorne ploče: Getting Started > Explore and enable API.
Budući da je novi projekt pripremljen ispočetka, u njemu trenutno nema uključenih nikakvih API poziva, pa je potrebno iz biblioteke API poziva izabrati one koji su nam stvarno potrebni. To se izvodi klikom na link API Library.
Budući da u ovom trenutku Googleov oblak još uvijek ne zna koje su nam biblioteke stvarno potrebne, prikazuje se popis svih dostupnih biblioteka odnosno API poziva. A on je prilično impozantan – u trenutku pisanja ovog teksta preko 450 različitih biblioteka. Srećom, na prikazanom popisu napravljeno je grupiranje biblioteke u logičke kategorije, pa je zato ipak nešto jednostavnije pronaći to što nam je stvarno potrebno. U ovom konkretnom slučaju treba kliknuti na kategoriju / biblioteku: Machine Learning > Cloud Translation API.
Kao rezultat prethodnog odabira prelazi se na detaljnu stranicu s podacima o izabranoj API biblioteci. Osim brzog pregleda mogućnosti biblioteke, cijene njezinog korištenja te prateće dokumentacije, prikazan je i pregled sličnih povezanih biblioteka.
Na primjer, ako u vlastitom projektu planirate koristiti biblioteku za prevođenje tekstova i dokumenata, onda postoji dosta veliki stupanj vjerojatnosti da vam mogu zatrebati i biblioteke za sintezu govora na temelju postojećeg teksta Cloud Text-to-Speech API, odnosno biblioteka za razumijevanje govora i prevođenje u tekstualni zapis Cloud Speech-to-Text API.
https://cloud.google.com/translate/docs/editions: Napredna verzija servisa ima brojne prednosti u odnosu na osnovnu verziju.
Za sada ćemo se ograničiti samo na korištenje osnovnog servisa i kliknuti na Enable. Na taj način je omogućeno korištenje biblioteke Cloud Translation API u vlastitom projektu. Međutim, prije pravog korištenja, potrebno je pozabaviti se još jednim aspektom korištenja biblioteke, a on je povezan sa sigurnošću korištenja.
Kad u cijelu priču ne bi bio uključen i sigurnosni aspekt, a korištenje servisa se naplaćuje, sasvim je logično da bi veliki broj korisnika/programera došao na ideju da koristi „tuđe“ servise te tako izbjegne njihovu naplatu. Da bi se to izbjeglo potrebno je pripremiti odgovarajuće vjerodajnice (credentials). Google nudi više različitih načina na koji se može osigurati sigurnost korištenja vlastitih servisa, a njihovo detaljno opisivanje i uspoređivanje daleko prelazi okvire ovog teksta.
Zato ćemo za sada ovo riješiti na najjednostavniji mogući način klikom na predloženi gumb Create Credentials. Kao rezultat izvođenja prethodne operacije u prvom koraku dobije se mogućnost odabira jedne od tri dostupne vrijednosti:
- API Key
- Oauth client ID
- Service Account
U ovom slučaju, prije svega u svrhu demonstracije korištenja servisa, za prevođenje ćemo izabrati najjednostavniji slučaj. To je izbor prve vrijednosti – API Key. Kao rezultat izvođenja ove operacije dobije se odgovarajuća vrijednost API ključa, koja tijekom korištenja nije ograničena ni na koji način.
REST API primjer korištenja: Tekst za prevođenje šalje se pomoću odgovarajućeg API ključa.
U ovom trenutku netko drugi može koristiti vaš API ključ (ako ga sazna) u vlastitim rješenjima, a korištenje servisa za prevođenje naplaćuje se vama! Zato su na pratećim slikama uz tekst zacrnjeni dijelovi API ključa kojeg je autor teksta pripremio tijekom pripreme ovog teksta. Što je dobra praksa ako u nekakvoj razvojnoj prepisci trebate spominjati kao dio programskog koda i API ključ, a ne želite da ga saznaju neovlaštene osobe.
Naravno, autor teksta je mogao primijeniti i drugi pristup te nakon pripreme teksta obrisati stari ključ i pripremiti novi za buduće korištenje servisa. U tom slučaju bi mogao u tekstu prikazivati svoj stari ključ, a nitko ga ne bi mogao koristiti, jer u stvarnosti više ne postoji. Da ne zbunjujemo čitatelje vrijednostima ključeva to namjerno nije napravljeno, pa je zato najbolje da sami pripremite svoj vlastiti ključ prema priloženim slikama.
Iako API ključ u trenutku stvaranja nije ograničen ni na koji način u smislu mogućnosti korištenja, to se može korigirati naknadno tako da njegovo korištenje bude ograničeno na određenu IP adresu, web adresu, Android aplikaciju, odnosno iOS aplikaciju. Osim toga, možete naknadno prijeći i na neki drugi (već spomenuti) oblik korištenja vjerodajnica.
Korištenje servisa
Sad konačno imamo sve što nam je potrebno za korištenje servisa, pa možemo pokazati prvi i najjednostavniji način pozivanja u REST API obliku. To možete napraviti izravno u adresnoj liniji preglednika na sljedeći način:
https://translation.googleapis.com/language/translate/v2?key=APIKEY&q=today is monday&target=hr
Vrijednost APIKEY treba zamijeniti vlastitim ključem, a kao „q“ parametar možete navesti bilo koji tekst. Opcijom „target“ birate odredišni jezik.
Kao rezultat izvođenja prethodnog upita, trebali bismo dobiti sljedeći rezultat u JSON formatu. Njega možete obraditi u vlastitom rješenju i prikazati na željeni način
{“data”:
{“translations”:
[
{
“translatedText”: “Danas je ponedjeljak”,
“detectedSourceLanguage”: “en”
}
]
}
}
Osim u osnovnom obliku kao REST API poziv, Googleov servis za prevođenje možete izravno koristiti i u nekoliko najpopularnijih programskih jezika (C++, C#, Go, Java, Node.js, PHP, Python, Ruby). Za njih je osigurana izravna podrška nakon preuzimanja odgovarajuće klijent biblioteke.
Basic servis:
https://cloud.google.com/translate/docs/reference/libraries/v2/overview-v2
Advanced servis:
https://cloud.google.com/translate/docs/reference/libraries/v3/overview-v3
Budući da se u praksi za izradu velikog broja web rješenja i dalje koristi PHP (iako mu stalno najavljuju „odumiranje“), u nastavku je naveden primjer iz dokumentacije koji prikazuje kako bi izgledalo korištenje osnovnog servisa u PHP jeziku:
<?php
require ‘vendor/autoload.php’; // Include the library
use GoogleTranslate\GoogleTranslate;
$apiKey = ‘YOUR_API_KEY’; // Replace with your actual API key
$sourceLanguage = ‘en’; // Source language (e.g., English)
$targetLanguage = ‘es’; // Target language (e.g., Spanish)
$client = new GoogleTranslate($apiKey);
$translatedText = $client->translate(‘Hello world!’, $targetLanguage, $sourceLanguage);
echo “Translated text: $translatedText\n”;
?>
Zaključak
Nadamo se da će današnji tekst predstavljati dobar uvod u to kako se koriste Googleovi servisi za prevođenje, uključujući i pripremu za njihovo korištenje. Kad savladate korištenje osnovnog servisa, možete koristiti i one druge, naprednije, baš kao i potpuno drugačije servise koje nudi Google, ako vam to zatreba u vašim vlastitim rješenjima.