生成 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)ワークフローを使用します。
ソリューション: Genkit
概要: Firebase Genkit は、プロダクション レディ AI 搭載アプリを構築、デプロイ、モニタリングするオープンソース フレームワークです。
ユースケース: Genkit と Firestore を使用して、カスタム コンテンツの生成、セマンティック検索の使用、非構造化入力の処理、ビジネスデータに関する質問の回答などを行うアプリを生成します。