
InScEDPG es un servicio de API Node.js que utiliza PostgreSQL con la extensión pgvector . Ayuda a almacenar y buscar datos de vectores en una base de datos. Este proyecto es una versión temprana para ver si es útil para las personas.
Las bases de datos vectoriales son realmente útiles pero a menudo caras y restringidas. Creé InScEDPG para hacer estas bases de datos más fáciles y más baratas de usar. Funciona bien para diferentes tamaños de proyectos. El costo principal proviene del uso de servicios en la nube como PostgreSQL y Servidor Space. INCREDPG lo ayuda a configurar una base de datos vectorial rápidamente con puntos finales de API fáciles de usar y una herramienta de línea de comandos.
Almacenamos y buscamos incrustaciones utilizando PostgreSQL con la extensión PGVector. Puede encontrar PGVector aquí: PGVector en GitHub.
PGVector admite:
Sí, hay soluciones en la nube que admiten PGVector:
InScEDPG aprovecha varias tecnologías y paquetes clave para ofrecer su funcionalidad:
Antes de comenzar el proceso de instalación, asegúrese de tener los siguientes requisitos previos instalados:
npm install -g pnpm . INCREDPG requiere PostgreSQL con la extensión pgvector . Puedes configurar esto usando:
pgvector disponible en PGVector en 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/pgvectorClon el repositorio de incrustación
git [email protected]:arisrayelyan/embed-pg.gitNavegue al directorio del proyecto
cd embed-pgInstalar dependencias
pnpm installConfigurar variables de entorno
Copie el archivo .env.example a .env y establezca las variables de entorno según sea necesario.
# 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= " "Nota: Se requieren variables de entorno OpenAI cuando InSCREDPG necesita manejar las solicitudes de incrustación para usted.
Después de configurar sus variables de entorno e instalar IncredPG, está listo para configurar los componentes necesarios para que su servicio funcione de manera efectiva.
pnpm generate:collections : este comando inicia una herramienta de línea de comandos interactiva que lo guía a través de la generación de todos los componentes necesarios para cualquier nueva colección que desee agregar. Esto incluye servicios, puntos finales de API, entidades de bases de datos y migraciones, asegurando que su servicio de base de datos vectorial sea integral y esté listo para manejar las necesidades de datos específicas.pnpm generate:token : este comando genera un nuevo token API para su servicio, que puede usar para autenticar las solicitudes a su servicio IngredPG.pnpm start : inicie el servicio en modo de producción.pnpm build : Cree la aplicación para la producción.pnpm dev : inicie el servicio en modo de desarrollo y aplique migraciones de bases de datos.pnpm dev:db migration : aplique migraciones de bases de datos en modo de desarrollo.--create Flag crea un nuevo archivo de migración.--up aplica todas las migraciones pendientes.--down bandera hacia abajo vuelve a la última migración.--to bandera aplica todas las migraciones hasta una migración específica.pnpm db migration : aplique migraciones de bases de datos en modo de producción. Use las mismas banderas que en el modo de desarrollo.pnpm lint : verifique el código fuente de los errores de estilo y programación.pnpm lint:fix : corrige automáticamente los errores de pelusa en el código fuente.Cuando genera una nueva colección, InScEDPG crea los siguientes archivos:
src para incluir los nuevos archivos. Nota : Puede personalizar los archivos generados para satisfacer sus necesidades específicas. Pero no elimine el ! embedPg Comentario de ! embedPg en los archivos, ya que InScEDPG usa esto para identificar los archivos generados.
Aquí está la documentación de API para InScEDPG.
Antes de implementar incrustado en un entorno de producción, asegúrese de haber configurado las variables y configuraciones de entorno necesarias. También asegúrese de ejecutar PostgreSQL con la extensión pgvector (consulte Sección de soluciones en la nube que admiten PGVector ).
Ejecute el siguiente comando para crear la aplicación para la producción:
pnpm build Después de completar la compilación, tendrá un directorio dist con el código compilado. Implemente este código en su servidor y ejecute el siguiente comando para iniciar el servicio:
Al principio, ejecute las migraciones de la base de datos:
pnpm prod:db migration --upGenere un nuevo token API:
pnpm generate:tokenLuego comience el servicio:
pnpm startTambién puede implementar incrusco usando Docker.
Construya la imagen Docker ( nota: asegúrese de haber configurado las variables de entorno necesarias):
./scripts/build-server.shEste proyecto tiene licencia bajo la licencia MIT. Consulte el archivo de licencia para obtener más detalles.
¡Gracias por su interés en contribuir a InScEDPG! Consulte el archivo Contriping.MD para las pautas sobre cómo contribuir al proyecto.