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
Skill Connectionsやってみた / Introduction to Alexa'...
Search
Kuniaki Shimizu
January 30, 2020
Technology
0
510
Skill Connectionsやってみた / Introduction to Alexa's Skill Connection
【大阪】スマートスピーカーミーティング 2020/01/30 のLTの資料です。AlexaのSkill Connectionsを試してみた話です。
Kuniaki Shimizu
January 30, 2020
Tweet
Share
More Decks by Kuniaki Shimizu
See All by Kuniaki Shimizu
RAGのretrievalの評価を “ranx”で行う / Evaluate retrival of RAG using "ranx"
kun432
1
2.9k
VoiceLunchJP#27 Voiceflow Updates 2022 (EN)
kun432
0
190
VoiceLunchJP#27 Voiceflow Updates 2022
kun432
0
200
Voiceflowではじめる音声アプリ・チャットボット開発〜2022年版〜 / Introduction to Developing Voice Apps & Chatbots with Voiceflow
kun432
1
1.4k
VoiceLunchJP#3 VoiceflowでAudioPlayerスキルを作ろう!ハンズオン / VoiceLunchJP3 Alexa's Audio Player Hands-on using Voiceflow
kun432
0
210
Skill Connections やってみた / Introduction to Alexa Skill Connections
kun432
1
1.8k
ノンコーディングで始めるAlexaスキル開発 / Introduction to Alexa Skill Development with non-conding
kun432
0
340
Alexaでもparタグ使いたい!〜Alexaで発話とサウンドを並列再生する〜 / Speak with Background Music on Alexa
kun432
0
1.9k
Voiceflowで一人Advent Calendarをやってみた話 / Voiceflow TIPS Advent Calender in Japanese
kun432
0
660
Other Decks in Technology
See All in Technology
CDKコード品質UP!ナイスな自作コンストラクタを作るための便利インターフェース
harukasakihara
2
160
20250707-AI活用の個人差を埋めるチームづくり
shnjtk
6
4.1k
American airlines ®️ USA Contact Numbers: Complete 2025 Support Guide
airhelpsupport
0
390
第64回コンピュータビジョン勉強会「The PanAf-FGBG Dataset: Understanding the Impact of Backgrounds in Wildlife Behaviour Recognition」
x_ttyszk
0
130
関数型プログラミングで 「脳がバグる」を乗り越える
manabeai
2
220
アクセスピークを制するオートスケール再設計: 障害を乗り越えKEDAで実現したリソース管理の最適化
myamashii
1
250
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.8k
敢えて生成AIを使わないマネジメント業務
kzkmaeda
2
500
開発生産性を測る前にやるべきこと - 組織改善の実践 / Before Measuring Dev Productivity
kaonavi
14
8k
United Airlines Customer Service– Call 1-833-341-3142 Now!
airhelp
0
170
TLSから見るSREの未来
atpons
2
190
衛星運用をソフトウェアエンジニアに依頼したときにできあがるもの
sankichi92
1
210
Featured
See All Featured
Producing Creativity
orderedlist
PRO
346
40k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Navigating Team Friction
lara
187
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Testing 201, or: Great Expectations
jmmastey
43
7.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
970
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
4 Signs Your Business is Dying
shpigford
184
22k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Site-Speed That Sticks
csswizardry
10
690
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Transcript
Skill Connectionsやってみた スマートスピーカーミーティング 1/31 LT
About Myself 1
Kuniaki Shimizu (@kun432) - シナジーマーケティング株式会社 - インフラエンジニア - Twitter/Facebook/Github/Hatena/Alexa -
ポートフォリオ: https:/ /kun432.github.io/ - AWS認定Alexaスキルビルダー - Voiceflow Global Ambassador - Voiceflow Growth Award 2019 3 Hello!
My Skills & Actions 4 - Alexa (JP): 12 -
Google: 1 - Clova: 1 #スキル開発100チャレンジ - Alexa (US): 1
• 本資料内における意見・発言等は個人の 見解であり、所属する組織・団体の見解 を代表するものでは、ありません。 • 今日はVoiceflowの話はしません、多分。 5 Disclaimer
Skill Connections やってみた 2
最初にアンケート 7
8
ですよねー 9
Skill Connectionsおさらい 10 • 単純にいうと、スキル間連携 • スキルAから、スキルBの機能を使うために スキルBを起動する • スキルBの処理が終わるとスキルAに戻る
• 用語 ◦ プロバイダ(上で言うB) ▪ 他のスキルへ機能を提供 ◦ リクエスタ(上で言うA) ▪ 他のスキルの機能を呼び出す
11 連携 開始 連携中 連携後 印刷インテントトリガー ディレクティブ送信 (StartConnection) 印刷インテントハンドラ レスポンスハンドラ
(SessionResumedRequest) 処理を続ける • リクエスタはconnectionエンドポイントに要求を投げる • プロバイダはAlexaが決めて、要求を受け渡す • プロバイダの実行結果をAlexaから受け取って処理を継続 Skill Connectionsの仕組み セッション切断 A B A 処理結果
今回はプリンタスキルと連携する リクエスタやってみた ※プロバイダだと両方作らないといけない ※プロバイダ側は特別な審査が必要らしい 12
13
14 リクエスタの実装 const continueIntentHandler = { ・・・ handle(handlerInput) { const
speakOutput = 'それではプリンタスキルを呼び出して印刷します。'; return handlerInput.responseBuilder .speak(speakOutput) .addDirective({ 'type': 'Connections.StartConnection', 'uri': 'connection://AMAZON.PrintPDF/1', 'input': { '@type': 'PrintPDFRequest', '@version': '1', 'title': 'サンプルのPDF', 'description': 'スキルコネクションズのサンプルのPDFです。', 'url': 'https://******.s3-ap-northeast-1.amazonaws.com/sample1.pdf' }, 'token': 'none' }) .getResponse();
15 const ConnectionsResponseHandler = { canHandle(handlerInput) { const request =
handlerInput.requestEnvelope.request; return request.type === 'SessionResumedRequest'; }, handle(handlerInput) { const statusCode = handlerInput.requestEnvelope.request.cause.status.code; const statusMessage = handlerInput.requestEnvelope.request.cause.status.message; console.log(`SessionResumedRequest: code: ${statusCode}, msg: ${statusMessage}`; let speechText; switch (statusCode) { case “200”: // 購入した speechText = "印刷が終わりました。ご利用ありがとうございました。"; break; case “204”: // ユーザキャンセル speechText = "またご利用くださいね。"; Break; ・・・ Default: // その他エラー speechText = "ごめんなさい、うまく行かなかったようです。"; break; } return handlerInput.responseBuilder.speak(speechText).getResponse(); }, };
16 ん?なんかこれ 見たことない?
ISPやってみた &VoiceflowでもISP スマートスピーカーミーティング #13 9/26 LT 再掲
18 課金 処理前 課金 処理中 課金 処理後 購入インテントトリガー ディレクティブ送信 (type=Connections.SendRequest)
購入インテントハンドラ レスポンスハンドラ (type=Connections.Response) getResponseで会話フロー をつなげる 商品・料金説明、 同意確認 認証コード確認 課金処理 • スキル側でやるのは購入処理の手前と後だけ • 購入処理も一連のやり取りもAlexa⇔ユーザでやってくれる スキル内課金のやりとり セッション切断 再掲
19 MonetizationServiceClient • 購入をMonetizationServiceClientにリクエスト const BuyEnglishPackIntentHandler = { ・・・ handle(handlerInput)
{ const locale = handlerInput.requestEnvelope.request.locale; const ms = handlerInput.serviceClientFactory.getMonetizationServiceClient(); return ms.getInSkillProduct(locale, ENGLISH_PACK_ID).then(function (product) { if (product.entitled === "ENTITLED") { const speechText = `既に${product.name} を購入しています。続けますか?`; const repromptText = `続けますか?`; return handlerInput.responseBuilder .speak(speechText) .reprompt(repromptText) .getResponse(); } else { return handlerInput.responseBuilder .addDirective({ type: 'Connections.SendRequest', name: 'Buy', payload: { InSkillProduct: { productId: ENGLISH_PACK_ID } }, token: 'correlationToken' }) .getResponse(); } }); } }; 再掲
20 .getResponse(); } else { return handlerInput.responseBuilder .addDirective({ type: 'Connections.SendRequest',
name: 'Buy', payload: { InSkillProduct: { productId: ENGLISH_PACK_ID } }, token: 'correlationToken' }) .getResponse(); } }); 再掲
21 ISPもAmazon Payも 内部的にはConnections
Skill Connectionsの良いところ 22 • 自分で実装しなくて良いのはやっぱり楽 ◦ ハードウェア連携は特に ◦ プロバイダが増えれば機能を増やせる •
ISPとかやってれば実装そんなに難しくない。 ◦ プロバイダ側への受け渡し部分とプロバイダ側 は勝手にやってくれる ◦ リクエスタは所定のフォーマットで投げて、 結果に応じて続けるだけ。 • プロバイダもAlexaがよしなに選んでくれるし、今 のところ、パターンも少ないので比較的かんたん。
Skill Connectionsの難しいところ 23 • 会話の流れがつかみにくい ◦ リクエスタとプロバイダが両方しゃべる。 ◦ 受け渡し時のAlexa側の発話もある。 ◦
テスト用のタスク(AMAZON.TestStatusCode) を使って確認 ◦ プロバイダ側独自のステータスコードも。 ◦ 実際にテストしながら発話の自然さをチェック。 • 連携時は、セッション切れるので要対応 ◦ Persistent Attribute • プロバイダ少なすぎ、実質プリンタだけじゃね?
いろいろしゃべる 24
いろいろしゃべる 25 リクエスタ側 プロバイダ側 ASK側
現在サポートされているタスク 26 • 印刷系 ◦ AMAZON.PrintImage ◦ AMAZON.PrintPDF ◦ AMAZON.PrintWebPage
• 予約系 ◦ AMAZON.ScheduleTaxiReservation ◦ AMAZON.ScheduleFoodEstablishmentRes ervation
27 その他つまづいたところ • 利用開始までのプロセスが長い ◦ プリンタのWiFi接続設定 ◦ プリンタ側のアカウント登録 ◦ アカウントリンク
◦ スキル有効化までのハードルが高い、ここでくじける人が一 定数いるはず • 情報がない・・・ ◦ DevSummit以来、特に話なくない? ◦ ドキュメントが少なすぎるし、サンプルも微妙 ◦ Githubのサンプルコード欲しい
28 モチベーションが・・・
29 なんで今日この話?
30 https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2019/12/Create-Custom-Connected-Skill-Experiences-with-Tasks-and-Direct-Skill-Connections
31 Custom Tasks & Direct Connections • Custom Tasks ◦
Skill Connectionsにおけるプロバイダーが提供する 機能のこと ◦ これまで限定された機能(プリンターへの印刷、レストラン/ タクシーの予約)しかなかったのが、自分で 定義できるようになった ◦ “ask api search-task/get-task” でタスクを探して使う • Direct Connections ◦ Skill Connectionsでは、Amazonが用意していたプロバイ ダー・タスクが選択される ◦ Direct Connectionsは、リクエスターがプロバイダー・タス クを選択できる
32 そして
33 Alexa Conversationsへ https://robotstart.info/2019/06/06/alexa-cross-skill-conversations.html
まとめ 3
35 まとめ • Skill ConnectionsでやってることはISPと似てる。 ISPやったことがあれば実装は難しくない、多分 • 現状ではユースケースが限定的。印刷ぐらいしかない 上、プリンタスキル使ってる人どんだけー •
でもCustom Tasks & Direct Connections出てきたら 可能性が広がるし面白くなるはず • 将来的なAlexa Conversationとか見据えて、単機能な スキル企画・開発に慣れておく そのうち役に立つかも、知らんけど
36 まとめ • Skill ConnectionsでやってることはISPと似てる。 ISPやったことがあれば実装は難しくない、多分 • 現状ではユースケースが限定的。印刷ぐらいしかない 上、プリンタスキル使ってる人どんだけー •
でもCustom Tasks & Direct Connections出てきたら 可能性が広がるし面白くなるはず • 将来的なAlexa Conversationとか見据えて、単機能な スキル企画・開発に慣れておく そのうち役に立つかも、知らんけど
お知らせ 4
38 2/9 AAJUG大阪 Alexaスキル開発ごった煮トーク
39 2/29 技術書典8 (Day1あ09) • 豪華執筆陣! • 165P、1000円(予定)
40 3/21 Voice Con Japan 2020
Thanks! Any questions?