
EmbedPG是一種node.js API服務,它使用PostgreSQL與pgvector擴展。它可以幫助存儲和搜索矢量數據在數據庫中。該項目是一個早期版本,可以查看它是否對人們有用。
向量數據庫確實很有用,但通常昂貴且受到限制。我創建了EmbedPG,以使這些數據庫更容易和便宜。它適用於不同尺寸的項目。主要成本來自使用PostgreSQL和服務器空間等雲服務。 EmbedPG可幫助您快速設置使用易於使用的API端點和命令行工具的矢量數據庫。
我們使用PGVECTOR擴展名的PostgreSQL存儲和搜索嵌入。您可以在此處找到PGVECTOR:GitHub上的PGVECTOR。
PGVECTOR支持:
是的,有一些支持PGVECTOR的雲解決方案:
嵌入PG利用幾種關鍵技術和包裝來提供其功能:
在開始安裝過程之前,請確保已安裝以下先決條件:
npm install -g pnpm它。 EmbedPG需要使用pgvector擴展的後Ql。您可以使用:
pgvector官方存儲庫可在Github的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/pgvector克隆嵌入PG存儲庫
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之後,您可以設置有效運行所需的組件。
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註釋。
這是EmbedPG的API文檔。
在將EmbedPG部署到生產環境中之前,請確保您設置了必要的環境變量和配置。另外,請確保您正在使用pgvector擴展程序運行PostgreSQL(請參閱支持PGVECTOR的部分雲解決方案)。
運行以下命令來構建生產應用程序:
pnpm build構建完成後,您將擁有一個帶有編譯代碼的dist目錄。將此代碼部署到您的服務器並運行以下命令以啟動服務:
首先運行數據庫遷移:
pnpm prod:db migration --up生成一個新的API令牌:
pnpm generate:token然後開始服務:
pnpm start您還可以使用Docker部署嵌入PG。
構建Docker映像(注意:確保您已經設置了必要的環境變量):
./scripts/build-server.sh該項目已根據MIT許可獲得許可。有關詳細信息,請參見許可證文件。
感謝您對embedpg貢獻的興趣!有關如何為項目貢獻的指南,請參見貢獻。