File size: 1,714 Bytes
dae60e5 | 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 | #!/usr/bin/env bash
set -euo pipefail
source scripts/_env.sh
SERVICE="${1:-modal_apps/receipt_vlm_service.py}"
case "$SERVICE" in
modal_apps/receipt_vlm_service.py)
APP_NAME="${2:-dukaan-saathi-receipt-vlm}"
FUNCTION_NAME="${3:-api}"
ROUTE="${4:-/extract}"
ENV_VAR="${5:-MODAL_RECEIPT_ENDPOINT}"
ALSO_ARGS=(--also "MINICPM_RECEIPT_ENDPOINT")
;;
modal_apps/speech_asr_service.py)
APP_NAME="${2:-dukaan-saathi-speech-asr}"
FUNCTION_NAME="${3:-transcribe}"
ROUTE="${4:-}"
ENV_VAR="${5:-MODAL_SPEECH_ENDPOINT}"
ALSO_ARGS=(--also "SPEECH_ASR_ENDPOINT")
;;
modal_apps/receipt_llm_service.py)
APP_NAME="${2:-dukaan-saathi-receipt-llm}"
FUNCTION_NAME="${3:-api}"
ROUTE="${4:-/parse}"
ENV_VAR="${5:-MODAL_RECEIPT_LLM_ENDPOINT}"
ALSO_ARGS=(--also "MODAL_RECEIPT_PARSER_ENDPOINT")
;;
modal_apps/command_nlu_service.py)
APP_NAME="${2:-dukaan-saathi-command-nlu}"
FUNCTION_NAME="${3:-extract}"
ROUTE="${4:-}"
ENV_VAR="${5:-MODAL_NLU_ENDPOINT}"
ALSO_ARGS=()
;;
*)
APP_NAME="${2:?Usage: scripts/modal_deploy.sh <service> <app-name> <function-name> [route] [env-var]}"
FUNCTION_NAME="${3:?Usage: scripts/modal_deploy.sh <service> <app-name> <function-name> [route] [env-var]}"
ROUTE="${4:-}"
ENV_VAR="${5:-MODAL_ENDPOINT}"
ALSO_ARGS=()
;;
esac
echo "Deploying Modal service: $SERVICE"
uv run modal deploy "$SERVICE"
echo "Writing deployed Modal endpoint to .env..."
uv run python scripts/write_modal_endpoint.py \
--app "$APP_NAME" \
--function "$FUNCTION_NAME" \
--route "$ROUTE" \
--env-var "$ENV_VAR" \
"${ALSO_ARGS[@]}"
echo "Done. Current endpoint:"
grep "$ENV_VAR" .env || true
|