document retrieval caching
1.0.0
建立一個通過緩存的文檔檢索的後端。
緩存算法在服務器中創建了一個隊列,該隊列將從以前的Quries中存儲從向量數據庫中存儲有限數量的節點。對於來自用戶的每個查詢,首先將與隊列中的查詢匹配,如果相似性(cesine)高於0.9,則比從查找表中返回的那些節點分開保持。
第一個請求=>花費時間787 ms 
第二個類似請求=>花費的時間為54 ms 
錯誤的請求
健康檢查端點
curl --location ' localhost:8001/health '搜索檢查端點
curl --location ' localhost:8001/search ' --header ' user_id: riondsilva ' --header ' Content-Type: application/json ' --data ' { "text": "Ingredient Substitutions" , "top_k": 5 , "threshold": 0.3 } '*按順序運行
色度圖像
docker run -p 8000:8000 chromadb/chromaPostgres圖像
docker run --name user-database -p 5432:5432
-e POSTGRES_PASSWORD=your_password -d postgres:12.20-alpine3.20 docker stop user-database文檔取回
git clone https://github.com/RionDsilvaCS/document-retrieval-caching.git在主目錄中創建.env文件並添加以下變量
DATABASE_URL="postgresql://postgres:your_password@localhost:5432/postgres"
COLLECTION_NAME="collection_name"
創建目錄名稱data並添加PDF文檔
mkdir data
運行store_in_db.py以將./data內容保存到chromadb
python store_in_db.pydocker compose up --build/health是終點以檢查服務器是否啟動
端點
http://127.0.0.1:8001/health
回覆
{
"Server Status" : " Successfully running ? "
} /search是與聊天機器人交談的帖子端點
端點
http://127.0.0.1:8001/search
標題
{
"user_id" : " riondsilva "
}json身體
{
"text" : " How are you? " ,
"top_k" : 3 ,
"threshold" : 0.3
}回覆
{
"bot_message" : {
"top_k_results" : [
{
"message" : " I am great ? "
},
{
"message" : " I am fine "
},
{
"message" : " I am good "
}
],
"top_k" : 3 ,
"threshold" : 0.9
},
"user_message" : {
"text" : " How are you? " ,
"top_k" : 3 ,
"threshold" : 0.9 ,
"inference_time (secs)" : 1.16
},
"user_info" : " riondsilva "
}