
ENGEDPG est un service API Node.js qui utilise PostgreSQL avec l'extension pgvector . Il aide à stocker et à rechercher des données vectorielles dans une base de données. Ce projet est une première version pour voir s'il est utile pour les gens.
Les bases de données vectorielles sont vraiment utiles mais souvent coûteuses et restreintes. J'ai créé ENGEDPG pour rendre ces bases de données plus faciles et moins chères à utiliser. Il fonctionne bien pour différentes tailles de projets. Le coût principal provient de l'utilisation de services cloud comme PostgreSQL et de l'espace serveur. ENGEDPG vous aide à configurer rapidement une base de données vectorielle avec des points de terminaison API faciles à utiliser et un outil de ligne de commande.
Nous stockons et recherchons des incorporations à l'aide de PostgreSQL avec l'extension PGVector. Vous pouvez trouver PGVector ici: PGVector sur GitHub.
PGVector support:
Oui, il existe des solutions cloud qui prennent en charge PGVector:
ENGEDPG exploite plusieurs technologies et packages clés pour fournir ses fonctionnalités:
Avant de commencer le processus d'installation, assurez-vous que les conditions préalables suivantes sont installées:
npm install -g pnpm . ENGEDPG nécessite PostgreSQL avec l'extension pgvector . Vous pouvez configurer ceci en utilisant:
pgvector officiel disponible sur PGVector sur 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/pgvectorCloner le référentiel EmbedPG
git [email protected]:arisrayelyan/embed-pg.gitAccédez à l'annuaire du projet
cd embed-pgInstaller des dépendances
pnpm installConfigurer des variables d'environnement
Copiez le fichier .env.example sur .env et définissez les variables d'environnement selon les besoins.
# 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= " "Remarque: Des variables d'environnement OpenAI sont requises lorsque ENCEDPG doit gérer les demandes d'intégration pour vous.
Après avoir configuré vos variables d'environnement et installé ENGEDPG, vous êtes prêt à configurer les composants nécessaires pour que votre service fonctionne efficacement.
pnpm generate:collections : Cette commande lance un outil de ligne de commande interactif qui vous guide en générant tous les composants nécessaires pour toute nouvelle collection que vous souhaitez ajouter. Cela inclut les services, les points de terminaison API, les entités de base de données et les migrations, garantissant que votre service de base de données vectorielle est complet et prêt à répondre aux besoins de données spécifiques.pnpm generate:token : Cette commande génère un nouveau jeton API pour votre service, que vous pouvez utiliser pour authentifier les demandes à votre service ENGEDPG.pnpm start : Démarrez le service en mode de production.pnpm build : Créez l'application de production.pnpm dev : Démarrez le service en mode développement et appliquez des migrations de base de données.pnpm dev:db migration : appliquer les migrations de la base de données en mode développement.--create un drapeau crée un nouveau fichier de migration.--up drapeau applique toutes les migrations en attente.--down Flag recule la dernière migration.--to Flag applique toutes les migrations jusqu'à une migration spécifique.pnpm db migration : appliquez les migrations de la base de données en mode de production. Utilisez les mêmes drapeaux que en mode développement.pnpm lint : Vérifiez le code source pour les erreurs de style et de programmation.pnpm lint:fix : Correction automatique des erreurs de liaison dans le code source.Lorsque vous générez une nouvelle collection, ENGEDPG crée les fichiers suivants:
src pour inclure les nouveaux fichiers. Remarque : vous pouvez personnaliser les fichiers générés en fonction de vos besoins spécifiques. Mais ne supprimez pas le ! embedPg Commentaire dans les fichiers, car ENGEDPG l'utilise pour identifier les fichiers générés.
Voici la documentation de l'API pour ENGEDPG.
Avant de déployer ENGEDPG dans un environnement de production, assurez-vous d'avoir configuré les variables et configurations d'environnement nécessaires. Assurez-vous également que vous exécutez PostgreSQL avec l'extension pgvector (voir la section Solutions Cloud Solutions en prenant en charge PGVector ).
Exécutez la commande suivante pour créer l'application de production:
pnpm build Une fois la construction terminée, vous aurez un répertoire dist avec le code compilé. Déployez ce code sur votre serveur et exécutez la commande suivante pour démarrer le service:
Exécutez d'abord les migrations de la base de données:
pnpm prod:db migration --upGénérer un nouveau jeton API:
pnpm generate:tokenPuis démarrez le service:
pnpm startVous pouvez également déployer ENGEDPG à l'aide de Docker.
Construisez l'image Docker ( Remarque: assurez-vous que vous avez configuré les variables d'environnement nécessaires):
./scripts/build-server.shCe projet est autorisé sous la licence du MIT. Voir le fichier de licence pour plus de détails.
Merci de votre intérêt à contribuer à ENGEDPG! Voir le fichier contribution.md pour les directives sur la façon de contribuer au projet.