
inmbedpg هي خدمة API Node.js التي تستخدم postgresql مع امتداد pgvector . يساعد في تخزين بيانات المتجه والبحث في قاعدة بيانات. هذا المشروع هو نسخة مبكرة لمعرفة ما إذا كان مفيدًا للأشخاص.
قواعد بيانات المتجهات مفيدة حقًا ولكنها غالية الثمن ومقيدة. لقد قمت بإنشاء inmbedpg لجعل قواعد البيانات هذه أسهل وأرخص للاستخدام. إنه يعمل بشكل جيد لأحجام مختلفة من المشاريع. التكلفة الرئيسية تأتي من استخدام الخدمات السحابية مثل PostgreSQL ومساحة الخادم. تساعدك inmbedpg على إعداد قاعدة بيانات متجه بسرعة مع نقاط نهاية واجهة برمجة تطبيقات سهلة الاستخدام وأداة سطر الأوامر.
نقوم بتخزين التضمينات والبحث باستخدام postgreSQL مع امتداد PGVector. يمكنك العثور على pgvector هنا: pgvector على github.
يدعم PGVector :
نعم ، هناك حلول سحابية تدعم PGVector:
يقوم inmbedpg بالاستفادة من العديد من التقنيات والحزم الرئيسية لتقديم وظائفها:
قبل أن تبدأ عملية التثبيت ، تأكد من تثبيت المتطلبات الأساسية التالية:
npm install -g pnpm . يتطلب inmbedpg 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استنساخ مستودع inmbedpg
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 عندما يحتاج inmbedPG إلى التعامل مع طلبات التضمين لك.
بعد إعداد متغيرات البيئة الخاصة بك وتثبيت inmbedpg ، أنت مستعد لإعداد المكونات اللازمة لخدمتك للعمل بفعالية.
pnpm generate:collections : يقوم هذا الأمر بتشغيل أداة سطر أوامر تفاعلية توجهك من خلال إنشاء جميع المكونات اللازمة لأي مجموعة جديدة تريد إضافتها. يتضمن ذلك الخدمات ونقاط نهاية API وكيانات قاعدة البيانات والترحيل ، وضمان أن تكون خدمة قاعدة بيانات المتجهات شاملة وجاهزة للتعامل مع احتياجات البيانات المحددة.pnpm generate:token : يقوم هذا الأمر بإنشاء رمز API جديد لخدمتك ، والتي يمكنك استخدامها لمصادقة الطلبات على خدمة inmbedpg.pnpm start : ابدأ الخدمة في وضع الإنتاج.pnpm build : بناء تطبيق للإنتاج.pnpm dev : ابدأ الخدمة في وضع التطوير وتطبيق ترحيل قاعدة البيانات.pnpm dev:db migration : تطبيق ترحيل قاعدة البيانات في وضع التطوير.--create العلم ينشئ ملف ترحيل جديد.--up العلم فوق جميع الترحيل المعلقة.--down يعيد الترحيل الأخير.--to يطبق جميع الترحيل حتى ترحيل محدد.pnpm db migration : تطبيق ترحيل قاعدة البيانات في وضع الإنتاج. استخدم نفس الأعلام كما في وضع التطوير.pnpm lint : تحقق من الكود المصدر لأخطاء النمط والبرمجة.pnpm lint:fix : إصلاح أخطاء Linting تلقائيًا في الكود المصدري.عندما تقوم بإنشاء مجموعة جديدة ، يقوم inmbedpg بإنشاء الملفات التالية:
src لتضمين الملفات الجديدة. ملاحظة : يمكنك تخصيص الملفات التي تم إنشاؤها لتناسب احتياجاتك المحددة. ولكن لا تزيل ! embedPg تعليق ! embedPg في الملفات ، حيث يستخدم inmbedpg هذا لتحديد الملفات التي تم إنشاؤها.
هنا وثائق API لـ inmbedpg.
قبل نشر inmbedpg على بيئة الإنتاج ، تأكد من إعداد متغيرات البيئة اللازمة والتكوينات. تأكد أيضًا من قيامك بتشغيل PostgreSQL مع امتداد pgvector (انظر Section Cloud Solutions التي تدعم PGVector ).
قم بتشغيل الأمر التالي لبناء تطبيق الإنتاج:
pnpm build بعد اكتمال الإنشاء ، سيكون لديك dist Directory مع الكود المترجم. نشر هذا الرمز على الخادم الخاص بك وقم بتشغيل الأمر التالي لبدء الخدمة:
في البداية قم بتشغيل ترحيل قاعدة البيانات:
pnpm prod:db migration --upتوليد رمز API جديد:
pnpm generate:tokenثم ابدأ الخدمة:
pnpm startيمكنك أيضًا نشر inmbedpg باستخدام Docker.
قم بإنشاء صورة Docker ( ملاحظة: تأكد من إعداد متغيرات البيئة اللازمة):
./scripts/build-server.shهذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. انظر ملف الترخيص للحصول على التفاصيل.
شكرا لك على اهتمامك بالمساهمة في inmbedpg! راجع ملف المساهمة. md للحصول على إرشادات حول كيفية المساهمة في المشروع.