テキストの意味検索と自動的なベクトル変換機能は、pgx_vectorizerという拡張機能として提供されます。pgx_vectorizerはpgaiを利用しており、pgaiはpgvectorとplpython3uに依存しています。
“導入ガイド(サーバ編)”の“pgvector”を参照して、pgvectorをセットアップしてください。
スーパーユーザーで以下のコマンドを実行し、pgaiのセットアップを行ってください。“<x>”は製品のバージョンを示します。
$ su - # cp -r /opt/fsepv<x>server64/OSS/pgai-extension/* /opt/fsepv<x>server64/
注意
Fujitsu Enterprise Postgresのサーバ機能がインストールされた状態では、plpython3uは以下を使用する構成となっています。
RHEL8、RHEL9の場合: Python3.9
SLES15の場合: Python3.6
上記のpgaiのセットアップにより、plpython3uはPython3.11を使用するように構成が変更されます。そのため既存のplpython3uを使用するPL/Pythonプログラムが動作しなくなる場合があります。
plpython3uをインストール直後の構成に戻す場合は、“3.2.3 アンセットアップ”を参照してください。
インスタンスを起動する前に以下を設定してください。
PYTHONPATH=/opt/fsepv<x>server64/psycopg/python3.11/site-packages/:$PYTHONPATH
以下のパラメータを設定します。
shared_preload_librariesパラメータにpgx_vectorizerを追加します。
pgx_vectorizer.max_vectorize_workerパラメータにベクトル変換処理の最大の並列度を指定します。
max_worker_processesパラメータの値にpgx_vectorizerをCREATE EXTENSIONするデータベースの数+pgx_vectorizer.max_vectorize_worker+2の値を追加します。
Fujitsu Enterprise Postgresサーバ機能のインストール先を標準のインストール先以外に変更した場合は、pgx_vectorizer.pgai_worker_pathパラメータに以下を指定してください。
<Fujitsu Enterprise Postgresサーバ機能のインストールディレクトリ>/OSS/pgai-worker/bin/pgai
本機能を利用するデータベースに対して、CREATE EXTENSIONを実施します。
CASCADEオプションを追加することで依存しているpgai、pgvectorおよびplpython3uも同時に有効になります。
CREATE EXTENSION後、vectorize schedulerを起動するためにstart_vectorize_scheduler関数を実行してください。
例) psqlコマンドを利用して、データベース“rag_database”に接続する例
rag_database=# CREATE EXTENSION IF NOT EXISTS pgx_vectorizer CASCADE; CREATE EXTENSION rag_database=# SELECT pgx_vectorizer.start_vectorize_scheduler(); -- vectorize schedulerの起動
拡張機能を有効にした後、pg_ctl reloadコマンドなどでpostgresql.confパラメータの設定を反映してください。
自動的なベクトル変換機能がバックグラウンドでベクトル変換を行うときに使用するデータベースユーザーを作成し、ベクトル変換を行うユーザーとして登録します。パスワード認証を使用するためパスワードを指定してください。
CREATE ROLE <worker_user> PASSWORD `<worker password>` … LOGIN; SELECT pgx_vectorizer.set_worker_setting('user', 'VECTORIZE_USER', '<worker_user>');
このデータベースユーザーはアプリケーションとしてFujitsu Enterprise Postgresに接続するため、クライアント認証用のpg_hba.confファイルを修正します。上記で作成したデータベースユーザーがpgx_vectorizer機能を利用するデータベースにlocalhostからパスワード認証で接続できるように設定してください。
host <ai-database> <worker_user> 127.0.0.1/32 scram-sha-256 host <ai-database> <worker_user> ::1/128 scram-sha-256
バックグラウンドでベクトル変換を行う処理はFujitsu Enterprise Postgresを起動するOSユーザーの権限で動作します。上記のデータベースユーザーがFujitsu Enterprise Postgresに接続する際に必要なパスワードは、Fujitsu Enterprise Postgresを起動するOSユーザーのパスワードファイルから参照されます。ベクトル変換処理の接続に必要な情報を記載してください。パスワードファイルはデフォルトの場所にあるファイルが使用されます。パスワードファイルについては、“PostgreSQL Documentation”の“The Password File”を参照してください。