Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
450
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.5k
VoiceLunchJP#27 Voiceflow Updates 2022 (EN)
kun432
0
150
VoiceLunchJP#27 Voiceflow Updates 2022
kun432
0
160
Voiceflowではじめる音声アプリ・チャットボット開発〜2022年版〜 / Introduction to Developing Voice Apps & Chatbots with Voiceflow
kun432
1
1.2k
VoiceLunchJP#3 VoiceflowでAudioPlayerスキルを作ろう!ハンズオン / VoiceLunchJP3 Alexa's Audio Player Hands-on using Voiceflow
kun432
0
180
Skill Connections やってみた / Introduction to Alexa Skill Connections
kun432
1
1.6k
ノンコーディングで始めるAlexaスキル開発 / Introduction to Alexa Skill Development with non-conding
kun432
0
280
Alexaでもparタグ使いたい!〜Alexaで発話とサウンドを並列再生する〜 / Speak with Background Music on Alexa
kun432
0
1.7k
Voiceflowで一人Advent Calendarをやってみた話 / Voiceflow TIPS Advent Calender in Japanese
kun432
0
590
Other Decks in Technology
See All in Technology
Amazon Bedrock Multi-Agent Collaboration Workshop の紹介 - ワークショップでAIエージェントを学ぼう
nasuvitz
3
350
まだチケットを手動で書いてるの?!GitHub Actionsと生成AIでチケットの作成を自動化してみた話 / 20241207 Yoshinori Katayama
shift_evolve
1
800
間違いだらけのポストモーテム - ホントに役立つレビューはこうだ!
jacopen
5
1k
同一クラスタ上でのFluxCDとArgoCDのリソース最適化の話
kumorn5s
0
150
後処理で位置情報を補正する技術を試してみた
kensuketakahara
0
100
Classmethod_regrowth_2024_tokyo_security_identity_governance_summary
hiashisan
0
740
イノベーショントークから見るクラウド運用の未来を振り返ってみた
nyankotaro
0
390
B10-ひと目でわかる(といいなぁ)Microsoft Purview
seafay
PRO
0
540
突き破って学ぶコンテナセキュリティ/container-breakout-cncj-lt
mochizuki875
7
1.1k
職能を超えたモブプログラミングが品質に与えた良い影響
tonionagauzzi
2
250
EthernetベースのGPUクラスタ導入による学びと展望
lycorptech_jp
PRO
0
600
IVRyエンジニア忘年LT大会2024 クリティカルユーザージャーニーの整理
abnoumaru
0
120
Featured
See All Featured
Speed Design
sergeychernyshev
25
650
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Writing Fast Ruby
sferik
627
61k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
420
Navigating Team Friction
lara
183
15k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
110
49k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Optimising Largest Contentful Paint
csswizardry
33
3k
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?