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
SiriKit
Search
Sing Jie Lee
July 22, 2016
Technology
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SiriKit
Sing Jie Lee
July 22, 2016
More Decks by Sing Jie Lee
See All by Sing Jie Lee
Infocomm Media Youth Festival 2016 - Career Talk
singjie
0
61
Sprite Kit
singjie
0
64
React Native
singjie
1
92
Arduino
singjie
0
45
Software Engineering
singjie
0
61
Advanced Core Data
singjie
0
44
Amazon Echo and Home Integration
singjie
0
110
CS3216 Garena Project X
singjie
0
56
Life
singjie
0
44
Other Decks in Technology
See All in Technology
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
1
550
Digitization部 紹介資料
sansan33
PRO
2
7.7k
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
730
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
240
システム思考で問題に対処する
yussak
0
270
TypeScript入門 2026
recruitengineers
PRO
3
570
【CEDEC2026】グラフィックスエンジニアのためのニューラルシェーディング入門
cygames
PRO
0
140
Goでデータパイプラインを作ろう
sansantech
PRO
1
440
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
800
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
13
8.7k
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
240
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
200
How to Think Like a Performance Engineer
csswizardry
28
2.7k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
200
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
KATA
mclloyd
PRO
35
15k
Navigating Weather and Climate Data
rabernat
0
470
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Bash Introduction
62gerente
615
220k
How to build a perfect <img>
jonoalderson
1
5.9k
The Spectacular Lies of Maps
axbom
PRO
1
910
Prompt Engineering for Job Search
mfonobong
0
400
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
480
Transcript
SIRIKIT lee sing jie
SIRI 2011
SIRI • Interact with Apple's apps - Maps, Phone •
Launch 3rd party apps
SIRIKIT 2016
None
“Send payment using AirPay” “To whom?” “Vincent” “How much?” “$100”
“Send $10 to Vincent using AirPay”
“Please do me a favour and send $10 to Vincent
by launching the AirPay app”
“Hey Siri, please do me a favour and send my
precious earned $10 by launching the AirPay app”
“Hey Siri, please do me a favour and send my
precious earned $10 by launching the AirPay app” “To whom?” “Vincent”
SIRIKIT WORKS IN DOMAINS
Messaging VOIP calling Payments Workouts Ride booking Photo search DOMAINS
Messaging VOIP calling Payments Workouts Ride booking Photo search DOMAINS
ONLY
“Buy iPhone case on Shopee”
“Buy iPhone case on Shopee”
SIRIKIT Intents Intents UI App
SIRIKIT Intents Intents UI App
SIRIKIT Intents
SIRIKIT Intents Resolve Resolve Resolve
SIRIKIT Intents Resolve Resolve Resolve Resolve Resolve Resolve Resolve Resolve
Resolve Resolve
SIRIKIT Intents Resolve Resolve Resolve Resolve Resolve Resolve Resolve Resolve
Resolve Resolve Confirm
SIRIKIT Intents Resolve Resolve Resolve Resolve Resolve Resolve Resolve Resolve
Resolve Resolve Confirm Handle
SIRIKIT Intents Resolve Resolve Resolve Resolve Resolve Resolve Resolve Resolve
Resolve Resolve Confirm Handle
RESOLVE Communicate with user Determine the values needed Provide response
“Send $10 to Vincent using AirPay”
RESOLVE Payee “Send $10 to Vincent using AirPay” Amount
needsValue RESOLVE PAYEE
confirmationRequired(with:) RESOLVE PAYEE
disambiguation(with:) RESOLVE PAYEE
unsupported RESOLVE PAYEE
needMoreDetails(with:) RESOLVE PAYEE
needMoreDetails(with:) RESOLVE PAYEE HUH?
needsMoreDetails(with:) RESOLVE PAYEE
notRequired RESOLVE PAYEE
RESOLVE PAYEE success(with:)
SIRIKIT Intents Resolve Resolve Resolve Resolve Resolve Resolve Resolve Resolve
Resolve Resolve Confirm Handle
CONFIRM Overall impression Check details
SIRIKIT Intents Resolve Resolve Resolve Resolve Resolve Resolve Resolve Resolve
Resolve Resolve Confirm Handle
HANDLE Perform the requested action
IMPLEMENTATION
Messaging VOIP calling Payments Workouts Ride booking Photo search DOMAINS
INSearchForMessagesIntent.h INSendMessageIntent.h INSetMessageAttributeIntent.h Ride INGetRideStatusIntent.h INListRideOptionsIntent.h INRequestRideIntent.h Payment INRequestPaymentIntent.h INSendPaymentIntent.h
VOIP INSearchCallHistoryIntent.h INStartAudioCallIntent.h INStartVideoCallIntent.h Messaging INSearchForPhotosIntent.h INStartPhotoPlaybackIntent.h Photos Workout INCancelWorkoutIntent.h INEndWorkoutIntent.h INPauseWorkoutIntent.h INResumeWorkoutIntent.h INStartWorkoutIntent.h
INSearchForMessagesIntent.h INSendMessageIntent.h INSetMessageAttributeIntent.h Ride INGetRideStatusIntent.h INListRideOptionsIntent.h INRequestRideIntent.h Payment INRequestPaymentIntent.h INSendPaymentIntent.h
VOIP INSearchCallHistoryIntent.h INStartAudioCallIntent.h INStartVideoCallIntent.h Messaging INSearchForPhotosIntent.h INStartPhotoPlaybackIntent.h Photos Workout INCancelWorkoutIntent.h INEndWorkoutIntent.h INPauseWorkoutIntent.h INResumeWorkoutIntent.h INStartWorkoutIntent.h
@interface INSendMessageIntent : INIntent - (instancetype)initWithRecipients:(nullable NSArray<INPerson *> *)recipients content:(nullable
NSString *)content groupName:(nullable NSString *)groupName serviceName:(nullable NSString *)serviceName sender:(nullable INPerson *)sender; // Contacts to whom the message should be sent. @property (readonly, copy, nonatomic) NSArray<INPerson *> *recipients; // Body text of the message. @property (readonly, copy, nonatomic) NSString *content; @property (readonly, copy, nonatomic) NSString *groupName; // Specified service for the message. @property (readonly, copy, nonatomic) NSString *serviceName; // The person, or account, sending the message. @property (readonly, copy, nonatomic) INPerson *sender; @end INSendMessageIntent.h
protocol INSendMessageIntentHandling <NSObject> @required - (void)handleSendMessage:(INSendMessageIntent *)intent completion:(void (^)(INSendMessageIntentResponse *response))completion;
@optional - (void)confirmSendMessage:(INSendMessageIntent *)intent completion:(void (^)(INSendMessageIntentResponse *response))completion; - (void)resolveRecipientsForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(NSArray<INPersonResolutionResult *> *resolutionResults))completion; - (void)resolveContentForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(INStringResolutionResult *resolutionResult))completion; - (void)resolveGroupNameForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(INStringResolutionResult *resolutionResult))completion; - (void)resolveServiceNameForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(INStringResolutionResult *resolutionResult))completion; - (void)resolveSenderForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(INPersonResolutionResult *resolutionResult))completion; @end INSendMessageIntentHandling.h
LET'S BUILD
None
“Message Vincent I miss him using BeeTalk.”
“Message Vincent I miss him using BeeTalk.” Domain: Messaging
“Message Vincent I miss him using BeeTalk.” Domain: Messaging Intent:
sendMessage
“Message Vincent I miss him using BeeTalk.” Domain: Messaging Intent:
sendMessage User: Vincent
“Message Vincent I miss him using BeeTalk.” Domain: Messaging Intent:
sendMessage User: Vincent Content: I miss him
“Message Vincent I miss him using BeeTalk.” Domain: Messaging Intent:
sendMessage App: BeeTalk User: Vincent Content: I miss him
DEMO
APP VOCABULARY User-Specific Global Vocabulary Contact names Photo tags Photo
album names Workout names Ride options Workout names
DEMO
LOCALIZATION
DEMO
SIRIKIT Intents Intents UI App
SIRIKIT Intents UI Domains Ride Messaging Payment Workout
NO CONTROL
DEMO
Q&A