File size: 4,127 Bytes
6b5e1db 9fa975b 0245be8 9fa975b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | .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"
# ================
# π CORE COMMANDS
# ================
# ----------------------------------
# Setup environment and build models
# ----------------------------------
install:
@make banner
@make api-install
@make db-stop
@echo "β
Installation complete. Run 'make run' to start services.\n"
# ----------------------------------------------
# Setup environment and build models and seed DB
# ----------------------------------------------
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 database and API server
# ---------------------------
run:
@make banner
@make env
@echo "π Starting services ..\n"
@make db
@make api
# ----------------------------
# Stop database and API server
# ----------------------------
stop:
@make banner
@echo "π Stopping services ..\n"
@make db-stop
@make api-stop
# ---------------------------
# Delete all data in database
# ---------------------------
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
# ==================
# π HELPER COMMANDS
# ==================
# --------------
# Install helper
# --------------
api-install:
@echo "ποΈ Installing services ..\n"
@make env-create
@make db-stop
@make db
@make models
# -------------------
# Create a virtualenv
# -------------------
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
# ---------------------------
# Load an existing virtualenv
# ---------------------------
env:
@echo "loading virtual environment if exists"
@if [ -d "./venv" ]; then \
source ./venv/bin/activate; \
fi
# -----------------
# Start Postgres DB
# -----------------
db:
@echo "Starting Postgres with pgvector .."
@cd ../../ && docker-compose -f docker-compose.yml up -d db
# -----------------
# Stop Postgres DB
# -----------------
db-stop:
@cd ../../ && docker-compose -f docker-compose.yml up -d db
# ------------
# Build models
# ------------
models:
@echo "π½ Building models in database .."
@sleep 60 && python3 models.py
# -----------------
# Start FastAPI API
# -----------------
api:
@echo "β‘ Starting FastAPI API server .."
@sleep 5 && uvicorn main:app --port 8888 --reload
# -----------------
# Stop FastAPI API
# -----------------
api-stop:
@echo "π Stopping FastAPI server .."
@killall uvicorn
|