このページでは、アプリに生成 AI 機能を実装する方法について説明します。生成 AI を含む Firestore の機能とインテグレーションについて説明します。
Cloud Firestore を使用したベクトル検索のクイックスタート
商品のレコメンデーションや chatbot などのユースケース向けに革新的な AI 搭載ソリューションを作成するには、多くの場合、ベクトル類似性検索、略してベクトル検索が必要になります。データを別のベクトル検索ソリューションにコピーする手間をかけずに、Firestore データに対してベクトル検索を実行し、運用の簡素化と効率性を維持できます。
Cloud 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)ワークフローを使用します。
ソリューション: Genkit
概要: Firebase Genkit は、プロダクション レディ AI 搭載アプリを構築、デプロイ、モニタリングするオープンソース フレームワークです。
ユースケース: Genkit と Cloud Firestore を使用して、カスタム コンテンツの生成、セマンティック検索の使用、非構造化入力の処理、ビジネスデータに関する質問への回答などを行うアプリを作成します。