1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

# Semantic Kernel:PostgreSQLをベクトルデータベースとして使用

Posted at

前回の「Semantic Kernel: Embeddingでカスタマーサービス(RAG)」では、Redisをベクトルデータベースとして使いました。今回は、PostgreSQLを使用して実装する方法を見てみましょう。

まず、Nugetパッケージを導入する必要があります:

Microsoft.SemanticKernel.Connectors.Postgres

PostgreSQLを標準インストールした場合、ベクトル化をサポートしていないため、拡張機能をインストールする必要があります。以下はgithub上のPostgreSQLのベクトル拡張機能のリンクで、この拡張機能は自身でソースコードを編集してインストールする必要があります。公式の手順は図一に示されています。ですが、この手順は少し不明瞭なので、簡単にまとめた手順を共有します。

githubアドレス:https://github.com/pgvector/pgvector

図一:PostgreSQLのベクトル拡張

pgvectorのコンパイル

  1. Visual Studioをインストールし、C++開発キットをインストールします。以下のbatファイルを実行して、コンパイル環境を確認できます:

    C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
    
  2. 次に、nmakeとPGROOTの2つの環境変数を設定します:

    • nmake.exeのパスをPathリストに追加します:

      C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.42.34226\bin\Hostx86\x64
      
    • PostgreSQLのライブラリパスを設定します:

      PGROOT=C:\Program Files\PostgreSQL\16
      
  3. pgvectorのソースコードをダウンロードします。gitを使ってクローンするか、直接ダウンロードして任意のパスに配置します。

  4. 最後に、x64 Native Tools Command Prompt for VS 2022 Previewを使用してコンパイルとインストールを行います。

    • Visual Studioのインストールディレクトリ内にある「x64 Native Tools Command Prompt for VS 2022 Preview」を開きます。このショートカットのプロパティからも詳細を確認できます。

    図二:x64 Native Tools Command Prompt for VS 2022 Preview

    ターゲットは以下のように設定されています:

    %comspec% /k "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
    

    ここで指定されている vcvars64.bat スクリプトファイルが、Visual C++開発用の環境変数を設定するためのバッチファイルです。これにより、コンパイルに必要なパス、ライブラリ、ツールチェーンが設定されます。

  5. x64 Native Tools Command Prompt for VS 2022 Preview を開いて、pgvectorが保存されているディレクトリに移動し、以下のコマンドでコンパイルします:

    nmake /F Makefile.win
    

    図三:nmakeコンパイル情報

pgvectorのインストール

以下のコマンドを使用してpgvectorをインストールします:

nmake /F Makefile.win install

図四:インストール情報

インストールが完了すると、以下の3つの場所に対応するファイルが配置されます:

  • A、動的ライブラリ vector.dllC:\Program Files\PostgreSQL\16\lib

    図五:vector.dllパス

  • B、35個のベクトル拡張ファイル:C:\Program Files\PostgreSQL\16\share\extension

    図六:vector拡張ファイル

  • C、3つのタイプ定義ファイル:C:\Program Files\PostgreSQL\16\include\server\extension\vector

    図七:3つのタイプ定義ファイル

PostgreSQLでvector拡張をインストール

最後のステップとして、PostgreSQLを開いてvector拡張をインストールします:

CREATE EXTENSION vector;

拡張がインストールされると、以下の図八の赤い部分のように結果を確認できます。

図八:vectorインストール結果

もし直接vector拡張をインストールしたい場合、以下のアドレスから対応するファイルをダウンロードし、対応するパスに配置してインストールできます:

データ保存後の結果

図九:ベクトル化テーブルデータ

(Translated by GPT)

元のリンク:https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247488404&idx=1&sn=2989ca6101033d3cdc4dd4b757dc1df9&chksm=9f004cbea877c5a881b73909c6eb252943a284ee692dbcae4c674858fbeaf342aaa98eeb700a&token=1036480445&lang=zh_CN#rd&wt.mc_id=MVP_325642

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?