ทำตามขั้นตอนเหล่านี้เพื่อตั้งค่าและรันโครงการ:
ติดตั้ง PostgreSQL
admin
กำหนดค่าโครงการ
config
ในไดเร็กทอรีโปรเจ็กต์db.js
และอัปเดตบรรทัด 3:mayanksharma
เป็นชื่อผู้ใช้ระบบของคุณตั้งค่าฐานข้อมูล
CREATE EXTENSION vector;
ติดตั้ง Ollama
ollama pull snowflake-arctic-embed
ติดตั้งการพึ่งพาโครงการ
npm install
node server.js
ติดตั้งส่วนขยายไคลเอ็นต์ REST
ทดสอบ API
api.http
เพื่อทดสอบตำแหน่งข้อมูล API {
"query" : " your_search_query "
}
{
"title" : " magazine_title " ,
"author" : " author_name " ,
"category" : " magazine_category " ,
"content" : " magazine_content "
}
ฉันใช้ PostgreSQL กับ pgvector (จัดเก็บเวกเตอร์ที่ฝัง) และ tsvector (จัดเก็บข้อความเนื้อหา)
ข้อกำหนด: ค้นหาจาก 1 ล้านบันทึก
เพิ่มดัชนี Hierarchical Navigable Small Worlds (HNSW) สำหรับการค้นหาเวกเตอร์บนเนื้อหาที่ฝัง เหตุผล: การค้นหาจำเป็นต้องมีการเรียกคืนสูง ซึ่งทำให้ hnsw ดีกว่าการอ้างอิง ivfflat
เพิ่มดัชนีสำหรับชื่อเรื่อง ผู้แต่ง และเนื้อหา
เพิ่มการแบ่งหน้าเพื่อลดเวลาในการโหลด
โปรไฟล์: พีค
ผู้ใช้เสมือน: 20
ระยะเวลาการทดสอบ: 5 นาที
การเข้าถึงปลายทาง: POST /api/v1/magazine/hybridsearch/1 ("glasgow", "game", "business", "shubham", "food" และ "modern")
คำขอทั้งหมดที่ส่ง: 10,915
คำขอต่อวินาที: 35.62
เวลาตอบสนองเฉลี่ย: 116 ms
มีการใช้บริการสองรายการสำหรับการค้นหาข้อความและการค้นหาเวกเตอร์
การฝังถูกสร้างขึ้นโดยโมเดล Meta llama "snowflake-arctic-embed" ซึ่งมีน้ำหนักเบา
ขั้นตอนที่ 1: ออบเจ็กต์ทั่วไปจากผลการค้นหาทั้งแบบเวกเตอร์และข้อความแบบเต็มจะแสดงก่อน
ขั้นตอนที่ 2: ตามด้วยวัตถุจากการค้นหาข้อความเท่านั้น
ขั้นตอนที่ 3: ส่วนที่เหลือของวัตถุจากการค้นหาเวกเตอร์
คำค้นหา: เวกเตอร์ "กลาสโกว์" ส่งกลับ "บันทึกประจำวันของเซลติก" ซึ่งมี "สกอตแลนด์เขียนอยู่ในเนื้อหา"
แบบสอบถาม: เวกเตอร์ "ขนมชนิดร่วน" ส่งคืน "วารสารงานฉลองเซลติก" เนื่องจาก "ขนมชนิดร่วน" เกี่ยวข้องกับ "สกอตแลนด์"
ข้อความค้นหา: คีย์เวิร์ด/ข้อความเต็ม "shubham" ส่งคืน "Physics Refresher" ซึ่งมีชื่อผู้แต่ง "Shubham Thorve"
ข้อความค้นหา: คีย์เวิร์ด/ข้อความเต็ม "mayank" ส่งคืน "Digit Gaming" ซึ่งมีชื่อผู้แต่ง "Mayank Khurana"
คำค้นหา: คำหลัก/ข้อความแบบเต็ม "เดือน" ส่งคืน "Dalal Street Journal" ซึ่งมีเนื้อหา "ทั้งหมดเกี่ยวกับวิดีโอเกมเดือนนี้"
/model