|
.PHONY: default banner install install-seed seed run stop db-purge api-install env-create env db db-stop api api-stop |
|
SHELL := /bin/bash |
|
default: help |
|
|
|
help: |
|
make banner |
|
@echo "+------------------+" |
|
@echo "| π CORE COMMANDS |" |
|
@echo "+------------------+" |
|
@echo "make install - Setup environment and build models" |
|
@echo "make install-seed - Setup environment, build models and seed database" |
|
@echo "make seed - Seed database with dummy data" |
|
@echo "make run - Run database and API server" |
|
@echo "make stop - Stop database and API server" |
|
@echo "make db-purge - Delete all data in database\n" |
|
|
|
banner: |
|
@echo "\n\n-------------------------------------" |
|
@echo "βββββ ββββ βββ ββββ βββββ βββββ βββββ" |
|
@echo "βββββ ββββ βββ ββββ βββββ βββββ βββββ" |
|
@echo "βββββ ββββ βββ ββββ βββββ βββββ βββββ" |
|
@echo "+-----------------------------------+" |
|
@echo "| π€ FastAPI LLM server |" |
|
@echo "+-----------------------------------+\n\n" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
install: |
|
@make banner |
|
@make api-install |
|
@make db-stop |
|
@echo "β
Installation complete. Run 'make run' to start services.\n" |
|
|
|
|
|
|
|
|
|
install-seed: |
|
@make banner |
|
@make api-install |
|
@make seed |
|
@make db-stop |
|
@echo "β
Installation complete. Run 'make run' to start services.\n" |
|
|
|
|
|
seed: |
|
@make banner |
|
@echo "π± Seeding database ..\n" |
|
@python3 seed.py |
|
|
|
|
|
|
|
|
|
run: |
|
@make banner |
|
@make env |
|
@echo "π Starting services ..\n" |
|
@make db |
|
@make api |
|
|
|
|
|
|
|
|
|
stop: |
|
@make banner |
|
@echo "π Stopping services ..\n" |
|
@make db-stop |
|
@make api-stop |
|
|
|
|
|
|
|
|
|
db-purge: |
|
@echo "β Are you sure you want to delete all data in the database? [y/N]\n" |
|
@read confirmation; \ |
|
if [ "$$confirmation" = "y" ] || [ "$$confirmation" = "Y" ]; then \ |
|
echo "Deleting generated files..."; \ |
|
make db-stop; \ |
|
rm -rf ../../mnt; \ |
|
echo "Deleted."; \ |
|
else \ |
|
echo "Aborted."; \ |
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
api-install: |
|
@echo "ποΈ Installing services ..\n" |
|
@make env-create |
|
@make db-stop |
|
@make db |
|
@make models |
|
|
|
|
|
|
|
|
|
env-create: |
|
@echo "Creating virtual environment .." |
|
@if [ -d "./venv" ]; then \ |
|
echo "Environment and dependecies created already, loading .."; \ |
|
source ./venv/bin/activate; \ |
|
else \ |
|
echo "Install dependencies .."; \ |
|
python3 -m venv venv; \ |
|
. venv/bin/activate; \ |
|
pip3 install -r requirements.txt; \ |
|
fi |
|
|
|
|
|
|
|
|
|
env: |
|
@echo "loading virtual environment if exists" |
|
@if [ -d "./venv" ]; then \ |
|
source ./venv/bin/activate; \ |
|
fi |
|
|
|
|
|
|
|
|
|
db: |
|
@echo "Starting Postgres with pgvector .." |
|
@cd ../../ && docker-compose -f docker-compose.yml up -d db |
|
|
|
|
|
|
|
|
|
db-stop: |
|
@cd ../../ && docker-compose -f docker-compose.yml up -d db |
|
|
|
|
|
|
|
|
|
models: |
|
@echo "π½ Building models in database .." |
|
@sleep 60 && python3 models.py |
|
|
|
|
|
|
|
|
|
api: |
|
@echo "β‘ Starting FastAPI API server .." |
|
@sleep 5 && uvicorn main:app --port 8888 --reload |
|
|
|
|
|
|
|
|
|
api-stop: |
|
@echo "π Stopping FastAPI server .." |
|
@killall uvicorn |
|
|