# Weaviateの機能と実践的な使い方
🚀 「テストのためにベクトルDBサーバを立てるのが面倒」を解決するのがEmbedded Weaviateです。スクリプトから一行で起動し、終われば消える使い捨てDBとして、CIやノートブックに組み込めます。
📌 タイトルと機能のURL
タイトル: Embedded Weaviate
URL:
📝 概要
Embedded Weaviateは、独立したサーバを立てる代わりに、アプリケーションのコードからWeaviateインスタンスを起動する実験的なデプロイ方式です。インスタンスのライフサイクルはクライアントアプリに紐づき、アプリが終了するとインスタンスも終了します(ただし永続化したデータは残ります)。インフラ準備ゼロで実験を回せるのが最大の利点です。
🔧 機能の説明
・Pythonでは weaviate.connect_to_embedded(version=..., headers=..., environment_variables=...) でインスタンスを起動します。
・クライアントは binary_path のキャッシュにバイナリがあるか確認し、無ければGitHubリリースから適切なバイナリ(linux/macOS向け)をダウンロードしてキャッシュします。
・初回起動時に persistence_data_path に永続データストアが作られ、次回以降は同じデータストアを再利用するため、セッション間でデータが残ります。
・ライフサイクルはスクリプト終了・アプリ終了・ノートブックの非アクティブ化で終了します。
🛠 実践的な使い方
・主なパラメータは version(latest・バージョン文字列・バイナリURL)、port(既定8079)、persistence_data_path(既定 ~/.local/share/weaviate)、binary_path(既定 ~/.cache/weaviate-embedded)です。
・詳細設定は EmbeddedOptions を使い、additional_env_vars={"ENABLE_MODULES": "..."} のようにモジュールやAPIキーを渡します。設定後 client.connect() で接続します。
・ログが多い場合は environment_variables={"LOG_LEVEL": "error"} で抑制できます。
・TypeScriptでは別パッケージ weaviate-ts-embedded をインストールして利用します。
🎯 ユースケース
・CIのユニットテストで、検索ロジックの回帰テストを「インフラ準備ゼロ」で実行する。
・Jupyterノートブックでのプロトタイピングや実験。
・ローカルでの単一ユーザー向けの軽量な検証用途。
⚠️ 注意点
・実験的ステータスであり、APIやパラメータが変更される可能性があります。
・単一ノード専用で、クラスタリングや分散デプロイには対応しません。本番用途向けではありません。
・対応OSはLinuxとmacOSのみです。
・XDG_DATA_HOME や XDG_CACHE_HOME は他のアプリでも広く使われるため、変更すると他に影響が出る恐れがあります。
#
Weaviate# #
VectorDatabase#