SlideShare una empresa de Scribd logo
1 de 29
「アレクサ、“リーフスキル”
の作り方を教えて」
日産自動車株式会社
コネクティドサービス本部 サービス開発部
秀島裕介
秀島裕介 a.k.a. hidesuke
• 2017年2月に日産自動車に入社
• ソフトウェアエンジニア
• 高機能雑用
• 基本的にwebアプリケーション屋
• 深層学習チョットダケワカル
• (TECH PLAYで以前講演しました)
• 趣味
• 小説投稿サイト「かきあげ!」 https://kakiage.org
• シャチクグッズ https://shachikume.booth.pm
LEAF
• 世界初の量産型完全電気自動車
• 全世界で30万台以上販売(2018年1月)
• 2010年からグローバルデータセンター(GDC)という仕組みで車
がインターネットに繋がっている
• アプリもあるよ
NissanConnect EV
LEAF Skill for Alexa
• 2017年11月提供開始
• Amazon Echoの日本販売時のローンチ
パートナー
• 開発メンバー
• 企画2人
• エンジニア2人
• QAエンジニア1人
• 開発期間3ヶ月
アレクサ、リーフで……
• バッテリー残量を確認して
• エアコンをつけて
• 充電を開始して
アーキテクチャ
Amazon
Alexa
Server
ACMS
Alexa
Gateway
GDC
音声 intent API call
実行結果返答text音声
ここを
つくった
開発環境
• 環境
• nodejs 8.x系の最新
• Express + alexa-app
• Redis
• ツールはモダンな普通のものを
• ローカルではUnitTestをしっかり書く
• dev環境にアップロードして動作確認
• アジャイル(not Scrum)
• concourceでCI
実行環境
開発環境
AlexaGW
本番
GDC
Dev Skill
本番
Skill
Staging
Skill
ステージン
グ環境
AlexaGW
本番環境
AlexaGW
検証環境
GDC
GDC
mock
検証車
普通に売ってる車
Alexa Skillのサーバを作る正攻法
• alexa-skills-kit-sdk-for-nodejsを使う
• Amazonが公式で配布しているライブラリ
• 直感的で簡単に使える
• ただし、サーバはAWS Lambda前提
!?
AWS Lambdaは実際便利
• 関数さえかけばなんか動く
• 自前でサーバをもつ/管理する必要ない
• 話題のサーバレスアーキテクチャ
• 毎月1,000,000件のリクエストまで無料! ヒーハー!
だがまってほしい
Amazon
Alexa
Server
ACMS
Alexa
Gateway
GDC
音声 intent API call
実行結果返答text音声
internalexternal
車を操作できるプラットフォームをインターネッツ
に解き放つわけにはいかない……っ!!
アーキテクチャ
Amazon
Alexa
Server
ACMS
Alexa
Gateway
GDC
音声 intent API call
実行結果返答text音声
internalexternal
AWS Lambdaを使わない方法
• 自前でJsonをパースして、Amazonの証明書をベリファイして、
あれしてこれして……というハードモードも可能
• alexa-app というライブラリを利用(こちらを採用)
• AWS Lambdaも利用可能
• Express(nodejsのWeb Application Framework)と連携できるので、普
通のwebサーバでも動く
• Amazon Developer Consoleに登録する IntentSchemaや
SampleUtteranceの自動生成機能もある
• 最悪、ライブラリの中身読めばなんとかなる作り。
普通のwebサーバとしてSkillを作って、普通のwebサーバで公開した
発話内容の管理
地獄
発話内容はGoogle SpreadSheetで管理
発話内容はGoogle SpreadSheetで管理
• 複数人で同時に作業できる
• Google Apps Scriptでボタンを押したらJSONとして保存できる
ようにしてある
• 作成したJSONファイルをプログラムから読み込んで
• Amazon Developer Consoleに流し込むデータを作成
• プログラムからEchoに返却する返答データを参照
• 国際化(i18n)対応などが楽
ユーザの行動分析
• アプリケーションのログからユーザの行動を分析
• どの機能がよく使われているか
• ユーザが辛みを感じている部分
• 何時頃にどういった機能を使っているか
• これらを元にアプリケーションの改善を行う
• Alexaではユーザの発話そのものは取得できない
• どの機能を使ったか
• サーバからどういう返答を返したか
• ……などをログとして残している
行動分析システム
サーバ
サーバ
サーバ
Operations Management Suite
(ログ集約)
全文検索エンジン BIツール
運用/監視
• ログ監視
• 何かあったらSlackに通知がく
る。
• とにかくなるべくSlackに集約
したい。
DevOps
• 作った自分たちできちんと運用
• ユーザの行動を解析して、改善ポイントを探る
• 社内で開発をしているので「自分たちで」「すぐに」改善がで
きる
• ユーザに継続して価値を届け続ける。
これからの展望

Más contenido relacionado

La actualidad más candente

「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
 
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
MinGeun Park
 
Karpenterで君だけの最強のオートスケーリングを実装しよう
Karpenterで君だけの最強のオートスケーリングを実装しようKarpenterで君だけの最強のオートスケーリングを実装しよう
Karpenterで君だけの最強のオートスケーリングを実装しよう
Kohei Nagase
 

La actualidad más candente (20)

「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
 
Jenkins 再入門
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
 
DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所
 
アジャイル開発とメトリクス
アジャイル開発とメトリクスアジャイル開発とメトリクス
アジャイル開発とメトリクス
 
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
 
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
 
Azure Web PubSub Serviceを触ってみた
Azure Web PubSub Serviceを触ってみたAzure Web PubSub Serviceを触ってみた
Azure Web PubSub Serviceを触ってみた
 
テストマネジメントツールSquash TMを利用した継続的テスト改善
テストマネジメントツールSquash TMを利用した継続的テスト改善テストマネジメントツールSquash TMを利用した継続的テスト改善
テストマネジメントツールSquash TMを利用した継続的テスト改善
 
テスト自動化とアーキテクチャ
テスト自動化とアーキテクチャテスト自動化とアーキテクチャ
テスト自動化とアーキテクチャ
 
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイドアジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
 
Karpenterで君だけの最強のオートスケーリングを実装しよう
Karpenterで君だけの最強のオートスケーリングを実装しようKarpenterで君だけの最強のオートスケーリングを実装しよう
Karpenterで君だけの最強のオートスケーリングを実装しよう
 
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
自動テストにおけるコードベース戦略とローコード戦略のすみ分け
自動テストにおけるコードベース戦略とローコード戦略のすみ分け自動テストにおけるコードベース戦略とローコード戦略のすみ分け
自動テストにおけるコードベース戦略とローコード戦略のすみ分け
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
 

Similar a 「アレクサ、"リーフスキル"の作り方を教えて」

Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
CData Software Japan
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
Masakazu Muraoka
 
マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方
CData Software Japan
 
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
Masayuki Abe
 

Similar a 「アレクサ、"リーフスキル"の作り方を教えて」 (20)

デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?
デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?
デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?
 
「移動中の仕事術とユーザーグループと私」
「移動中の仕事術とユーザーグループと私」「移動中の仕事術とユーザーグループと私」
「移動中の仕事術とユーザーグループと私」
 
多対多のクラウド利用を支えるデータ標準化技術
多対多のクラウド利用を支えるデータ標準化技術 多対多のクラウド利用を支えるデータ標準化技術
多対多のクラウド利用を支えるデータ標準化技術
 
マルチデバイスに対応するためのAuto layout
マルチデバイスに対応するためのAuto layoutマルチデバイスに対応するためのAuto layout
マルチデバイスに対応するためのAuto layout
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションC# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
 
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
 
マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方
 
#コロナに負けない ためのノーコード事業
#コロナに負けない ためのノーコード事業#コロナに負けない ためのノーコード事業
#コロナに負けない ためのノーコード事業
 
Html5fun@東京 Bootstrapにアニメーションを付けよう
Html5fun@東京 Bootstrapにアニメーションを付けようHtml5fun@東京 Bootstrapにアニメーションを付けよう
Html5fun@東京 Bootstrapにアニメーションを付けよう
 
AWS SUMMIT TOKYO 2012 - BASCULE SESSION
AWS SUMMIT TOKYO 2012 - BASCULE SESSIONAWS SUMMIT TOKYO 2012 - BASCULE SESSION
AWS SUMMIT TOKYO 2012 - BASCULE SESSION
 
[AWS Summit 2012] 事例セッション #2 Bascule Meets AWS! クラウドが加速させる デジタルクリエイションの世界
[AWS Summit 2012] 事例セッション #2 Bascule Meets AWS! クラウドが加速させる デジタルクリエイションの世界[AWS Summit 2012] 事例セッション #2 Bascule Meets AWS! クラウドが加速させる デジタルクリエイションの世界
[AWS Summit 2012] 事例セッション #2 Bascule Meets AWS! クラウドが加速させる デジタルクリエイションの世界
 
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
 
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
 
Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06
 
Reai Tech Night|Japan taxi株式会社 会社説明資料
Reai Tech Night|Japan taxi株式会社 会社説明資料Reai Tech Night|Japan taxi株式会社 会社説明資料
Reai Tech Night|Japan taxi株式会社 会社説明資料
 
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
 
iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術
 
アプリだけじゃない!チームも一緒に成長させる開発
アプリだけじゃない!チームも一緒に成長させる開発アプリだけじゃない!チームも一緒に成長させる開発
アプリだけじゃない!チームも一緒に成長させる開発
 
SORACOM UG Explorer 2018 - IoTxAIを活用した小売業向け店舗解析サービスの仕組みとノウハウ
SORACOM UG Explorer 2018 -  IoTxAIを活用した小売業向け店舗解析サービスの仕組みとノウハウSORACOM UG Explorer 2018 -  IoTxAIを活用した小売業向け店舗解析サービスの仕組みとノウハウ
SORACOM UG Explorer 2018 - IoTxAIを活用した小売業向け店舗解析サービスの仕組みとノウハウ
 

Más de Yusuke HIDESHIMA

継続的デリバリー第11章.Ppt
継続的デリバリー第11章.Ppt継続的デリバリー第11章.Ppt
継続的デリバリー第11章.Ppt
Yusuke HIDESHIMA
 

Más de Yusuke HIDESHIMA (11)

文藝バトルイベント「かきあげ!」のご紹介
文藝バトルイベント「かきあげ!」のご紹介文藝バトルイベント「かきあげ!」のご紹介
文藝バトルイベント「かきあげ!」のご紹介
 
深層学習生き地獄
深層学習生き地獄深層学習生き地獄
深層学習生き地獄
 
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
 
継続的デリバリー読書会 14章
継続的デリバリー読書会 14章継続的デリバリー読書会 14章
継続的デリバリー読書会 14章
 
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
 
第2回 某社Arduino勉強会 ハンズオン
第2回 某社Arduino勉強会 ハンズオン第2回 某社Arduino勉強会 ハンズオン
第2回 某社Arduino勉強会 ハンズオン
 
継続的デリバリー第11章.Ppt
継続的デリバリー第11章.Ppt継続的デリバリー第11章.Ppt
継続的デリバリー第11章.Ppt
 
継続的デリバリー読書会資料 #1
継続的デリバリー読書会資料 #1継続的デリバリー読書会資料 #1
継続的デリバリー読書会資料 #1
 
(業務外)ゲーム制作部のススメ
(業務外)ゲーム制作部のススメ(業務外)ゲーム制作部のススメ
(業務外)ゲーム制作部のススメ
 
CoffeeScript+enchant.jsでクロージャが気持よくかけた話
CoffeeScript+enchant.jsでクロージャが気持よくかけた話CoffeeScript+enchant.jsでクロージャが気持よくかけた話
CoffeeScript+enchant.jsでクロージャが気持よくかけた話
 
Osakijs #01 「enchant.jsハンズオン資料」
Osakijs #01 「enchant.jsハンズオン資料」Osakijs #01 「enchant.jsハンズオン資料」
Osakijs #01 「enchant.jsハンズオン資料」
 

「アレクサ、"リーフスキル"の作り方を教えて」