>_tech-draft
Firebaseのアイコン
Firebase
動画公開日
タイトル

Firebase AI Logic KSP (Android)

再生時間

45秒

KSP for Firebase AIロジック:KotlinでGemini APIの構造化出力を生成する方法

ポイント

  • KSP for Firebase AIロジックは、Kotlin開発者がGemini APIからの出力形式を厳密に制御するための新しいSDKです。
  • データクラスにアノテーションを付与し、モデルにクラス記述を行うことで、非構造化データを定義済みスキーマに沿った構造化オブジェクトとして直接取得できます。
  • これにより、Gemini APIの出力パースの手間とエラーを削減し、AIを活用したアプリケーション開発を効率化する方法を学べます。

先月、Googleから「KSP for Firebase AIロジック」という新しいSDKがリリースされました。これは、Firebase AIと連携し、開発者の皆様のワークフローを大きく改善する可能性を秘めています。本記事では、このSDKが提供する機能と、その利用開始方法についてご紹介いたします。

KSP for Firebase AIロジックとは?

KSP for Firebase AIロジックは、Kotlinのデータクラスにアノテーション(注釈)を付与することで、Gemini APIから希望するスキーマに準拠した構造化された出力を生成するよう促すことを可能にする新しいSDKです。これにより、モデルからの出力形式を厳密に制御し、アプリケーションでのデータ利用をよりスムーズに行えるようになります。

Gemini APIと構造化出力の生成

このSDKの主要な目的は、Gemini APIが生成するテキストなどの非構造化データを、事前に定義したKotlinのデータクラスの形式に合うように、構造化されたオブジェクトとして直接受け取ることです。例えば、ユーザーからの入力に基づいて特定の情報(名前、住所、連絡先など)を抽出する際に、手動でパースする手間を省き、エラーのリスクを低減できます。

KSP for Firebase AIロジックの始め方

ここからは、KSP for Firebase AIロジックを始めるための具体的な手順をご紹介します。以下のステップに沿って設定を進めることで、すぐにこの新機能を活用開始できます。

1. 依存関係の追加

まず、プロジェクトのGradle設定ファイルに、KSP for Firebase AIロジックに必要な依存関係を追加します。これにより、SDKの機能がプロジェクト内で利用可能になります。

2. クラスのアノテーション

次に、Gemini APIからの出力として期待する構造を持つKotlinのデータクラスを定義し、以下の二つのアノテーションを付与します。

  • @Generatable: このアノテーションは、そのクラスがGemini APIによって生成可能なオブジェクトのスキーマとして利用されることを示します。
  • @Serializable: データクラスをシリアライズ可能にすることで、JSONなどの形式でデータをやり取りできるようにします。

また、これらのクラスがコンパニオンオブジェクト(companion object)を持っていることを確認してください。これは、KSPがクラスの情報を正しく処理するために必要です。

3. モデルへのクラス記述

Geminiモデルがデータクラスの意図や構造を正確に理解できるよう、クラスの記述を適切に行うことが重要です。以下のいずれかの方法でクラスを記述します。

  • KDocs(Kotlin Documentation): コードコメントとしてクラスやプロパティの目的を詳細に記述します。
  • @Guideアノテーション: クラス定義内にこのアノテーションを使用し、モデルに対する具体的なガイドラインや説明を直接提供します。

これらの記述により、モデルはより正確に、期待される構造に沿った出力を生成できるようになります。

4. オブジェクト生成の呼び出し

Gemini APIから構造化されたオブジェクトを生成するには、GenerativeModel.generateObjectメソッドを呼び出します。このメソッドには、以下の二つの主要な引数を渡します。

  • Firebase AIスキーマ: 対象のKotlinデータクラスから生成されたFirebase AIスキーマを渡します。これは、モデルが出力すべき構造を定義します。
  • プロンプト: Gemini APIに対する具体的な指示や質問を含むテキストプロンプトを渡します。

このメソッドの呼び出しにより、Gemini APIはプロンプトに基づいてコンテンツを生成し、その内容を定義されたスキーマに適合させようと試みます。

5. レスポンスの確認

GenerativeModel.generateObjectメソッドの実行後、最終的に、定義されたKotlinデータクラスの型を持つオブジェクトがレスポンスとして返却されます。このオブジェクトは、Gemini APIによって生成された構造化されたデータを含んでいます。これにより、APIからの出力を直接アプリケーションのデータモデルとして利用できるようになり、開発プロセスが大幅に簡素化されます。

まとめ

KSP for Firebase AIロジックは、Kotlinのデータクラスを活用し、Gemini APIからスキーマに準拠した構造化出力を生成するための強力なツールです。上記の手順に沿って導入することで、この新機能をすぐに活用開始でき、AIを活用したアプリケーション開発の可能性を広げることができます。

参考動画

詳細はこちらのガイドをご確認ください。

KSP for Firebase AI logic: Gemini API structured output with Kotlin