Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GoogleHomeを買い物に役立てる
Search
fuwamaki
January 15, 2018
Technology
0
42
GoogleHomeを買い物に役立てる
社内発表で用いた資料。
特に社内情報などないので公開します。
fuwamaki
January 15, 2018
Tweet
Share
More Decks by fuwamaki
See All by fuwamaki
iOSの理想的なUIを考える
fuwamaki
3
770
xcode10の新機能について
fuwamaki
1
1.3k
Other Decks in Technology
See All in Technology
統計的学習理論読み Chapter 2
kmatsui
1
180
データ化エンジニアとしての1年を振り返る
sansantech
PRO
3
250
関数型DDDの理論と実践:「決定を遅らせる」を先につくり、 ビジネスの機動力と価値をあげる
knih
2
150
サービス成長と共に肥大化するモノレポ、長くなるCI時間 / As services grow, monorepos get bigger and CI time gets longer
kohbis
5
2k
Skaffoldを用いたGKEアプリケーションの CD(Continuous Development)
kojake_300
1
230
ビジネスとコード品質の接合点 そしてコード品質がそこに及ぼす影響 / The Intersections of Business and Engineering, and The Impact of Code Quality There
mtx2s
10
1k
SREsのためのSRE定着ガイド
netmarkjp
10
1.4k
TCA入門したてなので、自分が馴染みのある実装と比較しながらキャッチアップしてみる
fumiyasac0921
1
370
検証からプロダクトへ: シームレスなLLM開発の ためのしくみ作り
nunukim
1
100
理想の組織も自分たちで作ろう! ―LayerXの「全員採用」を支える文化 / How to create our own ideal team
ar_tama
7
2.5k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
11
2.7k
なんで私に登壇依頼が?! ~頼られるエンジニアになるためには~ /
mixi_engineers
PRO
2
200
Featured
See All Featured
Visualization
eitanlees
135
14k
Build The Right Thing And Hit Your Dates
maggiecrowley
23
1.9k
Product Roadmaps are Hard
iamctodd
43
9.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
257
12k
Testing 201, or: Great Expectations
jmmastey
27
6.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
12
1.4k
Art, The Web, and Tiny UX
lynnandtonic
288
19k
Pencils Down: Stop Designing & Start Developing
hursman
115
11k
In The Pink: A Labor of Love
frogandcode
137
21k
How GitHub Uses GitHub to Build GitHub
holman
467
290k
Practical Orchestrator
shlominoach
180
9.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
242
12k
Transcript
Google HomeΛങ͍ʹཱͯΔ Hacker’s Hour 2018-1 @fuwamaki
ࣗݾհ 2 ໊લɿ༒࡞ ϚΩϢαΫ @fuwamaki ಛɿఱύ ॴଐɿϔϧεέΞࣄۀຊ෦ ٕज़౷ׅ෦ γεςϜ։ൃ෦ ཁɿϧφϧφͷiOSΞϓϦ࡞ͬͯ·͢
࣮ɿ࠷ॳͰ࠷ޙͷൃද
3 Google Home ͷ ΧελϚΠζ ʹ͍͓ͭͯ͠·͢ʂʂ
࣍ 4 1. എܠ 2. ϊϯϓϩάϥϛϯάͰΧελϚΠζ 3. ϓϩάϥϛϯάͰΧελϚΠζ 4. ͓ΘΓʹ
1 എܠ
എܠ 6 εϚʔτεϐʔΧʔɺAIεϐʔΧʔͰͳ͍ Ի͔Βೝࣝͨ͠ݴ༿ͷதͷಛఆͷΩʔϫʔυʹ͔͠Ԡ͠ͳ͍ Google Home͕͔Βͳͯ͘ँΔ࣌ɿʮ͢Έ·ͤΜɺ ͓ʹཱͯͦ͏ʹ͋Γ·ͤΜɻͬͱษڧͯ͠վળ͠·͢ɻʯ -> ࣮ࡍɺԻೖྗ͡Ό͋·Γษڧͯ͘͠Εͳ͍ɻɻɻ ԻೖྗҎ֎ͰΧελϚΠζ͠ͳ͍ͱɺGoogle
Home͕Ͱ͖Δ͜ͱ૿͑ͳ͍
ΧελϚΠζ͢ΕGoogle Homeͬͱศརʹ 7 ྫ https://qiita.com/diescake/items/4f354a5dc7cb738efd4f
8 ΧελϚΠζ͠Α͏
ࠓճͷඪ 9 ങ͍͍ͨϞϊΛϝϞͰ͖ΔΑ͏ʹΧελϚΠζʂ OK, Google ങ͍Χΰʹ γϟϯϓʔΛՃ ങ͍Χΰʹ γϟϯϓʔΛՃ ͠·ͨ͠
2 ϊϯϓϩάϥϛϯάͰ ΧελϚΠζ
༻ҙ͢Δͷ 11 Google Home ͱ ܞଳ ͚ͩʂʂ
ܞଳʹΞϓϦΛΠϯετʔϧ 12 IFTTTʢΠϑτɿIF This Then Thatʣ …WebαʔϏεಉ࢜Λ࿈ܞͰ͖ΔαʔϏεɻ ϓϩάϥϛϯάෆཁͰɺ֤αʔϏεͷϩάΠϯͱ ϑΟϧλʔ݅Λઃఆ͢Δ͚ͩར༻Մೳɻ ※ӳޠ͔ͬΓͳͷͰɺ࠷ॳ͍ํΑ͘Θ͔Βͳ͍͔ɻ
IFTTTͷ͍ํ 13 ྫ ͠ʮޕલٳ͍ͨ͠ʯͱݴͬͨΒ ϝʔϧ ΛૹΔ Appletɿ
࣮ࡍʹ࡞ͬͯΈΔ 14 Evernoteʹങ͍ͷϦετΛՃ͢ΔAppletΛ࡞Δ ʮEvernoteʹ Ϟϊ ΛՃʯͱݴͬͨΒ EvernoteʹϊʔτΛՃ ͢Δ
ThisͷઃఆɿGoogle Assistant 15 GoogleͷAIΞγελϯτɻ Google Homeʹೖྗ͞ΕͨԻ͕ ૹΒΕ͖ͯͯɺԻͷղੳΛߦ͏ɻ ※ࣄલʹϩάΠϯ͓ͯ͘͠ɻ
ThatͷઃఆɿEvernote 16 ϊʔτΛऔΔΑ͏ʹใΛੵ͢Δ ιϑτΣΞɾΣϒαʔϏεɻ ※ࣄલʹϩάΠϯ͓ͯ͘͠ɻ
17 ઃఆҎ্ɻ
18 σϞ
19 Ұ֮͑ͯ͠·͑ɺઃఆͱͬͯ؆୯ʂʂʂ
IFTTTʹΑΔΧελϚΠζ ϝϦοτɾσϝϦοτ 20 • ϝϦοτ • ϓϩάϥϛϯά͕ෆཁͰɺઃఆͱͬͯ؆୯ • ࿈ܞՄೳͳ༗໊αʔϏε͕ଟ ex).
Slack, twitter, trello, youtube, outlook, spotify • σϝϦοτ • શ෦ӳޠͳͷͰɺҰॠϏϏΔ • IFTTT͕༻ҙͨ͠ઃఆ͔͠Ͱ͖ͳ͍ͷͰɺ൚༻ੑ͕͍ ※Evernoteͷ߹ɺՃ͢Δϊʔτ͕ຖճผʹͳͬͯ͠·͏
3 ϓϩάϥϛϯάͰ ΧελϚΠζ
ϓϩάϥϛϯάͰΧελϚΠζ ϝϦοτɾσϝϦοτ 22 • ϝϦοτ • API࡞Ҏ֎ɺϊϯϓϩάϥϛϯάͰઃఆͰ͖Δ • ։ൃऀ͕͖ͳΑ͏ʹ࡞ΕΔͷͰɺ൚༻ੑߴ͘࡞ΕΔ •
σϝϦοτ • IFTTTΛར༻͢ΔΑΓख͕͔͔ؒΔ • ϓϩάϥϜܦݧ͕ͳ͍ͱख͕ग़͠ʹ͍͘
σϑΥϧτ ΞʔΩςΫνϟ 23 Google Home Google Assistant Dialogflow API Server
Action on Google 24 …Google Assistant͔Βݺͼग़ͤΔαʔϏεͷ͜ͱɻ Google AssistantͱଞαʔϏεʢDialogflowͳͲʣΛͭͳ͛Δɻ
Dialogflow 25 …ݴޠղੳΤϯδϯɻ Google Assistant͔ΒૹΒΕ͖ͯͨݴޠΛղੳ͢Δɻ ղੳ݁ՌʹԠͯ͡ߦ͏ॲཧΛઃఆͰ͖Δɻ ※ϊϯϓϩάϥϛϯάͰઃఆՄೳɻϓϩάϥϛϯάͰઃఆՄೳɻ
σϑΥϧτ ΞʔΩςΫνϟ 26 Google Home Google Assistant Dialogflow API Server
Իೖྗ Իղੳ ݴޠղੳ APIαʔό
APIαʔό࣮ɺͳ͍͍ͯ͘ 27 Google Home Google Assistant Dialogflow API Server Google
Home Google Assistant Dialogflow ᶃ ᶄ
28 ᶄϊϯϓϩάϥϛϯάͰΧελϚΠζʂ
※DialogflowΛ༻͍ͨϊϯϓϩάϥϛϯάྫ 29
30 Λͯ͠ɻ Ͱɺ࣮ࡍʹ࡞ͬͯΈΔ
ࠓճͷΞʔΩςΫνϟ 31 Google Home Google Assistant Dialogflow Server ʮങ͍͔͝ʹϞϊΛՃʯͱ͍ͬͨΒɺങ͍DBʹϞϊΛՃ ͢Δ
API ServerߏஙͰར༻ͨ͠ͷ 32 HerokuɿPaaSαʔϏεͰɺwebΞϓϦͷެ։Λ؆୯ʹͯ͘͠ ΕΔαʔϏεɻ Node.jsɿαʔόαΠυͷJavaScriptݴޠɻ ExpressɿNode.jsͰͷԦಓతͳ։ൃΛεϐʔυΞοϓͤ͞Δϑ ϨʔϜϫʔΫɻ MongoDBɿυΩϡϝϯτࢥߟͷσʔλϕʔεɻNoSQLɻε ΩʔϚϨεͳͷͰΧϥϜΛઃఆ͢Δඞཁ͕ͳ͍ɻ
RestAPIઃܭ 33 Method POST URL https://my3-restapi.herokuapp.com/api Header {Content-Type: application/json} Request
Body {result:parameters:{thing:Ϟϊ}} APIϦΫΤετɿ DBઃܭɿ {id:xxxxxxxxxxxxxx, thing:Ϟϊ}
ࠓճͷϑϩʔ 34 Google Home Google Assistant Dialogflow Server ʮങ͍Χΰʹ ϞϊΛՃʯ
Իղੳͯ͠ Dialogflowʹ͢ ʮങ͍ΧΰʹϞϊ ΛՃʯͩͬͨΒ APIRequst͢Δ ϞϊΛDBʹ อଘ POST Request Response
35 σϞ
࡞ͬͯΈͯࢥͬͨ͜ͱ 36 • ԻͰΞϓϦىಈ -> Իೖྗͱ͍͏2ͭखॱ͕ඞཁͩͬͨɻ • APIΛGET͢ΕɺଞαʔϏεʹ൚༻Ͱ͖Δɻ • ϓϩάϥϛϯάAPI࡞͚ͩͰࡁΉɻ
ͨͩɺීஈΞϓϦ։ൃ͕ϝΠϯͳͷͰɺAPI࡞ʹҰ൪͔͔࣌ؒͬͨɻ • ·ͨɺDialogflowϊϯϓϩάϥϛϯά͕ͩɺগ͠ෳࡶɻ
37 ͱ͜ΖͰɺ࡞ΓऴΘ͔ͬͯΒؾ͍ͮͨɻ
طଘͰ͋ͬͨস 38 • ʮγϣοϐϯάϦετͷϞϊΛՃʯ ͰՃͰ͖ͪΌͬͨɻ • ΞϓϦ͔ΒݟΕͳ͍ɺweb͔ΒͷΈӾཡՄೳɻ
4 ͓ΘΓʹ
ֶΜͩ͜ͱ 40 • ࣄલʹௐΔ͜ͱ͕େࣄʂʂʂ ؆୯ʹͰ͖ΔͷɺطଘػೳIFTTTΛ͍·͠ΐ͏ɻ ※IFTTTʹͳͦ͞͏ͩͬͨͷͰ༉அͨ͠ɻɻɻ • ͰɺGoogleγϣοϐϯάϦετɺΞϓϦͰݟΕͳ͍ -> ࠓճ࡞ͨ͠ͷΛදࣔ͢ΔΞϓϦΛ࡞ΕΕࠩผԽʂ
-> ؾٳΊͰ͢ɺ͢Έ·ͤΜm(_ _)m
·ͱΊɺల 41 • Google HomeͰͰ͖Δ͜ͱ͕૿͑Δͱָ͍͠ʂ • ࣍Ոిͱͭͳ͍͛ͨʢRemoগ͠ஈߴΊ͚ͩͲʣ RemoͳΒIFTTTͰ؆୯ʹઃఆͰ͖ͦ͏
42 Google Home͕Ͱ͖Δ͜ͱΛ૿ͯ͠ɺ ՈϥΠϑΛͬͱָ͘͠ʂ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ