
EmbedPG - это служба API Node.js, которая использует PostgreSQL с расширением pgvector . Это помогает хранить и поиск данных вектора в базе данных. Этот проект является ранней версией, чтобы увидеть, полезно ли он для людей.
Векторные базы данных действительно полезны, но часто дорогие и ограниченные. Я создал EmbedPG, чтобы сделать эти базы данных проще и дешевле в использовании. Это хорошо работает для разных размеров проектов. Основная стоимость заключается в использовании облачных сервисов, таких как PostgreSQL и серверное пространство. EmbedPG помогает вам быстро настроить векторную базу данных с помощью простых в использовании конечных точек API и инструмента командной строки.
Мы храним и ищем встроены, используя PostgreSQL с расширением PGVector. Вы можете найти PGVector здесь: PGVector на GitHub.
PGVector поддерживает:
Да, есть облачные решения, которые поддерживают PGVector:
EmbedPG использует несколько ключевых технологий и пакетов для обеспечения своей функциональности:
Прежде чем начать процесс установки, убедитесь, что у вас установлены следующие предпосылки:
npm install -g pnpm . EmbedPG требует PostgreSQL с расширением pgvector . Вы можете настроить это, используя:
pgvector доступен в PGVector на 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/pgvectorКлонировать репозиторий EmbedPG
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 Environment требуются, когда EmbedPG должен обрабатывать запросы на встраивание для вас.
После настройки переменных среды и установки EmbedPG вы готовы настроить компоненты, необходимые для эффективного работы вашей службы.
pnpm generate:collections : Эта команда запускает интерактивную командную строку, который направляет вас через создание всех необходимых компонентов для любой новой коллекции, которую вы хотите добавить. Это включает в себя услуги, конечные точки API, объекты базы данных и миграции, обеспечивающие комплексную службу вашей векторной базы данных и готовы к удовлетворению конкретных потребностей данных.pnpm generate:token : Эта команда генерирует новый токен API для вашего сервиса, который вы можете использовать для аутентификации запросов в вашу службу EmbedPG.pnpm start : запустите сервис в производственном режиме.pnpm build : построить приложение для производства.pnpm dev : запустите службу в режиме разработки и примените миграции базы данных.pnpm dev:db migration : применить миграции базы данных в режиме разработки.--create Flag создает новый файл миграции.--up Flag применяет все ожидающие миграции.--down флаг откатается назад последней миграции.--to флаг применяет все миграции вплоть до определенной миграции.pnpm db migration : применить миграции базы данных в производственном режиме. Используйте те же флаги, что и в режиме разработки.pnpm lint : Проверьте исходный код на наличие ошибок в стиле и программировании.pnpm lint:fix : автоматически исправить ошибки вкладки в исходном коде.Когда вы генерируете новую коллекцию, EmbedPG создает следующие файлы:
src , чтобы включить новые файлы. Примечание . Вы можете настроить сгенерированные файлы в соответствии с вашими конкретными потребностями. Но не удаляйте ! embedPg Комментарий ! embedPg в файлах, так как EmbedPG использует это для идентификации сгенерированных файлов.
Вот документация API для EmbedPG.
Перед тем, как развернуть EmbedPG в производственную среду, убедитесь, что вы установили необходимые переменные и конфигурации среды. Также убедитесь, что вы работаете с PostgreSQL с расширением pgvector (см. Разделие облачные решения, поддерживающие PGVector ).
Запустите следующую команду для создания приложения для производства:
pnpm build После завершения сборки у вас будет dist каталог с составленным кодом. Развернуть этот код на ваш сервер и запустите следующую команду, чтобы запустить службу:
Сначала запустите миграцию базы данных:
pnpm prod:db migration --upСоздайте новый токен API:
pnpm generate:tokenЗатем запустите сервис:
pnpm startВы также можете развернуть EmbedPG с помощью Docker.
Создайте изображение Docker ( примечание: убедитесь, что вы настроили необходимые переменные среды):
./scripts/build-server.shЭтот проект лицензирован по лицензии MIT. Смотрите файл лицензии для получения подробной информации.
Спасибо за заинтересованность в участии в EmbedPG! См. Файл apponting.md для руководящих принципов о том, как внести свой вклад в проект.