
EmbedPG ist ein Node.js -API -Dienst, der PostgreSQL mit der pgvector -Erweiterung verwendet. Es hilft, Vektordaten in einer Datenbank zu speichern und zu durchsuchen. Dieses Projekt ist eine frühe Version, um zu sehen, ob es für Menschen nützlich ist.
Vektordatenbanken sind sehr nützlich, aber oft teuer und eingeschränkt. Ich habe EmbedPG erstellt, um diese Datenbanken einfacher und billiger zu verwenden. Es funktioniert gut für verschiedene Projektgrößen. Die Hauptkosten ergeben sich aus der Verwendung von Cloud -Diensten wie PostgreSQL und Server Space. Mithilfe von EmbedPG können Sie schnell eine Vektor-Datenbank mit benutzerfreundlichen API-Endpunkten und einem Befehlszeilen-Tool einrichten.
Wir speichern und suchen Einbettungen mit PostgreSQL mit der PGVector -Erweiterung. Hier finden Sie PGVector: PGVector auf GitHub.
PGVector unterstützt:
Ja, es gibt Cloud -Lösungen, die PGVector unterstützen:
EinbettPG nutzt mehrere Schlüsseltechnologien und Pakete, um deren Funktionalität zu liefern:
Stellen Sie vor Beginn des Installationsprozesses sicher, dass die folgenden Voraussetzungen installiert sind:
npm install -g pnpm ausführen. EmbedPG erfordert PostgreSQL mit der pgvector -Erweiterung. Sie können dies mit:
pgvector -Repository, der bei PGVector auf GitHub verfügbar ist. # 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/pgvectorKlonen Sie das EmbedPG -Repository
git [email protected]:arisrayelyan/embed-pg.gitNavigieren Sie zum Projektverzeichnis
cd embed-pgAbhängigkeiten installieren
pnpm installUmgebungsvariablen einrichten
Kopieren Sie die Datei .env.example in .env und setzen Sie die Umgebungsvariablen nach Bedarf fest.
# 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= " "HINWEIS: OpenAI -Umgebungsvariablen sind erforderlich, wenn einbettPG einbetten muss, um Anfragen für Sie zu verarbeiten.
Nach dem Einrichten Ihrer Umgebungsvariablen und der Installation von EmbedPG können Sie die Komponenten einrichten, die für Ihren Dienst erforderlich sind, um effektiv zu arbeiten.
pnpm generate:collections : Dieser Befehl startet ein interaktives Befehlszeilen -Tool, mit dem Sie alle erforderlichen Komponenten für jede neue Sammlung generieren möchten, die Sie hinzufügen möchten. Dies umfasst Dienste, API -Endpunkte, Datenbankentitäten und Migrationen, um sicherzustellen, dass Ihr Vektor -Datenbankdienst umfassend und bereit ist, bestimmte Datenanforderungen zu bearbeiten.pnpm generate:token : Dieser Befehl generiert ein neues API -Token für Ihren Dienst, mit dem Sie Anforderungen an Ihren EmbodePG -Dienst authentifizieren können.pnpm start : Starten Sie den Service im Produktionsmodus.pnpm build : Erstellen Sie die Anwendung für die Produktion.pnpm dev : Starten Sie den Dienst im Entwicklungsmodus und wenden Sie Datenbankmigrationen an.pnpm dev:db migration : Datenbankmigrationen im Entwicklungsmodus anwenden.--create Flag erstellt eine neue Migrationsdatei.--up Flagge wendet alle ausstehenden Migrationen an.--down Abwärtsflagge rollt die letzte Migration zurück.--to die Flagge wendet alle Migrationen auf eine bestimmte Migration an.pnpm db migration : Verwenden Sie Datenbankmigrationen im Produktionsmodus. Verwenden Sie dieselben Flags wie im Entwicklungsmodus.pnpm lint : Überprüfen Sie den Quellcode auf Stil- und Programmierfehler.pnpm lint:fix : Automatisch Fix -Lining -Fehler im Quellcode.Wenn Sie eine neue Sammlung generieren, erstellt EmbedPG die folgenden Dateien:
src -Verzeichnis, um die neuen Dateien einzuschließen. Hinweis : Sie können die generierten Dateien an Ihre spezifischen Anforderungen anpassen. Aber entfernen Sie die ! embedPg -Kommentar in den Dateien, wie inbredPG dies verwendet, um die generierten Dateien zu identifizieren.
Hier ist die API -Dokumentation für EmbedPG.
Stellen Sie vor dem Bereitstellen von EmbedPG in eine Produktionsumgebung sicher, dass Sie die erforderlichen Umgebungsvariablen und -konfigurationen einrichten. Stellen Sie außerdem sicher, dass Sie PostgreSQL mit der pgvector -Erweiterung ausführen (siehe Abschnitt Cloud -Lösungen, die PGVector unterstützen ).
Führen Sie den folgenden Befehl aus, um die Anwendung für die Produktion zu erstellen:
pnpm build Nach dem Erstellen haben Sie ein dist -Verzeichnis mit dem kompilierten Code. Stellen Sie diesen Code auf Ihrem Server bereit und führen Sie den folgenden Befehl aus, um den Dienst zu starten:
Führen Sie zunächst die Datenbankmigrationen aus:
pnpm prod:db migration --upGenerieren Sie ein neues API -Token:
pnpm generate:tokenDann starten Sie den Service:
pnpm startSie können auch EmbedPG mit Docker bereitstellen.
Erstellen Sie das Docker -Bild ( Hinweis: Stellen Sie sicher, dass Sie die erforderlichen Umgebungsvariablen einrichten):
./scripts/build-server.shDieses Projekt ist unter der MIT -Lizenz lizenziert. Weitere Informationen finden Sie in der Lizenzdatei.
Vielen Dank für Ihr Interesse, einen Beitrag zur EmbedPG zu leisten! In der Datei mit beitragen.md finden Sie Richtlinien zum Beitrag zum Projekt.