
EMBEDPG เป็นบริการ NODE.JS API ที่ใช้ PostgreSQL พร้อมส่วนขยาย pgvector ช่วยจัดเก็บและค้นหาข้อมูลเวกเตอร์ในฐานข้อมูล โครงการนี้เป็นรุ่นแรก ๆ เพื่อดูว่าเป็นประโยชน์สำหรับผู้คนหรือไม่
ฐานข้อมูลเวกเตอร์มีประโยชน์จริง ๆ แต่มักจะมีราคาแพงและถูก จำกัด ฉันสร้าง EMBEDPG เพื่อให้ฐานข้อมูลเหล่านี้ง่ายขึ้นและใช้งานง่ายกว่า มันทำงานได้ดีสำหรับโครงการขนาดต่าง ๆ ค่าใช้จ่ายหลักมาจากการใช้บริการคลาวด์เช่น PostgreSQL และพื้นที่เซิร์ฟเวอร์ EMBEDPG ช่วยให้คุณตั้งค่าฐานข้อมูลเวกเตอร์ได้อย่างรวดเร็วด้วยจุดสิ้นสุด API ที่ใช้งานง่ายและเครื่องมือบรรทัดคำสั่ง
เราจัดเก็บและค้นหา embeddings โดยใช้ PostgreSQL พร้อมส่วนขยาย PGVector คุณสามารถค้นหา pgvector ได้ที่นี่: pgvector บน gitHub
PgVector รองรับ:
ใช่มีโซลูชันคลาวด์ที่รองรับ pgVector:
EMBEDPG ใช้ประโยชน์จากเทคโนโลยีที่สำคัญหลายอย่างและแพ็คเกจเพื่อส่งมอบฟังก์ชั่น:
ก่อนที่คุณจะเริ่มกระบวนการติดตั้งตรวจสอบให้แน่ใจว่าคุณมีการติดตั้งสิ่งที่จำเป็นต้องมีดังต่อไปนี้:
npm install -g pnpm EMBEDPG ต้องการ PostgreSQL พร้อมส่วนขยาย pgvector คุณสามารถตั้งค่านี้ได้โดยใช้:
pgvector มีอยู่ที่ PGVector บน GitHub # Pull the Docker image
docker pull arisrayelyan/pgvector:latest
# Run the Docker container
docker run -d
--name pgvector
-e POSTGRES_PASSWORD=postgres
-e POSTGRES_USER=postgres
-e POSTGRES_DB=postgres
-p 5432:5432 arisrayelyan/pgvectorโคลนที่เก็บข้อมูล EMBEDPG
git [email protected]:arisrayelyan/embed-pg.gitนำทางไปยังไดเรกทอรีโครงการ
cd embed-pgติดตั้งการพึ่งพา
pnpm installตั้งค่าตัวแปรสภาพแวดล้อม
คัดลอกไฟล์ .env.example ไปที่ .env และตั้งค่าตัวแปรสภาพแวดล้อมตามต้องการ
# General Settings
NODE_ENV=development
# Database Configuration
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_NAME=postgres
DB_HOST=localhost
DB_PORT=5432
# Server Settings
PORT=3000
CORS_ORIGINS=http://localhost:3000 # Set the allowed origins for CORS
# OpenAI Configuration
OPENAI_API_KEY= " "
OPEN_AI_MODEL= " "
OPEN_AI_API_ENDPOINT= " "หมายเหตุ: จำเป็นต้องใช้ตัวแปรสภาพแวดล้อม OpenAI เมื่อ EMBEDPG ต้องการจัดการคำขอฝังสำหรับคุณ
หลังจากตั้งค่าตัวแปรสภาพแวดล้อมของคุณและติดตั้ง EMBEDPG คุณพร้อมที่จะตั้งค่าส่วนประกอบที่จำเป็นสำหรับบริการของคุณเพื่อให้บริการอย่างมีประสิทธิภาพ
pnpm generate:collections : คำสั่งนี้เรียกใช้เครื่องมือบรรทัดคำสั่งแบบโต้ตอบที่จะแนะนำคุณผ่านการสร้างส่วนประกอบที่จำเป็นทั้งหมดสำหรับคอลเลกชันใหม่ที่คุณต้องการเพิ่ม ซึ่งรวมถึงบริการจุดสิ้นสุด API เอนทิตีฐานข้อมูลและการย้ายถิ่นเพื่อให้มั่นใจว่าบริการฐานข้อมูลเวกเตอร์ของคุณนั้นครอบคลุมและพร้อมที่จะจัดการกับความต้องการข้อมูลที่เฉพาะเจาะจงpnpm generate:token : คำสั่งนี้สร้างโทเค็น API ใหม่สำหรับบริการของคุณซึ่งคุณสามารถใช้เพื่อตรวจสอบสิทธิ์คำขอไปยังบริการ EMBEDPG ของคุณpnpm start : เริ่มบริการในโหมดการผลิตpnpm build : สร้างแอปพลิเคชันสำหรับการผลิตpnpm dev : เริ่มบริการในโหมดการพัฒนาและใช้การย้ายฐานข้อมูลpnpm dev:db migration : ใช้การโยกย้ายฐานข้อมูลในโหมดการพัฒนา--create ธงสร้างไฟล์การโยกย้ายใหม่--up ใช้การย้ายถิ่นทั้งหมดที่รอดำเนินการ--down ธงลงม้วนการย้ายถิ่นครั้งล่าสุด--to การตั้งค่าสถานะใช้การย้ายถิ่นทั้งหมดจนถึงการโยกย้ายที่เฉพาะเจาะจงpnpm db migration : ใช้การย้ายฐานข้อมูลในโหมดการผลิต ใช้ธงเดียวกับในโหมดการพัฒนาpnpm lint : ตรวจสอบซอร์สโค้ดสำหรับข้อผิดพลาดสไตล์และการเขียนโปรแกรมpnpm lint:fix : แก้ไขข้อผิดพลาดของผ้าสำลีในซอร์สโค้ดโดยอัตโนมัติเมื่อคุณสร้างคอลเลกชันใหม่ EMBEDPG จะสร้างไฟล์ต่อไปนี้:
src เพื่อรวมไฟล์ใหม่ หมายเหตุ : คุณสามารถปรับแต่งไฟล์ที่สร้างขึ้นเพื่อให้เหมาะกับความต้องการเฉพาะของคุณ แต่อย่าลบ ! embedPg ความคิดเห็น ! embedPg ในไฟล์เนื่องจาก EMBEDPG ใช้สิ่งนี้เพื่อระบุไฟล์ที่สร้างขึ้น
นี่คือเอกสาร API สำหรับ EMBEDPG
ก่อนที่จะปรับใช้ EMBEDPG กับสภาพแวดล้อมการผลิตให้แน่ใจว่าคุณได้ตั้งค่าตัวแปรสภาพแวดล้อมและการกำหนดค่าที่จำเป็น ตรวจสอบให้แน่ใจว่าคุณกำลังใช้งาน PostgreSQL ด้วยส่วนขยาย pgvector (ดูส่วน โซลูชันคลาวด์ที่รองรับ PGVector )
เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างแอปพลิเคชันสำหรับการผลิต:
pnpm build หลังจากบิลด์เสร็จสมบูรณ์คุณจะมีไดเรกทอรี dist พร้อมรหัสที่รวบรวม ปรับใช้รหัสนี้ไปยังเซิร์ฟเวอร์ของคุณและเรียกใช้คำสั่งต่อไปนี้เพื่อเริ่มบริการ:
ในตอนแรกเรียกใช้การย้ายฐานข้อมูล:
pnpm prod:db migration --upสร้างโทเค็น API ใหม่:
pnpm generate:tokenจากนั้นเริ่มบริการ:
pnpm startนอกจากนี้คุณยังสามารถปรับใช้ EMBEDPG โดยใช้ Docker
สร้างอิมเมจนักเทียบท่า ( หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าตัวแปรสภาพแวดล้อมที่จำเป็น):
./scripts/build-server.shโครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT ดูไฟล์ใบอนุญาตสำหรับรายละเอียด
ขอบคุณสำหรับความสนใจในการสนับสนุน EMBEDPG! ดูไฟล์ MD ที่มีส่วนร่วมสำหรับแนวทางเกี่ยวกับวิธีการมีส่วนร่วมในโครงการ