Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
62
Sprite Kit
singjie
0
66
React Native
singjie
1
95
Arduino
singjie
0
48
Software Engineering
singjie
0
63
Advanced Core Data
singjie
0
47
Amazon Echo and Home Integration
singjie
0
110
CS3216 Garena Project X
singjie
0
59
Life
singjie
0
47
Other Decks in Technology
See All in Technology
AIエージェントの一手は 誰も見ていない - Falco拡張OSS「Prempti」とeBPFで サーバーレス実行基盤を二層防御する
keitah
1
600
AI Agent入門〜今更聞けないAgentの話〜
hiromimaganuma
0
120
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
1
120
Making AI Agents Safe and Fast- Jev, Obsidian, and the Meta-Harness
x5gtrn
PRO
0
150
OpenClawでAzure DevOpsのWiki更新を自動化する - クラウドAIだけでは届かない場所へ
yutakaosada
0
100
「どのログを見ればいい?」 から始めた サーバーレス障害解析
y_waka1
1
150
【ゲームメーカーズスクランブル2026】『Shadowverse: Worlds Beyond』UIとアニメーションで実現する最高のユーザー体験を叶えるプロトタイピング
cygames
PRO
1
630
[Kiro Meetup #7] Kiro Crew Dive Deep
konippi
0
380
AIに会社の文脈を理解させる技術~上流工程・非エンジニアにも広げるハーネスエンジニアリング実践~
ochtum
0
130
Coil3を内部実装から読み解く~キャッシュ戦略とAVIF画像の描画〜/nikkei-tech-talk50
nikkei_engineer_recruiting
0
110
Account Factory for Terraformによる 標準化されたアカウント発行の自動化
pensuke628
0
110
AIエージェント時代のPlatform as a Product —— テックリードがPdMとして回す発見・導入・計測 / Platform as a Product in the AI Agent Era
toshi0607
1
400
Featured
See All Featured
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
500
Building an army of robots
kneath
307
46k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
270
For a Future-Friendly Web
brad_frost
183
10k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Accessibility Awareness
sabderemane
1
220
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
The Spectacular Lies of Maps
axbom
PRO
1
1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
410
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