見出し画像

PostgreSQL with pgvector を Docker で利用したい

OpenAI の API をただ使うだけでは面白みもないので、たとえば Obsidian の PKM を RAG にして使えるようにしたらちょっと面白いんじゃないかと、ベクトルデータベースを使えるようにしてみました。

わが家にはちんまいけれどもサーバがありますので、pgvector を Enable にした postgresql 動かせば、ベクトルデータベースがひとまず使えます。

PostgreSQL にベクトルを追加する拡張機能、pgvector はこちら。

PostgreSQL サーバ上で、次のコマンドが叩ければインストールできます。

cd /tmp
git clone --branch v0.5.1 https://github.com/pgvector/pgvector.git
cd pgvector
make
make install # may need sudo

が、docker で作ろうとした場合、メインのイメージに make install できるパッケージが入っていることも前提です。

こちらの内容を参考にして、Dockerfile を作成して docker compose.yml を書き直しました。

pgvector/Dockerfile

FROM postgres:16.1

RUN apt-get update && \
    apt-get install -y git make gcc postgresql-server-dev-16


RUN cd /tmp && \
    git clone --branch v0.5.1 https://github.com/pgvector/pgvector.git && \
    cd pgvector && \
    make && \
    make install && \
    cd ../ && rm -rf pgvector

docker-compose.yml (postgresql部分のみ)

services:
     :
  db:
    image: postgres:latest
    build:
      context: ./pgvector
    ports:
      - "5432:5432"
    volumes:
      - /home/postgres/data:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=passw0rd
    restart: always
      :

Latest の postgresql 16.1 を利用するパターンでもうまく動いているようです。次はこのデータベースにデータの突っ込み方を考えないとなー。

この記事が参加している募集

#AIとやってみた

27,570件

貴方がサポートしてくれると、私が幸せ。 私が幸せになると、貴方も幸せ。 新しいガジェット・ソフトウェアのレビューに、貴方の力が必要です。