"Android" üçün "Siri" analoqu: səs köməkçilərinin nəzərdən keçirilməsi. Alice, Google Assistant, Siri, Alexa. Səs köməkçiləri üçün proqramları necə yazmaq olar

Hətta Apple həvəskarları artıq Apple-ın Siri-ni rus dilində buraxmağa tələsmədiyi ilə barışıblar. Artıq gec olduğunu söyləməyə dəyər. Google-un yenilənmiş köməkçisi Siri-dən daha çox şey edə bilər və rus dili onun üçün doğma dil kimidir.

Google Now-ın nə olduğunu bilməyənlər üçün bu, suallara və əmrlərə cavab verən və maraqlarınız əsasında fərdiləşdirilmiş məlumat verən şəxsi köməkçidir.

Məsələn, əgər siz Moskvada yaşayırsınızsa, onda hər səhər gün üçün hava proqnozunuz olacaq. Amma siz başqa ölkəyə tətilə gedən kimi Google bunu dərhal anlayacaq və proqnozu dəyişəcək. Bu kimi onlarla misal çəkmək olar. Google Now üçün əmrlərin tam siyahısını tapa bilərsiniz.

Google Now, Google xidmətlərindən davamlı istifadə edənlər üçün də çox faydalı olacaq. Bu, təkcə Gmail və axtarış deyil, həm də YouTube, Google+ və Google Maps-dir. Bu xidmətlərdəki bütün hərəkətlərinizi təhlil edərək, Google həqiqətən gözəl məsləhətlər verir. Burada, məsələn, onlardan biridir.

YouTube-da The Black Keys-in yeni sinqlına qulaq asdığımı görən Google mənə xatırlatdı ki, onların albomu artıq çıxıb və eyni mahnını təkrar-təkrar dinləmək əvəzinə onu almaq yaxşı olardı.

Google İndi xatırlatma kimi də istifadə edilə bilər. Yeganə mənfi cəhət odur ki, mikrofona nə qədər qışqırsam da, “Mənə qutu almağı xatırlat” desəm də, Google yalnız bu ifadə üçün axtarış sorğusunu qaytardı. Baxmayaraq ki, avtomatik olaraq xatırlatma təyin etməlidir.

Hər halda, yəqin ki, tezliklə düzələcək və siz səsli əmr olmadan xatırlatmalara daxil ola bilərsiniz. Onlar alt paneldə mövcuddur.

Google İndi başqa nə edə bilər? Standartdan:

  • ad günlərini xatırlatmaq
  • tez-tez istifadə olunan marşrutlarda tıxacları göstərin
  • səhm kotirovkalarınız
  • cari bölgədəki hava
  • Gmail-də təyyarə biletlərini təhlil edin və sıxlıq və digər məlumatları nəzərə alaraq hava limanına getməyinizi xatırladın
  • booking.com və ya AirBNB-də rezervasiyalarla eynidir

Bütün bunlar kifayət qədər uzun müddətdir və çoxlarına məlumdur. Daha maraqlı xüsusiyyətlərə daha yaxından nəzər salaq:

  • bağlamanın izlənməsi - izləmə nömrəsi olan bildiriş poçta gələrsə, Google Now bağlamanı izləyə və təyinat yerinə çatdıqda sizə xəbər verə bilər
  • uçuş statusunuzu göstərin
  • sevdiyiniz komandanın oyunlarını xatırladın
  • sevdiyiniz teleserialın epizodlarını və musiqi qruplarının buraxılışlarını xatırlatmaq
  • sevimli saytlarınıza yeniləmələri göstərin

Google Now Siri-ni əvəz edə bilərmi? Əlbəttə bilər! Mən iPhone-dan istifadə etdiyim bütün müddət ərzində (bir ildən çox) Siri-dən yalnız bir neçə dəfə istifadə etmişəm. İlk dəfə əlləri titrəyərək, inanılmaz bir şey gözləyərkən, digər vaxtlarda isə ona bir şans daha verməyə çalışırdı.

Nə qədər kədərli səslənsə də, bölgəmizdəki Siri tamamilə faydasız bir şeydir. Eyni şeyi Google Now haqqında demək olmaz. Rus dilinin olması ilə yanaşı, lazımi anda həqiqətən faydalı məlumatları göstərir.

İndi mənfi cəhətləri haqqında. Google Now tam işləməsi üçün məkan xidmətlərinin aktiv olmasını tələb edir. Google and içir ki, bu, cihazın batareyasının ömrünə faktiki olaraq heç bir təsir göstərmir. Amma məndə fərqli məlumatlar var. Bir gün istifadə zamanı Google Now ödənişin təxminən 10 faizini yeyir.

Burada mənfi cəhətlər sona çatır və yalnız müsbət təəssüratlar qalır. Google Now həqiqətən gözəl xidmətdir və onun faydalı ola biləcəyi vəziyyətlərin sayı siyahıdan kənardadır. Buna görə də, əlavə 10% ödəniş xərcləməkdən qorxmursunuzsa, bu sehrli proqramı iPhone-da quraşdırın!

2011-ci ildə Apple yeni bir inqilab etdi - onların smartfonu danışdı. Siri-nin görünüşü gadget nəzarətinin yeni dövrünü qeyd etdi. İnsanlar bir şəxs kimi qadcetləri ilə əlaqə saxlaya bildilər, onlardan vacib (və o qədər də vacib olmayan) məlumatları soruşa bildilər. Hava, xatırlatmalar və ən son poçtu indi tətbiqdən tətbiqə keçmədən tapmaq olar. Təbii ki, digər texnologiya şirkətləri və smartfon istehsalçıları kənarda dayana bilmədilər və Siri-dən fərqli dərəcədə yaxşı və ya pis oxşar həllər göstərməyə qərar verdilər. Bu yazıda Android üçün ən yaxşı Siri analoqları, nə qədər irəliləyiş əldə edildiyi və bu analoqların nəyə qadir olduğu haqqında danışacağıq.

Google İndi

Google Now digər səsli köməkçilərdən fərqli olmasına baxmayaraq, hələ də Android üçün Siri analoqu hesab olunur. Google Now telefonunuzda yaşayan, maraqlarınız, fəaliyyətləriniz, qarşıdan gələn uçuşlar və təqvim tədbirləri haqqında hər şeyi bilən süni intellektdir. Katiblik funksiyasına əlavə olaraq, Google Now İnternetdə məlumat axtarmaq üçün əla iş görür. OK Google komandası artıq dinin sevimlisinə çevrilib və milyonlarla insana hər gün suallarına cavab tapmağa kömək edir. Google Now axtarış sorğularınızı toplaya və onlara əsaslanan müvafiq məlumatları göstərə bilər. Məsələn, siz bu yaxınlarda sevimli komandanızın oyununa bilet axtarırdınız. Bu halda, Google Now sizə qarşıdan gələn oyun, komandanın digər oyunları və turnirdə irəliləyişləri haqqında məlumat olan kartları göndərməyə başlayacaq.

Google köməkçisi

“Assistant” Google Now-ın inkişafında yeni mərhələdir. Bu, ən yaxşı halda Android üçün Siri-dir. Köməkçi təkcə sələfindən daha ağıllı deyil, həm də daha funksionaldır. Siz ondan xatırlatmalar, təqvim tədbirləri yaratmaq və mesaj göndərmək üçün istifadə edə bilərsiniz. İşə gedərkən qaya vurmaq istəyirsiniz? “Assistantdan” sizə janrda TOP ən yaxşı trekləri ifa etməsini xahiş edin və o, sizin üçün mükəmməl pleylist yaradacaq.

Başa düşmürsən ki, lövhədə nə söz yazılıb? “Assistant”dan onu öz dilinizə tərcümə etməsini xahiş edin, çünki o, əla dilçidir və 100-dən çox dil bilir.

Bu kifayət deyil? “Assistant” ani messencerlərdə ünsiyyət qurmağınıza kömək edəcək, soruşduqda sizin üçün sözlər, tarixlər və əlaqə məlumatlarını seçəcək. Və "köməkçi" zarafat edə, hekayə danışa və ya kabineti harada yerləşdirməyin ən yaxşısı barədə məsləhət verə bilər.

Cortana

Microsoft bu yaxınlarda öz cihazlarına və rəqiblərinin qadcetlərinə oxşar funksiyalar təqdim edərək, rəqiblərini tutmaq üçün sonsuz (və uğursuz) cəhdləri ilə məşhurlaşıb. Microsoft Android üçün Siri-nin bir növ analoqunu hazırlamaqdan çəkinmədi. Onun adı Kortanadır (bu, Halo oyunundakı personajlardan birinə istinaddır). Əslində, bu köməkçi rəqiblərindən demək olar ki, fərqlənmir. Microsoft bir anda iki stulda oturmaq cəhdi etdi, buna görə də interfeysdə canlı ünsiyyət hissi yaradan konkret istifadəçiyə və insanpərvər həmsöhbətə uyğunlaşan smart kartlar var.

Əslində, köməkçi çox ağıllı deyil; o, demək olar ki, bütün məlumatları əl ilə verməli olacaq. O, çətin ki, sizin maraqlarınızı və istəklərinizi öyrənə bilsin, əgər bunun üçün başqalarından yox, Microsoft xidmətlərindən istifadə etməlisinizsə. Digər tərəfdən, Cortana ilə bir az vaxt keçirib onu öyrətsəniz, o, çox faydalı bildirişlər göndərməyə başlayır, məsələn, sizə yaxın olan ucuz restoranları, şəhərinizdəki kinoteatrlarda nümayiş olunan ən son filmləri göstərmək. Mağazaya yaxınlaşdığınız zaman və ya gələn həftə üçün hava proqnozunu göstərdiyiniz zaman Cortana sizə alış-veriş siyahınızı xatırladacaq.

Bixby

Rəqiblərin fikirlərini çoxdan kopyalamalı olan Samsung idi. 2017-ci ildə Galaxy S8 ilə birlikdə Koreyalı mühəndislər bizə qeyri-adi Bixby adı ilə çağırdıqları süni intellekt sahəsində öz inkişaflarını göstərdilər. Maraqlıdır ki, Bixby sadəcə Android üçün Siri analoqu deyil. Bu, gün ərzində məsləhətlər verməyə və faydalı məlumatlar tapmağa hazır olan öz-özünə öyrənmə xidmətlərinin bütöv bir kompleksidir. Funksionallıq Google Assistant və Siri-nin özündən çox da fərqlənmir, ona görə də vacib fərqlər haqqında danışaq.

Birincisi, Bixby konteksti başa düşür və koqnitiv tolerantlığa malikdir. Yəni ondan Marlon Brandonun kim olduğunu, sonra adını çəkmədən hansı filmlərdə rol aldığını soruşsanız, Bixby sizin dialoqunuzu təhlil etdikdən sonra kimdən danışdığınızı anlayacaq. İkincisi, Bixby kameradan məlumat axtara bilər. Bu o deməkdir ki, siz sadəcə onu hansısa əşyaya və ya obyektə yönəltməlisiniz - və Bixby dərhal sizə İnternetin bu barədə bildiyi hər şeyi söyləyəcək.

"Yandex. Alisa"

Yaxşı, rus dilində "Android" üçün "Siri" nin son analoqu "Alice" dir. Yandex uzun müddətdir ki, süni intellekt və nitqin tanınması ideyasını inkişaf etdirirdi, buna görə də gec-tez belə bir layihənin gün işığını görəcəyi aydın idi. Alice digər köməkçilərin bacardığı hər şeyi edə bilər, lakin eyni zamanda Rusiya bazarına uyğunlaşır və Yandex xidmətlərində məlumat axtarır. Alice, Bixby kimi, konteksti başa düşür, ancaq bəzi mövzularda. Əksər hallarda o, yalnız bir suala cavab verə bilər. Alisa sizin üçün mahnı oxuya və ya cansıxıcı olsanız gülməli zarafat edə bilər və ya sizi axtarışa və məqalənin özünə getməyə məcbur etmədən Vikipediyada vacib məlumatları axtara bilər. Tələffüzdə bəzi səhvlər var idi, lakin Yandex-in hələ də yerli şirkət olduğunu nəzərə alsaq, bütün çatışmazlıqların tez bir zamanda düzəldiləcəyinə əmin ola bilərsiniz.

Apple şirkəti Siri səsli köməkçisini təkmilləşdirməyə davam edir. iOS 8 əməliyyat sistemində şəxsi köməkçi səsli sorğuları daha yaxşı başa düşməyə və daha dəqiq cavab verməyə başladı, funksiyanı Google Now ilə müqayisə edən Stone Temple Consulting əməkdaşları deyirlər. Bununla belə, Google-un rəqibi bu suallara daha yaxşı cavab verir.

Sınaqda üç köməkçi iştirak edib: Siri, Google Now və Cortana. Microsoft, xatırlayırıq ki, öz texnologiyasını əvvəllər Apple və Google tərəfindən həyata keçirilən xüsusi funksiyalar qarışığı kimi yerləşdirir. Təbii dil üçün tam dəstək var və tərtibatçıların fikrincə, Apple məhsulundan fərqli olaraq, xidmət hər bir istifadəçinin ehtiyaclarına uyğunlaşdırılıb.

Testin mahiyyəti ondan ibarət idi ki, hər üç iştirakçıya eyni suallar verilib. Siri, Google Now və Cortana 3086 suala cavab verməli idi. Cortana və Google Now həm yazılı, həm də şifahi sorğuları qəbul edir. Buna baxmayaraq, təcrübənin saflığı üçün suallar səsləndirildi. Onların arasında hər ikisi sadə idi - "Eyfel qülləsinin hündürlüyü", daha mürəkkəbləri - "Sevgi nədir?", "5 dollarlıq əskinasda kim təsvir olunub?", "Tülkü nə deyir?"

Google Now müsabiqənin qalibi oldu. Buna səbəb Google-un Apple-dan fərqli olaraq axtarış nəticələrində ixtisaslaşmasıdır. 3086 sualdan xidmət 1795 suala az-çox dəqiq cavab verə bilib - bu 58%. Siri 908 sualı (29%) düzgün həll edə bildi, Cortana isə yalnız 630 sualı (20%) idarə etdi.

Təcrübə müəllifləri köməkçinin nə qədər tez-tez tam dəqiq məlumat verdiyini ayrıca hesablayıblar. Məsələn, "Böyük Çin səddinin neçə yaşı var?" konkret yaş deyil, “e.ə. 206-cı ildə tamamlanmışdır” cavabı yanlış hesab edilmişdir. Burada Google Now yenidən geniş fərqlə qalib gəldi - dəqiq cavabların 88%-i Apple və Microsoft həlləri üçün 53% və 40%.

Stone Temple Consulting qeyd etdi ki, obyektivliyinə baxmayaraq, tədqiqat dərin elmi deyil, ona görə də ona kifayət qədər ironiya ilə yanaşmaq lazımdır.

Hər kəs köməkçinin Yandex-dən ictimaiyyətə buraxılması haqqında yazmağa başladığından, mənə icazə verin, məncə, rus mənşəli möcüzəni hərəkətdə sınayacağam. Bəlkə Alisa həm bizə, həm də ona tanış olan dili Qərb mənşəli bir məhsuldan daha yaxşı başa düşə biləcək?

Mən həm Alisa, həm də Siriyə bir neçə sual verdim: ondan belə çıxdı.

Masamda bir şüşə Pinot Gris, Fragolino və Ale var idi və hansını içməli olduğumu soruşduqda köməkçilər aşağıdakıları təklif etdilər.



Müqayisə sualı: "Alis, sən Siridən yaxşısan?" Siri, sən Alicedən yaxşısan? Təbii ki, Apple-ın ağıllı köməkçisi xəbərlərimizi izləmir və Alisin nə olduğunu bilmir. Siri müqayisəli sualdan inciyə bilsə də, o, fərqli davrandı - o, şəbəkədən Alice rok qrupu haqqında məlumat əldə etdi. Kinçev hər birimizdən razıdır.


“Səni kim yaratdı” sualına belə cavablar aldım:


Coğrafi bir sual: "Odessadan Moskvaya necə getmək olar?" Düzünü desəm, hər iki köməkçinin mənə təyyarə və uçuş cədvəlləri təklif edəcəyini gözləyirdim, lakin Siri sadəcə ondan nə istədiklərini başa düşmədi və Alice mənə yol qovşağı seçsəm şəhərdən şəhərə olan məsafəni dedi.


Məlumat sualı: "10 il əvvəl 10 oktyabrda nə baş verdi?" Hər iki səs köməkçisi məni axtarış sisteminə göndərmək qərarına gəldi, lakin bu halda Alice strateji üstünlükdədir, əlbəttə ki, Yandex vasitəsilə axtarış aparacaq, baxmayaraq ki, mən bu axtarış sistemindən istifadə etmirəm, onun seçimi göz qabağındadır.


Ancaq burada gözlənilməz bir dönüş, hərəkət tələbi var: "Sabah saat 10-da Balıq restoranında görüş təyin edin." Siri tapşırığı dəqiq müəyyənləşdirdi və tədbiri təqvimə uyğun tarix və vaxta daxil etməyi təklif etdi, Alice ondan nə istədiyimi başa düşmədi və söhbətə davam etdi.


İndi yekun nəticə çıxarmaq tezdir, Alisa beta vəziyyətindədir, sizinlə uzun müddət və şirin ünsiyyət qura bilir, özünü insan kimi göstərir, xarakter nümayiş etdirir; lakin ilk dəfə konkret hərəkətləri və istəkləri yerinə yetirməyə hələ hazır deyiləm. Siri, öz növbəsində, axmaqdır, lakin əməliyyat sistemi ilə yaxşı inteqrasiya olunmuş əsas sorğular və sorğular üçün yaxşıdır.

Xüsusilə rusdilli istifadəçilər üçün səsli köməkçilər bazarı genişlənir. 2 həftə əvvəl Yandex ilk dəfə Yandex.Dialoqlar platforması haqqında danışdı, 2 ay əvvəl Google Google Assistant üçün rus dilində dialoq yazmaq qabiliyyətini təqdim etdi, 2 il əvvəl Bill Graham Civic Auditorium mərhələsindən Apple SiriKit-i açıq şəkildə buraxdı. . Əslində, yeni inkişaf sənayesi yaranır, onun öz dizaynerləri, memarları və tərtibatçıları olmalıdır. Səs köməkçiləri və onlar üçün API-lər haqqında danışmaq üçün mükəmməl an.

Bu məqalədə ətraflı təlimatlar olmayacaq. Bu, əsas bazar oyunçularının üçüncü tərəf tərtibatçıları üçün alətlərin qurulduğu ideyalar və maraqlı texniki detallar haqqında məqalədir: Apple Siri, Google Assistant və Yandex-dən Alice.

Təcrübəsiz nəzəriyyəni öyrənmək darıxdırıcıdır. Təsəvvür edək ki, yeni icad edilmiş “DoReMi” pizzacısının tapşırığı ilə qarşılaşırıq. Şirkət rəhbərliyi alıcının pizzacı menyusunu öyrənə bilməsini və səslə pizza sifariş etməsini istəyir. İkinci iterasiya üçün yemək sifarişini tərk edəcəyik, amma indi menyuya keçək. Komandanı əlavə edək “Nə daxildir<Название пиццы>?. İstifadəçi səhv əmr daxil edərsə, nəticə pizzaların siyahısından ibarət olacaq. Tapşırıq sadədir. Texnologiyanı öyrənmək və gələcək genişlənməyə hazırlaşmaq üçün idealdır.

Birinci nöqtə arxa tərəfi qaldırmaqdır

DİQQƏT! Android tərtibatçısı node.js üzərində server qurur. Ürəyi zəif olanlar üçün bu hissəni keçin.

Bizə pizzalar haqqında məlumat saxlamaq və köməkçi API ilə gələcək qarşılıqlı əlaqə üçün server lazımdır. Backend veb tətbiqini konfiqurasiya etmək üçün ekspress çərçivə ilə birlikdə node.js-də yazılacaq. Biz onu Zeit-dən Now platformasında yerləşdirəcəyik. Platforma pulsuzdur və istifadəsi asandır. Yerləşdirmə skriptini başlamaq üçün terminalda “indi” əmrini daxil edirik və cavab olaraq veb tətbiqimizə keçid alırıq.

Layihəni işə salmaq üçün biz Express Generator-dan istifadə edirik. Nəslin nəticəsi veb proqramlar üçün əla çərçivə olacaq, lakin sadə bir API üçün çoxlu lazımsız şeylər var: səhifələr üçün şablonlar, səhv səhifələri, resurslar üçün qovluqlar. Yalnız əsasları buraxaq.

Biz verilənlər bazasından istifadə etməyəcəyik. Məlumatlarımız statikdir, js-də bir obyekt kifayətdir - adları və inqrediyentləri olan pizzaların siyahısı.

Davamlı pizzalar = [ (ad: "Margherita", inqrediyentlər: ["Xəmir", "Pomidor sousu", "Mozzarella Pendiri", "Pomidor", "Reyhan"] ), (ad: "Pepperoni", inqrediyentlər: ["Xəmir" " ", "Pomidor sousu", "Mozzarella pendiri", "Pepperoni"] ), (ad: "Vegetarian", inqrediyentlər: ["Xəmir", "Pomidor sousu", "Mozzarella pendiri", "Göbələk", "Zeytun" , "Yaşıl Bibər", "Feta Pendiri", "Pomidor", "Oregano"] ), (ad: "Dörd Pendir", inqrediyentlər: ["Xəmir", "Pomidor Sousu", "Mozzarella Pendiri", "Parmesan Pendiri" , "Çeddar Pendiri", "Mavi Pendir"] ), (ad: "Havay", inqrediyentlər: ["Xəmir", "Pomidor sousu", "Mozzarella Pendiri", "Toyuq filesi", "Ananaslar"] ), ];
Pizza obyekti əsasında tərkibini göstərəcək bir üsul əlavə edək. Pizza tapılmazsa, cavab pizzacı menyusu olacaq.

Const pizzaInfo = ( getPizzaInfoByPizzaName: funksiya (pizza) ( const wrapName = name => `"$(name)"` əgər (!pizza) ( const pizzaNames = pizzas.map(pizza => wrapName(pizza.name)).qoşulun (", ") return `"DoReMi" pizzasının çeşidinə $(pizzaAdları) daxildir. Mən sizə hər pizzanın tərkibini deyə bilərəm.` ) const inqrediyentlər = pizza.ingredients.map(inqredient => ingredient.toLowerCase()). ).join(" , ") return `Pizza $(wrapName(pizza.name)) tərkibində $(inqrediyentlər).` ), );

Yandex.Alice. Sadə başlayaq

Yandex.Dialoqlar idarə edə biləcəyiniz avtomobilin əsas avadanlığıdır. Ancaq hələ də kifayət qədər kondisioner yoxdur. Yandex platforması əsasları öyrənmək üçün idealdır: bu, üç qəpik qədər sadədir, lakin eyni zamanda, əksər köməkçilərin qurulduğu anlayışları ehtiva edir.

Platformanın əsas vahidi dialoqlardır. Dialoqlar üçüncü tərəf tərtibatçıları tərəfindən yaradılan bacarıqlardır. Köməkçi ilə əsas söhbətə yeni funksionallıq əlavə etmək mümkün olmayacaq. “Alis, mənə pizza sifariş et” ifadəsini qəbul etmək istərdim, amma çoxlu pizzacılar var. İstifadəçi aktivləşdirmə əmrini deməli olacaq: "Alice, mənə DoReMi zəng et." Sonra xidmət "DoReMi" dən dialoqa keçməli olduğunu başa düşür. Biz gücü öz əlimizə alırıq və vebhook texnologiyasından istifadə edərək sorğular və cavablar vasitəsilə serverimizdəki prosesi idarə edirik.

Webhooks nədir?

Webhook, əsas etibarilə, serverə göndərilən POST sorğusudur. Server sorğu qəbul etmək, onu emal etmək və müştəri tərəfindən göstərilən url-ə cavab göndərmək üçün konfiqurasiya edilib. Müştəri cavab gözləmək üçün vaxt itirmir.

Bu kimi bir şey işləyir.

Mağazaya gəlirsən, arabanı malla doldurursan. Mağazada yalnız bir növbə var, çox uzun. Adi supermarketlərdə siz onu müdafiə etməli və çox vaxt sərf etməli olacaqsınız. Paralel kainatda siz başqa işlər görərkən arabanızı növbəyə buraxırsınız. Mağaza işçiləri sizi tapır və paketləri sizə verir. Birinci yanaşma API bənzətməsidir, ikincisi - webhooks.


Şəxsi hesabınızda dialoq yaratmaq üçün müəyyən edilməli olan parametrlər: başlıq, dialoqun mövzusu, aktivləşdirmə adı və serverə url.

Növbəti addım serveri sorğuları emal etmək üçün konfiqurasiya etməkdir. json qəbul edirik, json göndəririk. Və daha da sadədir, əgər json qəbulu, təhlili, məlumatların çıxarılması və cavab göndərmə prosesində əks hərəkətlərlə bütün qabıqları atsaq, istifadəçinin mətnini qəbul edirik və Alice mətnini qaytarırıq. 70-ci illərə, mətn əsaslı interfeyslərə xoş gəlmisiniz.

İstifadəçinin əmri ilə bir xəttimiz var. İstifadəçinin əmri əsasında pizzanın inqrediyentlərini qaytarmaq üçün pizzanın adını çıxarıb cavab olaraq ifadə göndərməliyik. Biz adi stringi təcrid edəcəyik.contains(ifadə). İdeyanın işləməsi üçün sorğuda görünə bilən gövdələr siyahısını (sonsuz söz morfemi) əlavə etməklə pizza siyahımızı modernləşdirəcəyik.

Davamlı pizzalar = [ (ad: "Marqarita", əsas_adı: ["marqarita"], inqrediyentlər: ["Xəmir", "Pomidor sousu", "Mozzarella Pendiri", "Pomidor", "Reyhan"] ), (ad: " Pepperoni", əsas_adı: ["pepperoni", "peperoni", "pepironi"], inqrediyentlər: ["Xəmir", "Pomidor sousu", "Mozzarella Pendiri", "Pepperoni"] ), (ad: "Vegetarian", əsas_adı : ["vegetarian"], inqrediyentlər: ["Xəmir", "Pomidor sousu", "Mozzarella pendiri", "Göbələk", "Zeytun", "Yaşıl bibər", "Feta pendiri", "Pomidor", "Oregano"] ), (ad: "Dörd Pendir", əsas_adı: ["dörd", "pendir"], inqrediyentlər: ["Xəmir", "Pomidor sousu", "Mozzarella Pendiri", "Parmezan Pendiri", "Çeddar Pendiri", " Mavi Pendir"] ), (ad: "Havay", əsas_adı: ["Havay"], inqrediyentlər: ["Xəmir", "Pomidor sousu", "Mozzarella pendiri", "Toyuq", "Ananaslar"] ), ] ;
İstifadəçinin əmri əsasında pizzanın tərkibini qaytaran funksiyanı bir az dəyişdirək.

GetPizzaInfoByUserCommand: funksiya (əmr) ( command = command.toLowerCase(); const pizza = pizzas.find(pizza => (pizza.base_name.some(base => (command.indexOf(base)) !== -1))) ) bunu qaytarın.getPizzaInfoByPizzaName(pizza) ),
Biz JSON-u emal edirik, düzgün cavabı göndəririk və istifadəçini pizzacı veb saytına yönləndirəcək düymə əlavə edirik. Alice-dəki düymələr müntəzəm mətn çıxışına müxtəliflik əlavə etməyin yeganə yoludur. Siz düyməyə istifadəçi cavabı təyin edə və ya URL ilə brauzer aça bilərsiniz. Köməkçini və tətbiqi bir rahat prosesə qoşmaq üçün dərin əlaqədən istifadə edin. Məsələn, pizza sifariş edərkən, ödəniş məlumatlarının artıq saxlandığı və ya Google/Apple Pay vasitəsilə ödəniş edə biləcəyiniz proqramda ödəniş ekranına keçidi konfiqurasiya edə bilərsiniz.

Var express = tələb ("express"); var pizzaInfo = require("../pizza/pizza_info.js"); var router = express.Router(); /* Əsas səhifəni əldə edin. */ router.use("/", funksiya (req, res, next) ( const body = req.body; const commandText = body.request.command; const answer = pizzaInfo.getPizzaInfoByUserCommand(commandText); res.json(( "cavab": ( "mətn": cavab, "düymələr": [( "başlıq": "Sifariş", "url": "https://doremi.fake/" ) ], "son_sessiya": yanlış), " sessiya": ("session_id": body.session.session_id, "message_id": body.session.message_id, "user_id": body.session.user_id), "versiya": body.version )) ));
tts(text-to-speach) parametrindən istifadə edərək siz Alisin səs cavabının audio kitabxanasını fərdiləşdirə bilərsiniz: stress, tələffüz və boşluqlar. Tts-də düzgün yazmaq əvəzinə transkripsiyanı ötürmək daha yaxşıdır. Məsələn, "pazhalusta". Bu, Alisin nitqini daha təbii edəcək.

Dialoqu sınamaq daha asan ola bilməzdi. Şəxsi hesabınızda siz dialoqunuzla konsol vasitəsilə danışa və jsons oxuya bilərsiniz.

Dialoq hazırda layihə mərhələsindədir. Növbəti addım Yandex kataloqunda dərc olunacaq. Nəşr edilməzdən əvvəl Yandex tələblərinə uyğunluğu yoxlanılır: məlumatın etibarlılığı, savadlılıq, etika və digər rəsmi keyfiyyətlər.

Google köməkçisi. Yeni səviyyə

Əgər Dialogues avtomobilin əsas avadanlığıdırsa, Actions on Google masaj kreslosu, avtopilot və şəxsi sürücü olan paketdir, təlimatlar Çin dilindədir. Google-un aləti daha güclü, zəngin, lakin daha mürəkkəbdir. Və texnologiyaya daxil olmaq üçün maneə daha yüksəkdir. Yandex parlaq qısa və sadə sənədlərə malikdir. Google haqqında eyni şeyi deyə bilmərəm. Google-da Actions Dialoqlar ilə eyni aksiomalar üzərində qurulub: aktivləşdirmə əmri, API vasitəsilə əlaqə, veb-qancalardan istifadə, üçüncü tərəf dialoqunun əsas dialoqdan ayrılması.

Sadəlik Dialoqların əsas üstünlüyü və problemidir. Problem ondadır ki, bütün memarlığı özünüz qurmalısınız. İstifadəçinin mətnindən hissələri çıxarmaq üçün yuxarıda həyata keçirilən ən sadə alqoritmi yeni əmrlərə genişləndirmək olmaz. Təkərləri yenidən kəşf etməliyik. Belə anlarda qrafik interfeysin niyə hələ də hökm sürdüyünü başa düşürsən. Lakin Google tərtibatçını darıxdırıcı skriptli proseslərdən azad edən məhsullar tətbiq etdi: istifadəçi əmrlərini təsnif etmək və sorğu və cavablarla işləmək. Birinci vəzifə DialogFlow aka Api.Ai çərçivəsi, ikincisi isə node.js üçün böyük kitabxana tərəfindən həll edilir. Etməli olduğumuz şey API-ni node.js vasitəsilə Actions-a qoşmaqdır. İlk baxışdan bu, lazımsız fəsaddır, amma indi göstərəcəyəm ki, birdən çox komandanın olduğu layihələrdə bu yanaşma qalib gəlir.

DialogFlow tipik maşın öyrənmə problemini həll edir - təsnifat problemi, bizim vəziyyətimizdə istifadəçi əmrlərinin kateqoriyalara təsnifatı. Çərçivəni başa düşmək və konfiqurasiya etmək üçün DialogFlow terminologiyasından iki anlayışı təhlil edəcəyik. Birincisi Müəssisələr və ya qurumlardır. Məsələn, avtomobil markaları, şəhərlər və ya pizza adları. Müəssisə parametrlərində biz qurumun və onun sinonimlərinin nümunələrini müəyyənləşdiririk. Alqoritm sözün kök səviyyəsində obyektə bağlanmağa çalışacaq. Uğurlu olarsa, Google onu arqument kimi serverə göndərəcək.

İkinci konsepsiya Niyyətlər və ya hərəkətlərdir - DialogFlow-un istifadəçi əmrlərini təsnif edəcəyi kateqoriyalar. Niyyətin müəyyən ediləcəyi əmrlərin nümunələrini əlavə edirik. Komanda nümunələrində ilk addımda əlavə edilmiş nümunə obyektlərindən istifadə etmək daha yaxşıdır. Bu, alqoritmin bizə lazım olan arqumentləri təcrid etməyi öyrənməsini asanlaşdıracaq. DialogFlow-un əsas xüsusiyyəti ondan ibarətdir ki, daxil edilmiş şablonlar əsasında Google-un neyron şəbəkələri öyrədilir və yeni açar ifadələr yaradır. Nə qədər çox şablon əlavə etsək, niyyət bir o qədər düzgün müəyyən ediləcək. Gəlin kodda istifadə etməyə davam edəcəyimiz niyyət üçün identifikasiya adı əlavə etməyi unutmayaq.

Niyyətin adı və parametrlər siyahısı var. Qaytarma dəyəri yoxdur. Parametrlərdə statik cavablar əlavə edə bilərsiniz. Dinamik cavablar js kodunun məsuliyyətidir. Sonra, Google-un yanaşmasını daha da sərinləşdirən ikinci şeyi tərifləyəcəyəm - node.js üçün rəsmi kitabxana. Bu, json-u təhlil etmək və uzun ifs və ya keçid blokları vasitəsilə niyyətləri yönləndirmək sevincini əlindən alır.

DialogflowApp obyektini işə salaq və sorğu və cavabı konstruktora ötürək. getArgument() metodundan istifadə edərək biz obyekti komandadan alırıq, tell() istifadə edərək köməkçinin cavabını ötürürük və handleRequest() istifadə edərək məqsəddən asılı olaraq marşrutu konfiqurasiya edirik.

Const express = tələb ("express"); const Assistant = tələb edir("action-on-google").DialogflowApp; const pizzaInfo = tələb edir("../pizza/pizza_info.js"); const app = express.Router(); // webhooks app.use("/", funksiyası (req, res, next) ( // API.AI köməkçi obyektini işə salın. const assistant = new Assistant((sorğu: req, cavab: res)); const ASK_INGREDIENTS_ACTION = "listOfIngredients" // Niyyət adı const PIZZA_PARAMETER = "pizza"; // Müəssisə adı funksiyası getIngredients(assistant) ( qoy pizzaName = assistant.getArgument(PIZZA_PARAMETER); // Köməkçiyə cavab verin. tell(pizzaInfo.getPizzaInfoByUserCommand(pizzaName)); module.exports = proqram;
DialogflowApp bizim üçün bütün çirkli işləri görəcək. Etməli olduğumuz yeganə şey məlumatları çıxış üçün hazırlamaqdır. İndi təsəvvür edin ki, pizza sifarişi qurmaq, menyu və ya sifariş statusu göstərmək, ən yaxın pizzacı axtarmaq və daha bir neçə əmr vermək lazım olanda bu, işimizi necə asanlaşdırır. Bu texnologiya ilə nə qədər insan-saat qənaət edirik!

Cavabların ilkin testini dərhal şəxsi hesabınızda keçirə bilərik.

Daha ətraflı sınaq üçün indi Google ilə simulyator və ya cihaz var.

Google Assistant-da cavab yalnız mətndən deyil, həm də müxtəlif UI elementlərindən ibarət ola bilər: düymələr, kartlar, karusellər, siyahılar.

Bu dayanmağa dəyər. Texnologiyanın digər incəlikləri bir neçə məqalə üçün materialdır. İndi əhatə olunan əsaslar artıq Google Assistant tətbiqinizi yaratmaqda böyük fayda verir. Pareto qanunu fəaliyyətdədir.

Apple SiriKit. Siri-nin niyə geridə qaldığına qısa nəzər salaq

Dialoqlar avtomobilin əsas avadanlığıdırsa və Actions on Google tam paketdirsə, SiriKit bütün Moskvada iki stansiyadan ibarət metrodur.

Apple-ın yanaşmasını hamıdan fərqləndirən iki xüsusiyyət əsas tətbiqə qoşulma və Apple tərəfindən təyin olunan istifadə hallarından birinə məcburi uyğunluq, yəni söhbətin fərdiləşdirilməsinin tam olmamasıdır. Birinci nöqtəyə gəldikdə, hər şey aydındır - cihazda əsas proqram olmadan Siri-də heç bir dialoq olmayacaq. Sizin dialoqunuz sadəcə proqrama əlavədir.

İkinci nöqtə SiriKit-in əsas çatışmazlığıdır. Bütün dialoqlar, bütün mətnlər artıq yazılıb. Siz Siri-nin lüğətinə yalnız bir neçə sinonim əlavə edə və ya sorğu əsasında görünən vidcet yarada bilərsiniz. Bu, Apple'ın sizə verdiyi yeganə azadlıqdır.

Aşağıdakı ekran görüntüsündəki əmrlərə bənzər bir şey etmək istəyirsinizsə, şanslısınız. Bəxtimiz gətirmədi.

Əgər WWDC 2018 sərgisində Apple fərdi dialoqlara yanaşmasını kökündən dəyişməsə, Siri yuxarı pillənin altında qalacaq. Səsli köməkçilər gələcəyin əməliyyat sistemləridir. Sistemi sərin edən proqramlardır. Onlar düzgün yerinə yetirilmədikdə, sistem uğursuz olur. Məhz buna görə iOS zirvədədir. Bu səbəbdən Siri yarışda geri qalır.

Ekspert rəyi. Amazon Alexa, istehsal və gələcək haqqında.

Düşünürəm ki, bizim bazarda səs inkişafı tezliklə əyləncədən ciddi bir şeyə, istehsala keçəcək. Başlanğıc nöqtəsi çox güman ki, rusdilli Google Assistant-ın rəsmi elanı olacaq, yəni Google I/O 2018. Biz özümüzü zehni olaraq hazırlamalı və qərbli həmkarlarımızdan öyrənməliyik. Dostumuz, Omnigondan olan komanda rəhbəri Maksim Kokoşdan soruşdum. Assistant və Alexa ilə işləyirdi.


Maksim Kokoş, Komanda rəhbəri Omnigon

Ümumiyyətlə, nəyi inkişaf etdirdiyinizi bizə deyin?
DialogFlow-dan istifadə edərək Alexa üçün bir bacarığı təkmilləşdirirdim və digərini Alexa-dan Google-da Actions-a köçürürdüm. Üstəlik, çox qısa müddətdə daşıma üçün bir həftə, Alexa bacarığını tamamlamaq üçün bir həftə oldu.

Amazon layihəsi haqqında heç nə bilmirik.
Məqalənizdə Alice, Siri, Google Assistant haqqında yazmısınız, lakin Alexa haqqında yox. Bu, Android və Symbian-ı müqayisə edib iOS-u unutmaq kimidir.

Alexa Google-un əsas rəqibidir. İstehsalın göstərdiyi kimi, onun əhəmiyyətli dərəcədə daha çox istifadəçisi var. Cəmiyyət daha böyükdür. Daha çox sənədləşmə. Həm də nəzərəçarpacaq dərəcədə daha çox bacarıqlar var.

Yeri gəlmişkən, mən Alisin yaxınlaşmasını maşın adlandırmazdım. İki təkərli eşşək arabası maksimumdur. Google Actions və Alexa ilə müqayisədə orada hər şey həqiqətən pisdir. Hətta 2018-ci ildə simləri əl ilə təhlil etmək vəhşilik kimi səslənir.

Sizcə niyə Alexa daha böyük auditoriyaya malikdir?
Məncə Google oyuna sonradan daxil olduğu üçün. Reklama çox az sərmayə qoyulur. Köməkçinin demək olar ki, hər bir Android cihazında quraşdırıldığı və ya quraşdırıla biləcəyinə baxsaq, onlar daha populyarlaşa bilər.

Alexa-nın xüsusiyyətləri nələrdir?
Alexa-da seans daxilində dövlətlə işləmək rahatdır. Məsələn, banyoda işığı yandırmağı xahiş edirsiniz. Məlum oldu ki, "İşığı yandır" niyyəti var və obyekt vanna otağıdır. Sonra "Söndürün" deyirsiniz. Sessiya daxilində kontekst lazımlı olduğu yer budur. Niyyətin işlənməsi zamanı biz "hamam otağı" vəziyyətini təyin edə və sonrakı niyyətləri qəbul edərkən istifadə edə bilərik. Google-un oxşar məqsədlərə xidmət edən Təqib Niyyətləri var, lakin onlar o qədər də çevik deyil.

Alexa sizə bacarıqların necə qurulacağını açıq şəkildə izah edir. Bu, istifadəçiyə tanış olan bir yanaşmadır - bacarıq mağazası. Google bacarıqları avtomatik quraşdırılır.

Baxış prosesi hər iki platformada çox ciddidir. Rəyçilər hər cavabın bir nöqtə ilə bitdiyinə əmin olurlar ki, istifadəçi qarşılıqlı əlaqəsi bunun üçün təbii görünsün, hər platformanın öz qaydaları var ki, hətta təsvirdə heç bir qrammatik səhv olmasın və orada çoxlu mətn var; . Amazon-un nəzərdən keçirilməsi adətən 2-3 gün çəkdi, Google bunu 1 gündə tamamladı.

Google Actions-ın inkişafı özü daha sadə görünürdü: siz Firebase-də aksiya keçirdiniz, onu 2 kliklə bağladınız və indi hər şey inkişafa hazırdır. Xaricdə sorğu vermək istəyirsinizsə, ödəniş etməlisiniz. Yalnız Google xidmətlərinə daxil olursunuzsa, o zaman bunu pulsuz edə bilərsiniz. AWS, daha çox iş yükü səbəbindən daha çaşqın görünür.