นี่เป็นโครงการเริ่มต้นพื้นฐานสำหรับการสร้างด้วยเครื่องมือและ API ต่อไปนี้:
เมื่อฉันเริ่มดำน้ำในทั้งหมดนี้ฉันรู้สึกในขณะที่ฉันเข้าใจบางส่วนของแต่ละชิ้นมันยากที่จะรวมทุกอย่างเข้าด้วยกันในโครงการที่เหนียวแน่น ฉันหวังว่าโครงการนี้จะมีประโยชน์สำหรับทุกคนที่ต้องการสร้างด้วยสแต็กนี้และต้องการสิ่งที่จะเริ่มต้นด้วย
เรากำลังสร้างแอพที่ใช้ข้อความ (ไฟล์ข้อความ) ฝังไว้ในเวกเตอร์เก็บไว้ใน pinecone และอนุญาตให้ค้นหาข้อมูลความหมาย
สำหรับทุกคนที่สงสัยว่าการค้นหาความหมายคืออะไรนี่คือภาพรวม (นำโดยตรงจาก chatgpt4):
การค้นหาความหมายหมายถึงวิธีการค้นหาที่เข้าใจถึงความตั้งใจของผู้ใช้และความหมายตามบริบทของคำค้นหาการค้นหาแทนที่จะเป็นเพียงการจับคู่คำหลัก
มันใช้การประมวลผลภาษาธรรมชาติและการเรียนรู้ของเครื่องเพื่อตีความความหมายหรือความหมายเบื้องหลังการสืบค้น สิ่งนี้ส่งผลให้เกิดผลการค้นหาที่แม่นยำและเกี่ยวข้องมากขึ้น การค้นหาความหมายสามารถพิจารณาเจตนาของผู้ใช้บริบทการสืบค้นการจดจำคำพ้องความหมายและความเข้าใจภาษาธรรมชาติ แอปพลิเคชันมีตั้งแต่เครื่องมือค้นหาเว็บไปจนถึงระบบแนะนำส่วนบุคคล
ในส่วนนี้ฉันจะแนะนำคุณถึงวิธีการปรับใช้และเรียกใช้แอพนี้
ในการเรียกใช้แอพนี้คุณต้องมีสิ่งต่อไปนี้:
หากต้องการเรียกใช้แอพในพื้นที่ให้ทำตามขั้นตอนเหล่านี้:
git clone [email protected]:dabit3/semantic-search-nextjs-pinecone-langchain-chatgpt.gitเปลี่ยนเป็นไดเรกทอรีและติดตั้งการอ้างอิงโดยใช้ NPM หรือเส้นด้าย
คัดลอก .example.env.local ไปยังไฟล์ใหม่ที่เรียกว่า .env.local และอัปเดตด้วยคีย์และสภาพแวดล้อม API ของคุณ
ตรวจสอบให้แน่ใจว่าสภาพแวดล้อมของคุณเป็นสภาพแวดล้อมจริงที่คุณมอบให้โดย Pinecone เช่น us-west4-gcp-free
(ไม่บังคับ) - เพิ่มข้อความที่คุณกำหนดเองหรือไฟล์ markdown ของคุณเองลงในโฟลเดอร์ /documents
เรียกใช้แอพ:
npm run dev เมื่อสร้าง embeddings และดัชนีอาจใช้เวลาสูงสุด 2-4 นาทีสำหรับดัชนีในการเริ่มต้นอย่างสมบูรณ์ มีฟังก์ชั่น settimeout ที่ 180 วินาทีใน utils ที่รอการสร้างดัชนี
หากการเริ่มต้นใช้เวลานานกว่านั้นจะล้มเหลวในครั้งแรกที่คุณพยายามสร้าง embeddings หากสิ่งนี้เกิดขึ้นให้ไปที่คอนโซล Pinecone เพื่อดูและรอสถานะของดัชนีของคุณที่ถูกสร้างขึ้นเพื่อให้เสร็จสิ้นจากนั้นเรียกใช้ฟังก์ชั่นอีกครั้ง
ข้อมูลแอพที่กำหนดค่าล่วงหน้าเป็นเรื่องเกี่ยวกับเอกสารการพัฒนาเลนส์โปรโตคอลดังนั้นจึงจะเข้าใจคำถามเกี่ยวกับเรื่องนี้เท่านั้นเว้นแต่คุณจะแทนที่ด้วยข้อมูลของคุณเอง นี่คือคำถามสองสามข้อที่คุณอาจถามด้วยข้อมูลเริ่มต้น
ฐานของโครงการนี้ได้รับคำแนะนำจากการสอน Node.js นี้โดยมีการปรับโครงสร้างและส่งไปยัง Next.js. คุณสามารถติดตามพวกเขาได้ที่นี่บน Twitter!
ฉันขอแนะนำให้ตรวจสอบตัวโหลดที่เก็บ GPT ซึ่งทำให้ง่ายต่อการเปลี่ยน GitHub repo ใด ๆ ให้เป็นรูปแบบข้อความรักษาโครงสร้างของไฟล์และเนื้อหาไฟล์ทำให้ง่ายต่อการสับและบันทึกลงใน Pinecone โดยใช้รหัสของฉัน