Configuring AIDB#

AIDBを使用するには、shared_preload_libraries に追加し、データベースに拡張機能を作成し、インストールを確認します。

shared_preload_librariesの構成#

  1. postgresql.conf ファイルで、 aidb をshared_preload_libraries パラメーターに追加します。

shared_preload_libraries = aidb
!!! 노트: shared_preload_libraries 에 이미 다른 확장자가 나열되어 있는 경우 쉼표로 구분하여 aidb 를 추가하십시오. 순서는 중요하지 않습니다. .. ::
  1. Postgres 다시 시작하십시오.

拡張機能を作成します#

  1. データベースにAIDB拡張機能を作成します。

CREATE EXTENSION aidb CASCADE;

CASCADE オプションは、必要なvector 拡張機能がまだ存在していない場合は、自動的にインストールします。

!!!注PGDユーザーEDB Postgres分散PGDを実行している場合、拡張機能を作成した後に次を実行して、レプリケーションセットにAIDBカタログテーブルを登録します。

SELECT aidb.bdr_setup();
CREATE EXTENSION pgfs;

詳細については、 PGFS documentation を参照してください。

プロキシ設定#

ご使用の環境がプロキシを介してアウトバウンドHTTPトラフィックをルーティングする場合、 Postgres環境ファイルでHTTP_PROXY およびHTTPS_PROXY 環境変数を設定します。コミュニティPostgresを使用するUbuntuでは、このファイルは/etc/postgresql/<version>/main/environment にあります。

echo "HTTP_PROXY = http://<your-proxy-settings>/" | sudo tee -a /etc/postgresql/16/main/environment
echo "HTTPS_PROXY = http://<your-proxy-settings>/" | sudo tee -a /etc/postgresql/16/main/environment

次に、 Postgresを再起動して変更を有効にします。

sudo systemctl restart postgresql@16-main

<your-proxy-settings> をプロキシアドレスに置き換え、16 をPostgresバージョンに置き換えます。環境ファイルの正確な場所については、Postgresディストリビューションのドキュメントを参照してください。

!!!注 エアギャップ環境は現在サポートされていません。

構成パラメーター#

AIDBは、 aidb.* 名前空間でPostgres構成パラメーターGUCのセットを公開します。 postgresql.conf で設定し、SET とセッションごとに、または-c と接続ごとに設定します。以下のすべてのパラメーターはUSERSET です。ロールは自分のセッションでそれらを変更できます。

モデルのダウンロード#

次のパラメーターは、 AIDBがHuggingFaceからローカルモデルファイルをダウンロードする方法を制御します該当するプロバイダーについては Local models を参照してください。

Parameter

Type

Default

Range

Description

aidb.download_log_level

string

notice

—

ルーチンのダウンロード進行状況メッセージダウンロードの開始/完了、バイト進行状況ハートビート、アダプターのロードラインなどの出力チャネルを制御します。有効な値 notice、log、off。以下を参照してください。

aidb.download_max_attempts

integer

30

1–500

AIDBが異常終了するまでのファイルごとの最大合計ダウンロード試行初期要求と再試行。再試行動作については、 ローカルモデルのダウンロード を参照してください。

helpb.download_log_level#

ルーチンのダウンロード進行状況メッセージの送信先を制御します。警告とエラーは影響を受けません。

Value

Behavior

notice

`NOTICE`レベルでメッセージをクライアントに送信します。 `psql`のインタラクティブセッションに役立ちます。

log

メッセージをサーバーログのみに送信します`log_min_messages`の対象。これは、クライアント出力がコールドおよびウォームキャッシュにわたって安定する必要があるバッチジョブとテストに使用します。

off

ルーチンの進行状況メッセージを完全に抑制します。

例

SET aidb.download_log_level = log;

quietb.download_max_attempts#

ファイルごとのダウンロード試行の合計数を制限します。ダウンローダーは、連続した試行で進行状況がゼロの場合、早期に中断するため、このパラメーターは主に過剰な再試行ループに対する安全上限です。

CIまたはスクリプト化されたバッチジョブでのフェイルファスト動作の場合、これを3 または5 などに下げます。損失の多いリンク上の非常に大きなファイルの場合にのみこの値を上げます。

例

SET aidb.download_max_attempts = 5;

ネットワーク下り#

次のパラメーターは、 AIDBからのアウトバウンドHTTPトラフィック、モデルプロバイダーAPIの呼び出しとHuggingFaceからのモデルファイルのダウンロードの両方を制限します。設定しない場合、制限は適用されず、AIDBは任意のホストに到達できます。

Parameter

Type

Default

Description

aidb.egress_allowlist

string

unset

AIDBが到達できるホストおよび/またはCIDRレンジのコンマ区切りリスト。設定すると、リストにない宛先への送信要求は、接続が確立される前に拒否されます。

edb.egress_allowlist

string

unset

拡張機能ごとの`aidb.egress_allowlist`が設定されていない場合に、すべてのEDB拡張機能で使用される共有フォールバックホワイトリスト。 AIDBと他のEDB拡張機能PGFSなどが同じネットワークポリシーを共有する場合に役立ちます。

エントリーフォーマット#

コンマ区切りの各エントリは、次のいずれかです。

Form

Matches

host.example.com

Exact hostname match (case-insensitive).

.example.com

Any subdomain of example.com (does not match example.com itself).

203.0.113.10

Exact IPv4 or IPv6 literal in the destination URL.

203.0.113.0/24

IPv4 CIDR range; matches IP literals in that range. Does not match hostnames.

2001:db8::/32

IPv6 CIDR range.

エントリの周囲の空白は無視されます。 CIDRエントリはIPリテラルに対してのみチェックされます。ホスト名はマッチングのために解決されません。

解決順序#

アウトバウンド要求ごとに、AIDBは最初にaidb.egress_allowlist をチェックします。設定されていない場合、AIDBはedb.egress_allowlist にフォールバックします。どちらも設定されていない場合、チェックは適用されません。リダイレクトたとえば、CDNホストへのHuggingFaceリダイレクトなどは、同じ許可リストに対して再チェックされます。リストにないホストへのリダイレクトは拒否されます。

例#

OpenAIおよびHuggingFaceとそのCDNへの直接呼び出しのみを許可します。

aidb.egress_allowlist = api.openai.com, huggingface.co, .huggingface.co, cdn-lfs.huggingface.co

要求が拒否されると、AIDBはアクティブなパラメーターを名前付けるエラーを発生させて、オペレーターがリストを調整できるようにします。

!!!注 PGFSは、pgfs.egress_allowlist の下で同じ許可リストメカニズムを実装し、PGFSからクラウドオブジェクトストアエンドポイントS3、Google Cloud Storage、Azure Blobへのトラフィックに適用されます。 edb.egress_allowlist は、両方の拡張機能の共有フォールバックです。1つのリストをAIDBとPGFSに一緒に適用するように設定するか、それぞれが異なるポリシーが必要な場合に拡張ごとのパラメーターを使用します。 PGFS — Network egress を参照してください。

AIDBパイプラインが外部ストレージから読み取る場合、両方の許可リストが関連します。AIDBはモデルプロバイダーとHuggingFaceトラフィックを制御し、PGFSはオブジェクトストアへの接続を制御します。 AIDBとPGFSがどのように連携するかについては、 Configuring external storage を参照してください。

psqlで\dx を実行し、出力でaidb 、vector 、pgfs インストールされている場合を探すことにより、拡張機能がインストールされていることを確認します。

aidb=# \dx
__OUTPUT__
                                     List of installed extensions
       Name            | Version |   Schema   |                        Description
- ----------------------+---------+------------+------------------------------------------------------------
 aidb                  | 7.4.0   | aidb       | aidb: makes it easy to build AI applications with postgres
 pgfs                  | 1.0.6   | pgfs       | pgfs: enables access to filesystem-like storage locations
 vector                | 0.8.0   | public     | vector data type and ivfflat and hnsw access methods