ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
アプリをSiri対応にするための方法
App Intentを利用して、Siriとアプリの機能を連携させる方法をご紹介します。現在利用可能な既存のインテントを確認した後、カスタムインテントを作成して、アプリからのアクションをシステムに統合する方法を説明します。提供するメタデータの種類、Spotlightを使用してエンティティを検索可能にする方法、画面上に注釈を追加する方法なども取り上げます。
関連する章
- 0:00 - Introduction
- 1:44 - What's new with Siri
- 8:34 - Actions
- 15:38 - Personal context
リソース
-
ダウンロード
「Bring your app to Siri」の セッションにようこそ Daniel Niemeyerです Siriのソフトウェアエンジニアを務めています 今日はアプリをSiri対応にするための 方法について説明します まずそれを実現する際に役立つ既存の フレームワークについて説明します 次にApple Intelligenceの導入に伴う 今年の新機能について説明します さらにSiriを介してアプリのアクションを 実行するための新しいAPIもご紹介します またアプリに直接統合できるエキサイティングな パーソナルコンテキスト機能もご紹介します 最後にまとめとして 今日のセッションの要点を振り返ります そもそもなぜアプリとSiriを 統合する必要があるのでしょうか Siriを使用すればデバイスのどの領域からでも アプリのアクションを実行できます ユーザーがアプリを開いている時にSiriで 素早くアクションを実行することもできます これを実現するために Appleの既存のフレームワークである SiriKitとApp Intentを 利用する方法を確認します iOS 10で導入されたSiriKitにより 従来からユーザーがSiriに 実行させていたアクションを システムが提供するインテントを使って 実行できるようになりました 音楽の再生や テキストメッセージの送信などです SiriKitドメインは依然としてこれらの 機能を実現するための最適な方法ですが セッションの後半で、それが今年 さらにどのように改良されたか見ていきます iOS 16で導入されたApp Intentは アプリをSiri、ショートカット、 Spotlightなどと統合するための 新しいフレームワークです アプリが既存のSiriKitドメインに 含まれていない場合 App Intentは最適なフレームワークです 詳細は今年のビデオ 「Bring your app’s core features to users with App Intents」 をご覧ください 今年Apple Intelligenceを導入したことで Siriは大幅に機能強化されました 新しい大規模言語モデルにより ユーザー体験がこれまで以上に向上しています まだアプリをSiriに統合していない方には 今が最高のタイミングです Apple Intelligenceがもたらす基盤的な 機能によってSiriは大きく進化しましたが これには3つの重要な側面があります 第一にSiriの発話が より自然な印象になりました 第二にコンテキストに合った パーソナルな対応ができるようになりました Apple Intelligenceにより Siriが画面を認識できるようになるため ユーザーが何を見ているのかを理解したうえで アクションを実行できるようになります 第三に言語理解能力が向上したおかげで より自然にSiriと やり取りできるようになりました もし言葉に詰まってしまっても Siriはユーザーが言おうとしていることを 理解してくれます アプリに SiriKitを導入済みの場合は これらの機能強化は無料で 自動的に適用されます これら以外の点でも Siriは進化しています Siriのユーザー体験を見直し デバイスでのユーザーの行動を 詳細に理解できるようにすることで Siriがアプリ内およびアプリ間でより 多くのアクションを実行できるようにしました これを実現するために広大なアプリの世界と Apple Intelligenceをつなぐ手段として App Intentフレームワークに 重点的に投資を行いました その成果として生まれた一連の新しいAPIが App Intentドメインです 詳細に見てみましょう ドメインとは特定の機能向けに設計された App Intentベースの一連のAPIのことで ブック、カメラ、 スプレッドシートなどです iOS 18ではこのようなドメインが 12個リリースされています メールと写真については 今すぐ試すことができます 今後数か月間にさらに多くの ドメインがリリースされる予定です 各ドメインには導入の容易さを確保しつつ 柔軟な音声対話に対応できるように トレーニングやテストされた一連の 広範な新しいアクションが含まれています Siriは今年、12のドメインにわたる 100以上の異なるアクションに 対応できるようになりました これによって可能になったことの一例として Darkroomのようなアプリで setFilterインテントを使うことでユーザーは 次のようにSiriに話しかけられるようになります 「昨日撮ったMaryの写真に 映画のようなプリセットを適用して」 これらのドメインのいずれかに該当する機能が アプリに含まれている場合は 新しいAPIを利用できます ぜひ利用してフィードバックをお寄せください これはほんの始まりにすぎません 今後Siriはますます多くの アプリのアクションを 理解し実行できるようになります 次にApp Intentドメイン向けのアクションを 構築する方法を見てみましょう 使用するのはAssistantスキーマです
スキーマという語は多義的なので ここで定義しておきましょう 辞書によればクラスのすべてのメンバーに 共通するものを表す概念であり 「一般的あるいは基本的な型または形態」 を意味します Siriにおいてこの語が何を 意味するか検討してみましょう
Apple Intelligenceは先ほど述べた 各種ドメインの新しい機能をSiriに提供する 基盤的モデルに支えられています モデルは特定のシェイプのインテントを 予測するようトレーニングされています このシェイプが今回の文脈でのスキーマです この場合Assistantスキーマは APIに相当します 適切なシェイプのApp Intentを作成すれば Appleのトレーニングを活用できるため 自然言語の複雑さに 対処する必要がなくなります 必要な作業はperformメソッドの記述のみで その他の処理はプラットフォームが実行します
写真の作成やメールの送信など Appleは今年だけで100種類を超える インテントに対応したスキーマを構築しました 各スキーマにはそのインテントを利用する すべてのアプリに共通の 一連の入力と出力が定義されています シェイプとはこの入力と出力のことです このジオメトリの中心がperformメソッドであり デベロッパはこれを通じて創造性を発揮して アプリに最適なユーザー体験を定義できます 次にApple Intelligenceでの Siriリクエストのライフサイクルを紹介し Assistantスキーマの 実際の仕組みを見てみましょう すべてはユーザーリクエストから始まります リクエストはApple Intelligenceに ルーティングされ Appleのモデルを通して処理されます Appleのモデルはスキーマに対し論理的な判断が できるよう特別にトレーニングされているため Apple Intelligenceは リクエストに基づいてスキーマを予測できます 適切なスキーマが選択されたら リクエストはツールボックスに渡されます ツールボックスには デバイス上のすべてのアプリに含まれる App Intentのコレクションが スキーマごとに格納されています インテントをスキーマに準拠させることで モデルがインテントに対し論理的に 判断できるようになります 最後にApp Intentが呼び出されることで アクションが実行されます 結果が表示され出力が返されます 図の説明はこれくらいにしましょう コードの説明に移ります これは写真アルバムを 作成するためのApp Intentです スキーマに準拠させるために必要な作業は AppIntentの宣言の前にSwiftマクロを 1つ追加することのみです これで完了です この新しいマクロは常に App Intentドメインにバインドされている スキーマの引数を受け取ります この例ではphotosがドメインで createAlbumがスキーマです スキーマのシェイプはコンパイル時に すでにわかっているので App Intentの追加のメタデータを 記述する必要はありません したがってここに示されているコードは このようにさらに短縮できます
スキーマに準拠したインテントは シェイプがわかっているため コードでより簡単に定義できます とはいえシェイプが常に 柔軟性に優れているとは限りません その場合も心配は不要です 困難な処理にも対処できます AssistantIntentは必要に応じて オプションパラメータで拡張できます これによりシェイプの柔軟性が少し高まります App Intentフレームワークにはアクションの 構築のためのインテント以外にも アプリで概念をモデル化するための エンティティが含まれています この例ではインテントから返される AlbumEntityです
AppEntityをSiriに渡すための 新しいマクロも追加しました インテントと同様にこの新しい型の導入も 簡単でありAppEntityの宣言に 1行のコードを追加するだけです AssistantEntityにも 定義済みのシェイプを活用できます その結果AppEntityの実装が より簡潔になります またAssistantIntentと同様に AssistantEntityでも必要に応じて新しい オプションのプロパティを宣言することで シェイプの範囲を大幅に超える拡張が可能です 例えばAlbumEntityの Album Colorプロパティを追加できます 最後に列挙型についても触れておきます AppEnumもエンティティやインテントと 同様に簡単にSiriに渡すことができます 新しいAssistantEnumマクロを 列挙型の宣言に追加するだけで あとはシステムが処理します
他の2つとは異なり AssistantEnumは 列挙型のケースにシェイプを適用しません そのため実装において 優れた表現力をもたらします ここまで新しいAssistantスキーマの マクロについて見てきました 次はXcodeのデモです デバイス上の写真を整理して表示する メディアライブラリアプリを用意しました このアプリをSiriに統合して アクションを実行する方法をご紹介します このアプリは本ビデオと同時に公開され サンプルコードのダウンロードもできます アプリを起動するとこのような 美しいギャラリーが開きます ギャラリーにはデバイス上の 写真とビデオの両方が表示されます 写真をクリックすると フルスクリーンで表示できます
上部にあるこのメニューをクリックすると お気に入りや共有などの アクションも実行できます
次にXcodeに話を移して アプリのコードを確認してみましょう
アプリには2つの基本的な モデルの型があります AssetとAlbumです Assetの定義を見てみましょう Assetはライブラリにある写真や ビデオを表すオブジェクトです AssetにはtitleやcreationDateなど 多くのプロパティがあります
ファイルの一番下にentityという 名前の計算型プロパティがあり Assetクラスを基にモデル化した AppEntityを返します ご覧の通りentityにはモデルから 直接ハイドレートされた 多くのプロパティが含まれています AssetEntityを選択し を使用して 定義を確認しましょう このエンティティはライブラリ内の アセットをモデル化しています title、creationDate、locationなど 様々なプロパティを提供します エンティティはアプリのコンテンツを モデル化するための優れた方法です App Intentと組み合わせることで システムがエンティティに対して アクションを実行できるようになります アクションについてはすでにアプリの特定の AssetEntityを開くための App Intentを記述しています ここでOpenAssetIntentは アセットを開くターゲットパラメータと アプリのNavigation Managerなどの このアクションを実行するために必要な いくつかの依存関係を受け取ります
次にこのインテントをSiriに渡し アプリをApple Intelligenceと 統合する方法をご紹介します 統合の実現にあたっては App Intentドメインが今年導入されたため 新しいOpen Photoスキーマを利用できます 新しいAssistantIntentマクロを AppIntentの宣言に追加します
入力を始めるとコード補完により 候補が表示され作業を助けてくれます まずphotosドメインを選択し 次にopenAssetスキーマを選択します
準備ができたのでアプリをビルドしましょう
この新しいエラーは何でしょうか インテントをSiriに渡す際は 関連するエンティティや列挙型も すべて渡す必要があります AssetEntityの定義に移動して このエラーを修正しましょう
エンティティを明示するのを 忘れていたようです 新しいAssistantEntityマクロを 宣言に追加して修正しましょう
入力を始めるとまた自動補完により photosが候補として表示されます
次にこのエンティティのスキーマとして assetを選択します
もう一度ビルドしてみましょう
前回のインテントのエラーは 修正されたようですが 新しい準拠を追加したことで エンティティで新しいビルドエラーが 発生してしまいました Appleのモデルは 特定のシェイプのエンティティを 予測するようトレーニングされています エンティティをスキーマに準拠させることで コンパイラはエンティティの シェイプを検証する 追加のチェックを 実行できるようになります 今回はhasSuggestedEditsの プロパティが欠落していたようです 追加しましょう
欠落していたプロパティを追加すると エンティティがスキーマのシェイプと一致し ビルドが成功しました コンパイラは既存のApp Intentを スキーマに準拠させるのに便利なツールです ゼロから始める場合は 必要なシェイプを自動入力してくれる コードスニペットも公開されています
このモデルには写真をお気に入り登録 するためのメソッドがすでにあります これを使って新しいApp Intentを作成し この機能をSiriに実装しましょう
AssetIntentsファイルに戻ります
今度はテンプレートを使ってみましょう
プレースホルダを実際のエンティティの型に 置き換えるだけで作業は完了です
アプリの依存関係を取得します
次にperformを実装します
以上です
コンパイラにエラーは発生せず ビルドが成功しました デモで見たように Assistantスキーマを使うと 既存のApp Intentに対して ビルド時に追加の検証ができます この検証ではスキーマの実装が モデルのトレーニングに使用された シェイプと一致することが確認されます Xcodeスニペットも公開されているため ゼロからでも簡単に機能を構築できます ではこれらをショートカットアプリで テストして実行する方法をご紹介します 他のApp Intentと同様に スキーマに準拠したApp Intentは アクションとしてショートカットアプリに 自動的に表示され ショートカットエコシステム全体に 統合されます これには個人用のオートメーションや ホーム画面のショートカットなどが含まれます ショートカットアプリは今すぐAssistant スキーマをテストしたい場合に最適です 将来的にはこれらの同じ インテントやエンティティは 自動的に Siriと連携するようになります 先ほどのデモのOpenAssetIntentと UpdateAssetIntentを覚えているでしょうか ショートカットアプリを使って これらのアクションを実行し エンドツーエンドでテストする方法を ご紹介します まずショートカットアプリを起動します 一番上にあるボタンをタップし 新しいショートカットを作成します 次にをタップして アクションを絞り込みます まずOpen Photoから始めましょう
これを保存します
新しいタイルが表示されました タップすると先ほどのデモの OpenAssetIntentが実行されます
いくつかの選択肢が表示され その中から選択できます 1つを選択してアプリで開いてみます
ご覧の通りアクションが実行され アプリ内で正しい写真に移動できました デモで確認したようにショートカットは アクションを今すぐテストするのに 最適なツールです 将来的にはこのようなインテントが自動的に Siriで利用できるようになります ここまでアプリのスキーマに準拠した アクションをビルドして検証しました 次にパーソナルコンテキストについて 簡単にご紹介します Apple Intelligenceにより Siriはより幅広いパーソナルコンテキストを 理解できるようになりました これはSiriがデバイス上のあらゆる情報を 安全かつプライベートな方法で検索し 論理的に判断できるように なったということです アプリ内検索から見ていきましょう 既存の ShowInAppSearchResultsIntent上に 構築されているためシステムは アプリの検索機能を直接利用できます Siriは検索結果の画面に 直接ユーザーを誘導します このApp IntentをSuperhumanのような メールアプリと併用すれば 「Superhumanで自転車を検索して」と Siriに呼びかけるだけで 検索結果をアプリ内に表示する機能を 提供できるようになります
これは検索結果をアプリに表示するための App Intentです 既存のShowInAppSearchResultsIntentの 型に準拠しています このたびAppleはシステムドメインとして 新しいAssistantスキーマを導入します これによりアプリに組み込まれた検索機能を Siriと統合できるようになります この新しいスキーマに準拠させるためには このようにAppIntentの宣言の前に Swiftマクロを追加します
この検索インテントにも定義済みの シェイプを活用できます ShowInAppSearchResultsIntentの 型を省略することもできます その結果AppIntentの実装が より簡潔になります 先ほどのデモを踏まえてSiriを使って アプリで写真を検索してみませんか 新しいシステム検索マクロを使えば可能です その方法をご紹介します
このアプリにはすでに場所別に写真を 絞り込める検索バーが組み込まれています
「New」と入力するとニューヨークの 写真のみを表示できます
Xcodeに戻ってこの機能を Siriに実行させる方法を見てみましょう Navigation Managerには条件が設定された openSearchというメソッドがあります このメソッドは指定された条件に一致する 検索結果を表示するページに ユーザーを誘導します。 SearchAssetsの App Intentがすでにあります このインテントはNavigation Managerを 利用してアプリに結果を表示します システムアクションのための 新しいApp Intentドメインを使えば これと同じインテントを SiriとApple Intelligenceに渡せます その方法をご紹介します
この新しい検索用のAssistantスキーマを 追加することで Siriは検索結果のUIに直接ユーザーを 移動させられるようになります 以上です ビルドして実行しショートカットを使って 実際にテストしてみましょう
再度ショートカットアプリを開き 新しいアクションを作成します 絞り込んでアプリを見つけます
今度はSearch Photosを選びます そして保存します では実行してみましょう
このApp Intentは検索条件の パラメータを使用するため 値の入力が求められます 「San Fran」と入力してみましょう
ご覧の通りアクションが正常に実行され ゴールデンゲートブリッジの 美しい写真が表示されました デモで見たようにアプリ内検索は ユーザーをアプリに誘導し 美しいUIで検索結果を表示する 優れた方法です 今年行われたSiriの機能拡張により Siriにアプリの内容を 詳細に理解させることで より多くのことを 実行させられるようになりました さらにApple Intelligenceにより Siriでセマンティック検索を 利用できるようになりました つまり「ペット」で検索すると 「ペット」という単語だけでなく 猫、犬、ヘビまでも ヒットするようになりました SiriはLLMを使ってペットとは 何かを理解できるようになりました コンテンツを見つけたらそれに基づき 直接アクションを実行できます 例えばお気に入りのペットの 写真を友だちと共有できます アプリでApp Intentフレームワークを使用して エンティティを定義することで 追加のコンテキストを 提供できるようになりました IndexedEntityと呼ばれる 新しいAPIに準拠することで Siriがアプリのコンテンツを 検索できるようになり セマンティックインデックスの情報を 利用できるようになります
IndexedEntityの詳細は 「What’s new in App Intents」をご覧ください Apple Intelligenceの機能が導入されたことで 今年はSiriにとって 新しい時代の幕開けとなりました アプリをSiriと統合するために必要な ツールはすでに提供開始されています 今後のソフトウェアアップデートで 前述のアプリ内アクションや パーソナルコンテキストを理解する機能を 公開していく予定です 本セッションではメディアライブラリアプリを Siri対応にする手順をご紹介しました しかしそれを実際に使っている デモはお見せできていません 本セッションを終える前に 今後アプリで何ができるようになるのか 簡単にご紹介したいと思います
「California」のアルバムに写真を追加し
Joshにメールで送信できます
本日の内容をまとめます Apple Intelligenceの 新しい大規模言語モデルにより Siriは今まで以上に高性能で柔軟性が高い インテリジェントなツールになりました SiriKitとApp IntentはアプリにSiriを 統合するための2つのフレームワークです アプリが既存のSiriKit ドメインに含まれていない場合 App Intentは最適なフレームワークです インテリジェンスの分野では Siriがアプリ内で自動的に アクションを実行できるようになりました 新しいAssistant Schemas APIを導入すれば このメリットを活用することもできます
こちらのビデオもぜひご覧ください ご視聴ありがとうございました
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。