前言
現在開始 Kernel Memory 可以使用 Postgres+pgvector 來當作 vector storage 了哦~
實作
安裝 PostgreSQL + pgvector
到 PostgreSQL 下載安裝後,
再到 pgvector 依說明安裝。
目前 pgvector 在 Windows 平台上還是實驗性的,在透過 nmake 建置時,
如果在nmake /F Makefile.win install無法 Copy 檔案,請以系統管理員身份執行來開啟命令視窗,再執行一次。
沒問題後,開啟 PostgreSQL ,執行 CREATE EXTENSION vector;來啟用 vector;
設定 vector storage 為 PostgreSQL
要使用 PostgreSQL ,要加入 Microsoft.KernelMemory.Postgres 套件。
以下 VSCode 建立 ipynb 檔,並用 OpenAI 及 PostgreSQL 來測試,
建立 .env 檔案,並放入相關的設定值,如下,
| 1 | OPENAI_APIKEY=你的OpenAI API Key | 
1.加入套件
| 1 | 
 | 
2.設定 PostgreSQL
| 1 | using Microsoft.KernelMemory.Postgres; | 
3.extract,partition,gen_embeddings,save_records
接下來將上傳檔案,讀取內容,切 Chunks 並透過 OpenAI 建立內容 embedding ,存到 PostgreSQL 並設定 index 為 tooth。
| 1 | var id = "tooth"; | 
所以在 PostgreSQL 上可以看到這次建立的 tooth index,會放在 km-tooth Table 之中。
 
4.將使用者問題轉成 Embeddings 到 PostgreSQL 進行搜尋,並將相關內容透過 OpenAI 進行 Summary
| 1 | var answer = await memory.AskAsync("請總結關於洗牙的相關規定", index:id); | 
