LiamKhoaLe commited on
Commit
dca816b
·
1 Parent(s): 2718c7b

Upd bash scripts

Browse files
Files changed (1) hide show
  1. build.sh +118 -18
build.sh CHANGED
@@ -5,31 +5,131 @@
5
  echo "🏗️ MedAI Processing Build Script"
6
  echo "=================================="
7
 
8
- # Check if mode is specified
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  if [ "$1" = "local" ]; then
10
- echo "🏠 Building in LOCAL mode (MedAlpaca-13b)"
11
- docker build --build-arg IS_LOCAL=true -t medai-processing:local .
12
  elif [ "$1" = "cloud" ]; then
13
- echo "☁️ Building in CLOUD mode (NVIDIA/Gemini APIs)"
14
- docker build --build-arg IS_LOCAL=false -t medai-processing:cloud .
15
  else
16
- echo "Usage: $0 [local|cloud]"
 
 
 
17
  echo ""
18
- echo " local - Build with MedAlpaca-13b model for local inference"
19
- echo " cloud - Build with NVIDIA/Gemini API integration"
20
- echo ""
21
- echo "Examples:"
22
- echo " $0 local # Build for local mode"
23
- echo " $0 cloud # Build for cloud mode"
24
- exit 1
 
 
25
  fi
26
 
27
  echo ""
28
- echo " Build completed successfully!"
29
  echo ""
30
- echo "To run the container:"
31
- if [ "$1" = "local" ]; then
32
- echo " docker run -p 7860:7860 -e HF_TOKEN=your_token_here medai-processing:local"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  else
34
- echo " docker run -p 7860:7860 -e NVIDIA_API_1=your_key -e GEMINI_API_1=your_key medai-processing:cloud"
 
 
 
 
 
 
35
  fi
 
5
  echo "🏗️ MedAI Processing Build Script"
6
  echo "=================================="
7
 
8
+ # Function to prompt user for yes/no
9
+ prompt_yes_no() {
10
+ local prompt="$1"
11
+ local response
12
+ while true; do
13
+ read -p "$prompt (y/n): " response
14
+ case $response in
15
+ [Yy]* ) return 0;;
16
+ [Nn]* ) return 1;;
17
+ * ) echo "Please answer yes (y) or no (n).";;
18
+ esac
19
+ done
20
+ }
21
+
22
+ # Function to get environment variables
23
+ get_env_vars() {
24
+ local mode="$1"
25
+ local env_vars=""
26
+
27
+ if [ "$mode" = "local" ]; then
28
+ echo "🔑 Please provide your Hugging Face token:"
29
+ read -p "HF_TOKEN: " hf_token
30
+ if [ -n "$hf_token" ]; then
31
+ env_vars="-e HF_TOKEN=$hf_token"
32
+ else
33
+ echo "⚠️ Warning: No HF_TOKEN provided. Model download may fail."
34
+ fi
35
+ else
36
+ echo "🔑 Please provide your API keys:"
37
+ read -p "NVIDIA_API_1: " nvidia_key
38
+ read -p "GEMINI_API_1: " gemini_key
39
+
40
+ if [ -n "$nvidia_key" ]; then
41
+ env_vars="$env_vars -e NVIDIA_API_1=$nvidia_key"
42
+ fi
43
+ if [ -n "$gemini_key" ]; then
44
+ env_vars="$env_vars -e GEMINI_API_1=$gemini_key"
45
+ fi
46
+
47
+ if [ -z "$nvidia_key" ] && [ -z "$gemini_key" ]; then
48
+ echo "⚠️ Warning: No API keys provided. Processing may fail."
49
+ fi
50
+ fi
51
+
52
+ echo "$env_vars"
53
+ }
54
+
55
+ # Check if mode is specified as argument
56
  if [ "$1" = "local" ]; then
57
+ MODE="local"
 
58
  elif [ "$1" = "cloud" ]; then
59
+ MODE="cloud"
 
60
  else
61
+ # Interactive mode selection
62
+ echo "Please select the runtime mode:"
63
+ echo "1) Local mode (MedAlpaca-13b) - No API costs, complete privacy"
64
+ echo "2) Cloud mode (NVIDIA/Gemini APIs) - Faster processing, requires API keys"
65
  echo ""
66
+
67
+ while true; do
68
+ read -p "Enter your choice (1 or 2): " choice
69
+ case $choice in
70
+ 1) MODE="local"; break;;
71
+ 2) MODE="cloud"; break;;
72
+ *) echo "Please enter 1 for local mode or 2 for cloud mode.";;
73
+ esac
74
+ done
75
  fi
76
 
77
  echo ""
78
+ echo "Selected mode: $MODE"
79
  echo ""
80
+
81
+ # Ask if user wants to build/rebuild Docker image
82
+ if prompt_yes_no "Would you like to build/rebuild the Docker image?"; then
83
+ echo ""
84
+ if [ "$MODE" = "local" ]; then
85
+ echo "🏠 Building in LOCAL mode (MedAlpaca-13b)..."
86
+ docker build --build-arg IS_LOCAL=true -t medai-processing:local .
87
+ else
88
+ echo "☁️ Building in CLOUD mode (NVIDIA/Gemini APIs)..."
89
+ docker build --build-arg IS_LOCAL=false -t medai-processing:cloud .
90
+ fi
91
+
92
+ if [ $? -eq 0 ]; then
93
+ echo ""
94
+ echo "✅ Build completed successfully!"
95
+ else
96
+ echo ""
97
+ echo "❌ Build failed! Please check the error messages above."
98
+ exit 1
99
+ fi
100
+ else
101
+ echo "⏭️ Skipping Docker build..."
102
+ fi
103
+
104
+ echo ""
105
+
106
+ # Ask if user wants to run the container
107
+ if prompt_yes_no "Would you like to run the Docker container now?"; then
108
+ echo ""
109
+ echo "🚀 Starting Docker container..."
110
+
111
+ # Get environment variables
112
+ ENV_VARS=$(get_env_vars "$MODE")
113
+
114
+ # Set the image name based on mode
115
+ if [ "$MODE" = "local" ]; then
116
+ IMAGE_NAME="medai-processing:local"
117
+ IS_LOCAL_FLAG="-e IS_LOCAL=true"
118
+ else
119
+ IMAGE_NAME="medai-processing:cloud"
120
+ IS_LOCAL_FLAG="-e IS_LOCAL=false"
121
+ fi
122
+
123
+ # Run the container
124
+ echo "Running: docker run -p 7860:7860 $IS_LOCAL_FLAG $ENV_VARS $IMAGE_NAME"
125
+ echo ""
126
+ docker run -p 7860:7860 $IS_LOCAL_FLAG $ENV_VARS $IMAGE_NAME
127
  else
128
+ echo ""
129
+ echo "📋 Manual run command:"
130
+ if [ "$MODE" = "local" ]; then
131
+ echo " docker run -p 7860:7860 -e IS_LOCAL=true -e HF_TOKEN=your_token_here medai-processing:local"
132
+ else
133
+ echo " docker run -p 7860:7860 -e IS_LOCAL=false -e NVIDIA_API_1=your_key -e GEMINI_API_1=your_key medai-processing:cloud"
134
+ fi
135
  fi