İlk Amazon Alexa bacarığımı necə proqramlaşdırdım və pulsuz Echo Dot qazandım

Echo nöqtə

Proqramlaşdırma öyrənməyə başlamağımdan bir il keçdi. Kodlaşdırma ilə maraqlandım, çünki gözəllik, moda və lüks həyat tərzi dünyasında başqaları ilə işləmək istədim. Cizgi elementləri və digər rəqəmsal media ilə fantastik saytlar yaratmaq istədim.

Onlayn kursa başladım və bir ay sonra freeCodeCamp kəşf etdim. Bu müddət ərzində kod öyrənməyi daha həyəcanverici və dərrakəli oldu.

İnteraktiv problemlərin öhdəsindən gəlməyə kömək etmək üçün digər proqramçılarla real vaxt rejimində əlaqə mövcuddur. Rəy və gələcək öyrənmək üçün məsləhətlər verirlər. Bu mənə inamımı artırmağa və proqramlaşdırma bacarıqlarımı artırmağa kömək etdi.

İyun ayının əvvəlində bir dostum mənə "Amazon Alexa ilə səslə idarə olunan təcrübələr" adlı bir onlayn vebinar haqqında məlumat verdi. Vebinariya ideyası maraqımı oyandırdı, çünki o dövrdə yalnız reklam görmüşdüm, ancaq Alexa ilə işləyən bir məhsul istifadə etməmişdim. Mən imzalanıb heyran oldum.

Vebinarın sonunda iştirakçılar bir təqdimat haqqında məlumat aldılar. 30 gün ərzində bir bacarıq yaratdınız və yayımlasanız, pulsuz bir Echo Dot qazana bilərsiniz. Uğur qazanmaq üçün kifayət qədər məlumatım olub olmadığını bilmirdim, amma öyrənməyə çalışmağa qərar verdim.

İlk tətbiqimi yaratmaq düşüncəsi məni həyəcanlandırdı. Alexa öyrənmə təcrübəm başladı.

Amazon Alexa effektiv cihazları

Alexa nədir və necə işləyir?

Alexa evdə milyonlarla dil təcrübəsinə imkan verən bir bulud əsaslı səs xidmətidir. Alexa cihazlarına Amazon Echo, Echo Dot, Amazon Tap və Amazon Fire TV daxildir.

Bacarıq, Alexa üçün səsli bir tətbiqdir.

Alexa istifadəçilərin cihazlarla qarşılıqlı əlaqə qura biləcəyi "bacarıqlar" təklif edir. Bacarıqlar çox şey etmək üçün yaradıla bilər. Suallara cavab verə, viktorinalar oynaya, musiqi oynaya, həyəcan qaldıra, zarafatlar danışa və s.

Alexa Bacarıqlar Dəsti (ASK) alətlər, API, sənədlər, kod nümunələri və GitHub-a bağlantılar olan şablonlar toplusudur. ASK, Alexa ilə işləyən qurğular üçün bacarıq yaratmaqda inkişaf etdiriciləri dəstəkləyir.

Bir Alexa bacarığı iki əsas komponentdən ibarətdir: bir bacarıq xidməti və bir bacarıq interfeysi.

Buludda olan bacarıq xidməti üçün kodunuz Node.js-də yazılmışdır (Amazon AWS, Lambda, HTTPS xidməti). İstifadəçi sorğularına cavab olaraq Alexa effektiv cihaz tərəfindən görüləcək hərəkətləri müəyyən etmək üçün təlimatlar alır.

Bacarıq xidməti bacarığın necə davranacağını müəyyənləşdirən hadisə idarəedicilərini tətbiq edir. İstifadəçi bir Alexa effektiv cihazda danışarkən hadisə tetiklenir.

Sonra Bacarıq İnkişaf Portalı ilə bacarıq interfeysini konfiqurasiya edin. İstifadəçi interfeysi bacarıq xidmətinin inkişaf etdirdiyi hadisələri tetiklemek üçün istifadəçinin sözlərini emal edir. Bu sahədə istifadəçi adından zəng edə bilməsi üçün bacarıqınızın necə adlandırılacağını müəyyənləşdirirsiniz. Burada bacarıq qarşılıqlılığı modelini də təyin edirsiniz. Bu sayədə istifadəçilərin danışıq sözlərini dinləyə və nəzərdə tutulan məlumatlarla cavab verə bilər.

Bacarıq işini aparan iki komponentin qarşılıqlı təsiridir.

Amazon komandası üç bacarıq şablonuna bağlantılar təqdim etdi. Bu şablonlar işə başlamağınız və Alexa'ın necə qarşılıqlı əlaqədə olduğunu və cavab verdiyini öyrənmək üçün əladır.

  • Günün "fakt" və ya "zarafat" kimi bir şey yaratmaq üçün fakt bacarıqları üçün şablon.
  • Sadə macəra oyunları və sınavlar yaratmaq üçün qərar ağacı şablonu
  • Şablon necə yarada bilərəm? Bənzər addım-addım proseslərlə resept məzmunu kimi bacarıqlar yaradın.

Daha qabaqcıl və inkişaf etmiş istifadəçilər üçün daha çox şablon.

İlk dərc etdiyim Alexa Bacarıq, Makiyaj Faktları

İndi üç bacarıq dərc etdim, Makiyaj Faktları, Moda Faktları və Qızlar Qanunu. Sərbəst bir makiyaj sənətçisi və moda stilisti olaraq çalışıram və ən yaxşı bildiyim şeylərdən başlamağa qərar verdim.

Bu "faktiki bacarıqları" yaratmaq üçün bir bacarıq yaratmaq üçün mövzu və məlumatları araşdırdım. Sonra faktiki bacarıqlar şablonuna inteqrasiya ediləcək faktlar siyahısını hazırladım. Bütün bacarıqlar bir neçə gün ərzində qəbul edildi və yayımlandı.

İlk bacarığımı necə yaratdım

Amazon Geliştirici Portalına daxil olun və ekranın yuxarısındakı Alexa düyməsini vurun.

Amazon Developer Konsolu

Alexa səhifəsində Alexa Bacarıqlar Dəsti üçün "Başlayın" seçin.

Alexa Bacarıqları Dəsti Başlat düyməsini

Növbəti səhifədə "Yeni bacarıq əlavə et" seçin.

Amazon Alexa Bacarıq Kit Təlimindən

Sonra məlumat səhifəsini doldurun.

Bacarıq növü: Xüsusi

İngilis dili

Adı: Makiyaj Faktları

Zəngin adı: (istifadəçinizin bacarığa başlamaq üçün nə söyləməsi lazımdır) Makiyaj Faktları

bacarıq məlumat səhifəm

Qarşılıqlı Model səhifəsinə keçmək üçün Next düyməsini basın. Burada niyyətlər yaradırsınız və ya istifadəçilərin Alexa-dan bunu istəməsini tələb edirsiniz. Sonra yaratdığınız bacarıq haqqında istifadəçinin Alexa-dan soruşduğu ifadələr və ya yollar yaradın. Bu GitHub depolarını faydalı hesab etdim. Nümunələr daxildir: mənə bir fakt ver, mənə bir həqiqəti söylə.

tərəfindən Alexacourse GitHub

Makiyaj faktları üçün interaktiv modeldəki niyyətlərim

{"Niyyət": [{"Niyyət": "GetNewFactIntent"}, {"Niyyət": "AMAZON.HelpIntent"}, {"Niyyət": "AMAZON.StopIntent"}, {"Niyyət": "AMAZON.CancelIntent" }]}

Makiyaj faktları üçün interaktiv modeldəki şərhlərim.

GetNewFactIntent bir həqiqət GetNewFactIntent mənə bir fakt dey GetNewFactIntent mənə bir şey verin

İndi lambda qurma vaxtı gəldi. Https://aws.amazon.com/ saytına girin və konsol daxil olun. Sonra Xidmətlər-Lambda'ya gedin.

Amazon Alexa Bacarıq Kit Təlimindən

AWS bölgənizin səhifənin yuxarı sağında N. Virginia olduğundan əmin olun.

Amazon Alexa Bacarıq Kit Təlimindən

Sonra Lamda funksiyası yaratmaq üçün mavi düyməni vurun.

Bu kimi görünən planı seçin:

Amazon Alexa Bacarıq Kit Təlimindən

Tetikleyicinizi konfiqurasiya edin. Açılan menyudan Alexa Bacarıqlar Kitini seçdiyinizdən əmin olun.

Amazon Alexa Bacarıq Kit Təlimindən

Fəaliyyətinizi konfiqurasiya edin. Funksiya adınızın camelBack yazıldığından əmin olun. Təsviri boş buraxa bilərsiniz, ancaq bu Node.js-də yaradılmışdır.

Yenilənmiş kodu əlavə edin.

Xüsusi hadisə idarəediciləri ilə yazılmış bir AlexaSkill.js faylı var. Çıxış, istək və dili göstərir. Bacarıqlarınıza uyğunlaşdıra biləcəyiniz bir Index.js faylı da var.

Qızlar kod bilər (index.js)
'Ciddi istifadə edin'; var Alexa = tələb ('alexa-sdk');
var APP_ID = "amzn1.ask.skill.1f2c85a9-b1b6-49a8-b94d-8a795d545d98";
var SKILL_NAME = "Qızlar kod edə bilər"; var GET_FACT_MESSAGE = "Budur sizin faktınız:"; var HELP_MESSAGE = "Mənə bir kod faktını söylədiyinizi söyləyə bilərsiniz və ya çıxdığınızdan danışa bilərsiniz ... Mən sizin üçün nə edə bilərəm?"; var HELP_REPROMPT = "Sizə necə kömək edə bilərəm?"; var STOP_MESSAGE = "Əlvida!";
var data = ["Kodlaşdırma fantastikdir.", "Dünyanı dəyişdirəcək vasitələr yarada bilərsiniz.", "Kodlaşdırma yaradıcıdır.", "Kodlaşdırma bir tapmacaya bənzəyir.", "Kodlaşdırma işləri uzaqdan edilə bilər "," Kod öyrənməyi gücləndirir. "," Texnologiya və kodlaşdırma gələcəyin formalaşmasına kömək edir. "," Kod bilən qızlar oyundan qabaqdır "," Hər kəs kodlaya bilər. Yeni bir şey kəşf edəcəksiniz. "," Kodlaşdırma tənqidi düşüncəni təşviq edir "," Qadınlar mükəmməl proqramçıdır "," Kod verən qızlar bütün qadınlar üçün rol modelidir. Texnologiya tələb olunur. "," Kodlaşdırma 21-ci əsrin dili "," Cinsi boşluğu bağlamağa kömək edən qızlar. "," Kodlaşdırma hər yerdə, istənilən vaxt edilə bilər "" " Texnologiya çox gəlirli bir karyera seçimi ola bilər "," Kodlaşdırma yalnız robotlar və veb saytlar yaratmaqdan ibarət deyil. Mövcud olmayan şeylər yaratmağı öyrənirlər. "" Kodlayan bir qız növbəti yeni sosial media tətbiqetməsini yarada bilər "," Texniki bacarıqlara sahib bir qız, müəssisələrin ünsiyyət tərzini dəyişdirə bilər "" "Kod sevən qızlar öyrənirlər."];
export.handler = funksiya (hadisə, kontekst, geri çağırış) {var alexa = Alexa.handler (hadisə, kontekst); alexa.APP_ID = APP_ID; alexa.registerHandlers (Dəstəkçi); alexa.execute (); };
var elektorlar = {"LaunchRequest": funksiya () {this.emit ("GetNewFactIntent"); }, 'GetNewFactIntent': funksiya () {var factArr = data; var factIndex = Math.floor (Math.random () * factArr.length); var randomFact = factArr [factIndex]; var speechOutput = GET_FACT_MESSAGE + təsadüfiFakt; this.emit (': tellWithCard', speechOutput, SKILL_NAME, randomFact)}, "AMAZON.HelpIntent": funksiya () {var speechOutput = HELP_MESSAGE; var reprompt = HELP_REPROMPT; this.emit (': soruş', speechOutput, repompt); }, 'AMAZON.CancelIntent': funksiya () {this.emit (': izah et', STOP_MESSAGE); }, AMAZON.StopIntent: funksiya () {this.emit (': demək', STOP_MESSAGE); }};

Yuxarıdakı iki fayl ilə sıxılmış bir fayl yaradın və zip faylı Lambda-ya yükləyin.

Qabaqcıl parametrləri atlayın.

ARN nömrəsini kopyalayın. Ekranınızın sağ üst küncündə.

Amazon Alexa Bacarıq Kit Təlimindən

Amazon Developer səhifəsinə qayıdın. Bacarıqlarınızı seçin və sol tərəf çubu menyusundakı Konfiqurasiya sekmesini vurun.

AWS Lambda seçimini seçin. Şimali Amerika onay qutusunu seçin. Lambda tablosundan kopyaladığınız nömrəni yapışdırın.

mənim konfiqurasiya səhifəm

Bacarıqlarınızı sınayın. Gerekirse, düzgün işləməsi üçün onu yeniləyin. Bu GitHub anbarında bir fakt bacarığı yaratmaq üçün nümunə kodu tapa bilərsiniz. Onu yoxlayın, klonlaşdırın və özünüzü yazmaq üçün yeniləyin.

Kodunuzu geliştirici konsolunda, Lambda funksiyalarında, Echo-da və Echoism.io-da sınaya bilərsiniz.

Nəşr və məxfilik məlumatınızı daxil edin.

Təbrik edirik ... sertifikat almaq üçün müraciət etməyə hazırsınız.

Amazon Developer Qrupundan rəy almağınız üçün bir neçə gün lazımdır. Bacarıqlarınız təsdiq edildikdə, hər şey işləyir və bütün məlumatlar uyğun gəlir. Onların bacarıqları təsdiqlənir və nəşr olunur və başqalarına təqdim olunur.

Yoxdursa, yenidən göndərə biləcəyiniz üçün düzəltməli olduğunuz şeylər barədə rəy və təkliflər alacaqsınız.

2-ci nəşr Alexa Bacarıq, Moda Faktları

Öyrəndiklərim

  • JavaScript və Node.js ilə tanış olmaq faydalıdır.
  • Bacarıqları tamamlamaq və təqdim etmək üçün sizə Amazon Veb Xidmətləri (AWS) hesabı və Amazon Developer hesabı lazımdır.
  • İstifadə edə bilməyəcəyiniz sözləri və Alexa cavabı ilə ziddiyyətləri yoxlayın.
  • Bacarıqlarınızı əvvəlcədən dinləyin. Məlumat axınını bilmək son dərəcə faydalıdır.
  • Ekranda oxumaqdansa, son istifadəçi tərəfindən səsləndirilən bir şey yaratmaq çox fərqlidir.
  • Bacarıqlarınızı yazarkən son istifadəçi olduğunuzu düşünün. İstifadəçinin Alexa'dan necə məlumat istədiyini başa düşməyimə kömək etdi.
  • Qabiliyyətiniz qəbul edilmirsə, Alexa Bacarıqlar qrupunun rəylərini yoxlayın. Peşə sertifikatını doldurmağınıza kömək etmək üçün əla məlumat verirlər.
  • Mövcud bacarıqlarınızdan birini inkişaf etdirsəniz, təkmilləşdirilmiş qabiliyyət eyni prosesdən keçməlidir.
  • Bacarıqlarınızı təqdimetmə ilə yükləyə bilməsi üçün bir simge və ya şəkil lazımdır.
  • Bacarıqınız qəbul olunduqdan və təsdiqləndikdən sonra Amazon-da canlı yayımlanır.

Hal hazırda iki bacarıq üzərində çalışıram. Biri "Qərar ağacı" şablonundan istifadə edir, digəri "Necə edilir" şablonundan istifadə edir. Bunlar yaratmaq üçün bir az daha mürəkkəbdir, amma yaxın zamanda sərbəst buraxılacağına əminəm.

Sərbəst Echo Dotum da var. Bu cihazla əlaqə qurmaq mənə digər bacarıqları inkişaf etdirmək üçün fikir verdi.

3-cü nəşr olunan Alexa Bacarıq, Qızlar Kod