สร้างแบ็กเอนด์สำหรับการดึงเอกสารด้วยการแคช
อัลกอริทึมการแคช สร้างคิวในเซิร์ฟเวอร์ซึ่งจะเก็บจำนวนโหนดจำนวน จำกัด จากฐานข้อมูลเวกเตอร์จากคัมภีร์อัศจรรย์ก่อนหน้า สำหรับการสืบค้นทุกครั้งจากผู้ใช้จะได้รับการจับคู่ครั้งแรกกับการสืบค้นในคิวและหากความคล้ายคลึงกัน (โคไซน์) สูงกว่า 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 } '*วิ่งตามลำดับ
ภาพ Chroma
docker run -p 8000:8000 chromadb/chromaภาพ postgres
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 data ไปยัง Chromadb
python store_in_db.pydocker compose up --build /health เป็นจุด สิ้นสุด เพื่อตรวจสอบว่าเซิร์ฟเวอร์กำลังบูต
จุดสิ้นสุด
http://127.0.0.1:8001/health
การตอบสนอง
{
"Server Status" : " Successfully running ? "
} /search เป็นจุดสิ้นสุด โพสต์ เพื่อสนทนากับ chatbot
จุดสิ้นสุด
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 "
}