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
51
GoogleHomeを買い物に役立てる
社内発表で用いた資料。
特に社内情報などないので公開します。
fuwamaki
January 15, 2018
Tweet
Share
More Decks by fuwamaki
See All by fuwamaki
iOSの理想的なUIを考える
fuwamaki
3
940
xcode10の新機能について
fuwamaki
1
1.5k
Other Decks in Technology
See All in Technology
Zephyr(RTOS)にEdge AIを組み込んでみた話
iotengineer22
1
270
From Natural Language to K8s Operations: The MCP Architecture and Practice of kubectl-ai
appleboy
0
110
Introduction to Bill One Development Engineer
sansan33
PRO
0
300
物体検出モデルでシイタケの収穫時期を自動判定してみた。 #devio2025
lamaglama39
0
270
ローカルLLMとLINE Botの組み合わせ その2(EVO-X2でgpt-oss-120bを利用) / LINE DC Generative AI Meetup #7
you
PRO
0
140
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
8.9k
混合雲環境整合異質工作流程工具運行關鍵業務 Job 的經驗分享
yaosiang
0
140
今この時代に技術とどう向き合うべきか
gree_tech
PRO
2
2.1k
React19.2のuseEffectEventを追う
maguroalternative
2
600
Building a cloud native business on open source
lizrice
0
170
Biz職でもDifyでできる! 「触らないAIワークフロー」を実現する方法
igarashikana
3
1.6k
「改善」ってこれでいいんだっけ?
ukigmo_hiro
0
400
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
The Pragmatic Product Professional
lauravandoore
36
7k
Practical Orchestrator
shlominoach
190
11k
Navigating Team Friction
lara
190
15k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Designing for humans not robots
tammielis
254
26k
How to Ace a Technical Interview
jacobian
280
24k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
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͕Ͱ͖Δ͜ͱΛ૿ͯ͠ɺ ՈϥΠϑΛͬͱָ͘͠ʂ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ