10K Views
June 27, 24
スライド概要
[Swift愛好会スピンオフ WWDC24セッション要約会 @ DeNA - connpass](https://love-swift.connpass.com/event/319801/#feed) での発表資料です。
フリーランスiOSエンジニア 「エンジニアと人生」コミュニティ主宰
Apple Intelligence に対応する 〜 "Bring your app to Siri" 要約 〜
自己紹介 • 堤 修一 • @shu223 (GitHub, Zenn, Qiita, note, Docswell, 𝕏, YouTube, Podcast, etc...) • 書籍(商業出版4冊、個人出版多数 @BOOTH):
要約するセッション Bring your app to Siri (アプリをSiri対応にするための方法) 1 以降の画像は基本的にこのセッションからの引用です(WWDC24の他セッションからの引用も少しだけあり) 1
Siri powered by Apple Intelligence • より自然な音声に • 言語理解力アップ • 画面を認識(パーソナルコンテキスト) • アプリをまたがっていろんなアクションが行えるように
賢くなったSiriに「アプリの機能を使っ てもらう」には?
App Intent domains • Apple Intelligenceと各アプリとの接続手段としてApp Intentsフレームワークを大幅に強化 • その結果生まれたのがApp Intent domains
App Intent domains • ドメイン: 特定の種類の機能に特化 して設計されたAPIの集まり • iOS 18では12個がリリース予定
App Intent domains • いますぐ使えるのはMailとPhotos
App Intent domains • こういうのが100種定義されている • {ドメイン}.{スキーマ}
Assistant Schemas • こういうのがたくさん定義されて て、そのひとつひとつがアシスタン トスキーマ • 写真の作成やメールの送信など、そ れぞれ何かしらのインテントに対応 している • それぞれInputとOutputが定義されて いて、その間に我々が定義できる perform メソッドがある
Apple Intelligenceを使っ たリクエストのライフサイク ル 1. ユーザーリクエスト
Apple Intelligenceを使っ たリクエストのライフサイク ル 1. ユーザーリクエスト 2. Apple Intelligenceのモデルがスキー マを予測
Apple Intelligenceを使っ たリクエストのライフサイク ル 1. ユーザーリクエスト 2. Apple Intelligenceのモデルがスキー マを予測 3. Apple Intelligenceのツールボックス がAppIntentを呼び出してアクション を実行
Apple Intelligenceを使っ たリクエストのライフサイク ル 1. ユーザーリクエスト 2. Apple Intelligenceのモデルがスキー マを予測 3. Apple Intelligenceのツールボックス がAppIntentを呼び出してアクション を実行 4. 結果表示/出力
(補足)App Intelligence のツールボックス • デバイス上の全アプリからのApp Intentsが、スキーマごとに グループ化されて格納されている • モデルが予測したスキーマに適合するインテントを呼び出し てアクションを実行
(補足)App Intelligenceのシステム構成図 2 Platform State of the Unionより 2
重要なポイント Apple Intelligenceのモデルはスキーマを予測するように学習 されている → 自分のアプリのインテントをスキーマに適合させることで、 モデルにそれを使ってもらえるようになる
つまり!
「Apple Intelligence対応」に必要なこと • アプリのコア機能をすべてインテント化し • スキーマに適合させる 3 Apple Intelligence時代のApp Intents設計 の「どのApp Intentを作成するか」参照 3
実装
インテントに struct CreateAlbumIntent: AppIntent { ... }
インテントに1行追加するだけ! @AssistantIntent(schema: .photos.createAlbum) struct CreateAlbumIntent: AppIntent { ... }
インテントに1行追加するだけ! @AssistantIntent(schema: .photos.createAlbum) struct CreateAlbumIntent: AppIntent { ... } → @AssistantIntent マクロを用いて AppIntent を photos ド メインの createAlbum スキーマに適合させている
動作確認方法 • いまはまだApple Intelligence/Siriは動かない • のでショートカットで確認する
その他、セッションで解説されていること • エンティティ、列挙型のアシスタントスキーマ • パーソナルコンテキスト • In-app search • Semantic search 詳しくはこちら: アプリをSiri / Apple Intelligence対応にする方法
(補足)Apple Intelligence における Siri の位置付け整理 Siri はパーソナルエージェント • デバイスに常駐(いつでもどこから でも起動できる) • 自然言語でのコミュニケーション • パーソナルコンテキストを理解 • ユーザーの要求を理解し、各種アプ 4 スキーマ予測とインテント実行は中段のPersonal Intelligent Systemが担う
まとめ • Apple IntelligenceでパーソナルエージェントとしてのSiriが 大幅に強化 • スキーマに準拠したインテントを用意しておけばインテリジ ェントにアプリの機能を使ってくれる!
(補足)インテント作成入門 • Apple Intelligence時代のApp Intents設計 • App Intents実践入門 - アプリのコア機能を公開する