
EmbedPGは、 pgvector拡張機能を使用してPostgreSQLを使用するNode.js APIサービスです。データベースにベクトルデータを保存および検索するのに役立ちます。このプロジェクトは、それが人々にとって役立つかどうかを確認するための初期版です。
ベクトルデータベースは本当に便利ですが、しばしば高価で制限されています。これらのデータベースを使用しやすくするために、EmbedPGを作成しました。さまざまなサイズのプロジェクトに適しています。主なコストは、PostgreSQLやサーバースペースなどのクラウドサービスを使用することから生じます。 EmbedPGは、使いやすいAPIエンドポイントとコマンドラインツールを使用して、ベクトルデータベースをすばやく設定するのに役立ちます。
PGVector拡張機能を使用してPostgreSQLを使用して埋め込みを保存および検索します。 PGVectorはGitHubでPGVectorをご覧ください。
PGVectorサポート:
はい、pgvectorをサポートするクラウドソリューションがあります。
EmbedPGは、いくつかの主要なテクノロジーとパッケージを活用して、その機能を提供します。
インストールプロセスを開始する前に、次の前提条件がインストールされていることを確認してください。
npm install -g pnpmを実行してインストールします。 embedPGには、 pgvector拡張機能を備えたPostgreSQLが必要です。以下を使用してこれを設定できます。
pgvectorリポジトリ。 # 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/pgvectorEmbedPGリポジトリをクローンします
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= " "注:EMBEDPGが埋め込みリクエストを処理する必要がある場合、OpenAI環境変数が必要です。
環境変数をセットアップしてEmbedPGをインストールした後、サービスに効果的に動作するために必要なコンポーネントをセットアップする準備が整いました。
pnpm generate:collections :このコマンドは、追加する新しいコレクションに必要なすべてのコンポーネントを生成することをガイドするインタラクティブコマンドラインツールを起動します。これには、サービス、APIエンドポイント、データベースエンティティ、および移行が含まれ、Vectorデータベースサービスが包括的で特定のデータニーズを処理できるようにします。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コメントをファイルに掲載します。
EmbedPGのAPIドキュメントは次のとおりです。
EmbedPGを生産環境に展開する前に、必要な環境変数と構成を設定していることを確認してください。また、 pgvector拡張機能を使用してPostgreSQLを実行していることを確認してください( PGVectorをサポートするセクションクラウドソリューションを参照)。
次のコマンドを実行して、生産の申請を構築します。
pnpm buildビルドが完了すると、コンパイルされたコードを備えたdistディレクトリがあります。このコードをサーバーに展開し、次のコマンドを実行してサービスを開始します。
最初にデータベースの移行を実行します。
pnpm prod:db migration --up新しいAPIトークンを生成します:
pnpm generate:token次に、サービスを開始します。
pnpm startDockerを使用してEmbedPGを展開することもできます。
Docker画像を作成します(注:必要な環境変数を設定していることを確認してください):
./scripts/build-server.shこのプロジェクトは、MITライセンスの下でライセンスされています。詳細については、ライセンスファイルを参照してください。
EmbedPGに貢献してくれてありがとう!プロジェクトへの貢献方法に関するガイドラインについては、Contributing.mdファイルを参照してください。