生成 AI を使ってみる

このページでは、アプリに生成 AI 機能を実装する方法について説明します。生成 AI を含む Firestore の機能とインテグレーションについて説明します。

Firestore を使用したベクター検索のクイックスタート

商品のレコメンデーションや chatbot などのユースケース向けに革新的な AI 搭載ソリューションを作成するには、多くの場合、ベクター類似性検索、略してベクター検索が必要になります。データを別のベクター検索ソリューションにコピーする手間をかけずに、Firestore データに対してベクター検索を実行し、運用の簡素化と効率性を維持できます。

Firestore でのベクター検索のコア ワークフローは、4 つのステップで構成されています。

ブログ投稿でベクター検索を完全に理解する

ベクター エンベディングを生成する

ベクター検索を利用する最初のステップとして、ベクター エンべディングを生成します。エンベディングは、テキスト、画像、動画などのさまざまな種類のデータの表現であり、それらが表すエンティティ間の意味的または構文的な類似性を捉えています。エンべディングは、Vertex AI Text Embeddings API などのサービスを使用して計算できます。

Firestore にエンベディングを保存する

エンべディングが生成されると、サポートされている SDK のいずれかを使用して Firestore に保存できます。NodeJS SDK での操作は以下のようになります。

const db = new Firestore();
let collectionRef = db.collection("beans");
await collectionRef.add({
  name: "Kahawa coffee beans",
  type: "arabica",
  description: "Information about the Kahawa coffee beans.",
  embedding_field: FieldValue.vector([0.1, 0.3, ..., 0.2]), // a vector with 768 dimensions
});

ベクター インデックスを作成する

次のステップでは、ベクター エンベディングが保存される Firestore KNN ベクター インデックスを作成します。プレビュー リリース中は、gcloud コマンドライン ツールを使用してインデックスを作成する必要があります。

すべてのベクター エンベディングを追加し、ベクター インデックスを作成したら、検索を実行できます。次に、コレクション参照で find_nearest 呼び出しを使用して、保存されたエンべディングを比較し、使用する距離関数を指定するためのクエリ ベクター エンベディングを渡します。

ワークフローやその他のユースケースについては、ブログ投稿でご確認ください。

概要: ベクター エンベディングの保存とクエリを行います。

ユースケース: この機能は、他のツールや機能で使用されます。

ベクター検索のガイドをご覧ください

ソリューション: Firebase によるベクター検索の拡張機能

概要: Firebase 拡張機能を使用して、ベクター検索機能で Firestore ドキュメントを自動的に埋め込み、クエリを実行します。

ユースケース: Firebase プロジェクトで自動ベクター検索を実行します。

拡張機能の説明を確認する

ソリューション: LangChain のインテグレーション

概要: Firestore を、LangChain のベクターストア、ドキュメント ローダ、チャット メッセージ履歴のソースとして使用します。

ユースケース: 生成 AI アプリケーションの構築または検索拡張生成(RAG)ワークフローを使用します。

LangChain のガイドを確認する

ソリューション: Genkit

概要: Firebase Genkit は、プロダクション レディ AI 搭載アプリを構築、デプロイ、モニタリングするオープンソース フレームワークです。

ユースケース: Genkit と Firestore を使用して、カスタム コンテンツの生成、セマンティック検索の使用、非構造化入力の処理、ビジネスデータに関する質問の回答などを行うアプリを生成します。

Firebase Genkit のドキュメントを確認する