前言
現在開始 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); |