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
530
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
3k
VoiceLunchJP#27 Voiceflow Updates 2022 (EN)
kun432
0
200
VoiceLunchJP#27 Voiceflow Updates 2022
kun432
0
210
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
220
Skill Connections やってみた / Introduction to Alexa Skill Connections
kun432
1
1.8k
ノンコーディングで始めるAlexaスキル開発 / Introduction to Alexa Skill Development with non-conding
kun432
0
350
Alexaでもparタグ使いたい!〜Alexaで発話とサウンドを並列再生する〜 / Speak with Background Music on Alexa
kun432
0
2k
Voiceflowで一人Advent Calendarをやってみた話 / Voiceflow TIPS Advent Calender in Japanese
kun432
0
680
Other Decks in Technology
See All in Technology
Design and implementation of "Markdown to Google Slides" / phpconfuk 2025
k1low
1
400
仕様は“書く”より“語る” - 分断を超えたチーム開発の実践 / 20251115 Naoki Takahashi
shift_evolve
PRO
1
580
AWS資格は取ったけどIAMロールを腹落ちできてなかったので、年内に整理してみた
hiro_eng_
0
210
大規模プロダクトで実践するAI活用の仕組みづくり
k1tikurisu
1
570
なぜインフラコードのモジュール化は難しいのか - アプリケーションコードとの本質的な違いから考える
mizzy
50
15k
AIを前提に、業務を”再構築”せよ IVRyの9ヶ月にわたる挑戦と未来の働き方 (BTCONJP2025)
yueda256
1
490
Data & AIの未来とLakeHouse
ishikawa_satoru
0
720
マイクロリブート ~ACEマインドセットで実現するアジャイル~
sony
1
330
QAを"自動化する"ことの本質
kshino
1
110
QAセントラル組織が運営する自動テストプラットフォームの課題と現状
lycorptech_jp
PRO
0
390
【M3】攻めのセキュリティの実践!プロアクティブなセキュリティ対策の実践事例
axelmizu
0
120
ユーザーストーリー x AI / User Stories x AI
oomatomo
0
190
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
Become a Pro
speakerdeck
PRO
29
5.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Agile that works and the tools we love
rasmusluckow
331
21k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Why Our Code Smells
bkeepers
PRO
340
57k
The Language of Interfaces
destraynor
162
25k
Embracing the Ebb and Flow
colly
88
4.9k
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?