ホームページ > ウェブフロントエンド > jsチュートリアル > Docker コンテナーで pgvector を使用して PostgreSQL をセットアップする

Docker コンテナーで pgvector を使用して PostgreSQL をセットアップする

Susan Sarandon
リリース: 2024-12-02 17:07:12
オリジナル
884 人が閲覧しました

Setup PostgreSQL w/ pgvector in a docker container

この投稿は、Docker でローカル MySQL インスタンスをセットアップする方法に関する以前の投稿の続編です。

RAG (Retrieval Augmented Generation) は、急速に AI アプリの「Hello World」になりつつあります。大規模言語モデルを使用して作業したり遊んだりしている場合は、間違いなく、ある時点で RAG パイプラインを作成する必要があります。 RAG の重要なコンポーネントはベクトル データベースであり、一般的なオプションは pgvector (Postgres 用のオープンソースのベクトル類似性検索) です。 Docker コンテナでローカル インスタンスをすばやくセットアップする方法は次のとおりです。

イメージをプルして実行する

Docker リポジトリから最新のイメージをプルします。 17 を、選択した Postgres サーバーのバージョンに置き換えます。

docker pull pgvector/pgvector:pg17
ログイン後にコピー

イメージを実行し、root ユーザーのパスワードを設定し、デフォルトの Postgres ポートを公開します。

docker run -d --name <container_name> -e POSTGRES_PASSWORD=postgres -p 5432:5432 pgvector/pgvector:pg17
ログイン後にコピー

コンテナ内にデータベースを作成する

Postgres サーバーが実行されている状態で、コンテナ内にデータベースを作成します。

docker exec -it <container_name> createdb -U postgres <database_name>
ログイン後にコピー

データベースに接続する

これで、アプリケーションからデータベースに接続し、pgvector 拡張機能を初期化できるようになりました。 JavaScriptを使用します。アプリケーション全体のセットアップはこの投稿の範囲外ですが、いくつかの依存関係をインストールする必要があります:

pnpm add pg pgvector
ログイン後にコピー

環境に DATABASE_URL を設定します。 .env ファイルを使用します。次の形式に従う必要があります:

DATABASE_URL=postgresql://<pg_user>:<pg_password>@localhost:5432/<database_name>
ログイン後にコピー

ローカル開発の場合は @localhost を使用しますが、docker-compose.yml などを使用していてサービスに名前を付けている場合は、サービスの名前を使用する必要があります。 @db.

アプリケーション コードで接続を作成します。

const pool = new pg.Pool({
  connectionString: process.env.DATABASE_URL,
});
ログイン後にコピー

次に、pgvector を初期化し、新しいテーブルを作成します。

async function createStore() {
  // Initialize pgvector extension and create table if not exists
  await pool.query('CREATE EXTENSION IF NOT EXISTS vector');

  return {
    vectorStore: await PGVectorStore.initialize(embeddings, {
      postgresConnectionOptions: {
        connectionString: process.env.DATABASE_URL,
      },
      tableName: 'documents', // Default table name
    }),
  };
}
ログイン後にコピー

vectorStore セットアップでは、vectorStore.addDocuments を使用してコンテンツを追加し、vectorStore.similaritySearch を使用してコンテキストをクエリできます。

この投稿はここまでです。次回は、pgvector のより具体的な使用方法、および/または Drizzle ORM との使用方法を検討する予定です。 ?

以上がDocker コンテナーで pgvector を使用して PostgreSQL をセットアップするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート