之前公司已經訓練出簡單的 AI Model 做一些應用,想要使用 Retrieval Augmented Generation (RAG) 架構進行加強,現在就先想到靠 OpenAI API with text-embedding-3-small model 來對文字抽特徵向量,接著把它存起來,再透過 FacebookResearch Faiss library 建立搜尋架構(尋找相似的向量),就可以完成簡易的向量搜尋。
整體流程:
- 整理一份 FAQ csv 格式,並把問題的文字,使用 text-embedding-3-small 模型抽特徵向量
- 使用 python pandas 用 csv 結構存起來
- 從 csv 建構出 python pandas 結構,再轉成 Facebook Faiss 結構
- 把 query strings 使用 text-embedding-3-small 模型對文字抽特徵向量
- 再拿 query strings 特徵向量去搜尋相似向量,印出五筆資料
% python3 -m venv venv% source venv/bin/activate(venv) % python3 -VPython 3.12.2(venv) % sw_versProductName: macOSProductVersion: 14.5BuildVersion: 23F79(venv) % pip install -r requirements.txt
輸入資料:
% cat .envOPENAI_API_KEY=sk-proj-XXXXXXXXXXXXXXXXXXXXXX% tree datadata├── all_with_embeddings.csv└── raw.csv1 directory, 2 files% head -n 1 data/raw.csvID,Product,Question,Answer% head -n 2 data/all_with_embeddings.csvID,Product,Question,Answer,embedding1,產品,如何安裝設備,1. 首先依照...,"[0.02327146753668785, -0.05237892270088196, ..., -0.001935890642926097]"
運行查詢:
% bash script_query.sh "我的設備沒有訊號,該怎樣處理"
沒有留言:
張貼留言