
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贡献的兴趣!有关如何为项目贡献的指南,请参见贡献。