3333 TOOL_MODEL_NAME : " Qwen2.5-1.5B-Instruct-Q4_K_M.gguf"
3434 NOMIC_EMBED_MODEL_URL : " https://huggingface.co/nomic-ai/nomic-embed-text-v1.5-GGUF/resolve/main/nomic-embed-text-v1.5.f16.gguf"
3535 NOMIC_EMBED_MODEL_NAME : " nomic-embed-text-v1.5.f16.gguf"
36- # Vision model + mmproj for MultimodalIntegrationTest (issues #103 / #34).
36+ # Vision model + mmproj for MultimodalIntegrationTest (upstream kherud/java-llama.cpp #103 / #34).
3737 # SmolVLM-500M is the smallest community vision GGUF that loads reliably
3838 # under the upstream mtmd pipeline. Total download ~600 MB across model
3939 # plus mmproj; matches the existing per-test-job download budget.
@@ -771,7 +771,7 @@ jobs:
771771 uses : actions/cache@v5
772772 with :
773773 path : models/
774- # GGUF is platform-independent, so ubuntu + macOS share one entry;
774+ # GGUF is platform-independent, so ubuntu + macOS + Windows share one entry;
775775 # bump the suffix when the model set / URLs change.
776776 key : gguf-models-v1
777777 - name : Download text generation model
@@ -786,7 +786,7 @@ jobs:
786786 run : test -f models/${TOOL_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${TOOL_MODEL_URL} --create-dirs -o models/${TOOL_MODEL_NAME}
787787 - name : Download nomic embedding model (issue # 98 regression)
788788 run : test -f models/${NOMIC_EMBED_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${NOMIC_EMBED_MODEL_URL} --create-dirs -o models/${NOMIC_EMBED_MODEL_NAME}
789- - name : Download vision model (issues # 103 / #34)
789+ - name : Download vision model (upstream kherud/java-llama.cpp #103 / # 34)
790790 run : test -f models/${VISION_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MODEL_URL} --create-dirs -o models/${VISION_MODEL_NAME}
791791 - name : Download vision mmproj
792792 run : test -f models/${VISION_MMPROJ_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MMPROJ_URL} --create-dirs -o models/${VISION_MMPROJ_NAME}
@@ -908,7 +908,7 @@ jobs:
908908 uses : actions/cache@v5
909909 with :
910910 path : models/
911- # GGUF is platform-independent, so ubuntu + macOS share one entry;
911+ # GGUF is platform-independent, so ubuntu + macOS + Windows share one entry;
912912 # bump the suffix when the model set / URLs change.
913913 key : gguf-models-v1
914914 - name : Download text generation model
@@ -921,7 +921,7 @@ jobs:
921921 run : test -f models/${REASONING_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${REASONING_MODEL_URL} --create-dirs -o models/${REASONING_MODEL_NAME}
922922 - name : Download tool-calling model
923923 run : test -f models/${TOOL_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${TOOL_MODEL_URL} --create-dirs -o models/${TOOL_MODEL_NAME}
924- - name : Download vision model (issues # 103 / #34)
924+ - name : Download vision model (upstream kherud/java-llama.cpp #103 / # 34)
925925 run : test -f models/${VISION_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MODEL_URL} --create-dirs -o models/${VISION_MODEL_NAME}
926926 - name : Download vision mmproj
927927 run : test -f models/${VISION_MMPROJ_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MMPROJ_URL} --create-dirs -o models/${VISION_MMPROJ_NAME}
@@ -988,7 +988,7 @@ jobs:
988988 uses : actions/cache@v5
989989 with :
990990 path : models/
991- # GGUF is platform-independent, so ubuntu + macOS share one entry;
991+ # GGUF is platform-independent, so ubuntu + macOS + Windows share one entry;
992992 # bump the suffix when the model set / URLs change.
993993 key : gguf-models-v1
994994 - name : Download text generation model
@@ -1001,7 +1001,7 @@ jobs:
10011001 run : test -f models/${REASONING_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${REASONING_MODEL_URL} --create-dirs -o models/${REASONING_MODEL_NAME}
10021002 - name : Download tool-calling model
10031003 run : test -f models/${TOOL_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${TOOL_MODEL_URL} --create-dirs -o models/${TOOL_MODEL_NAME}
1004- - name : Download vision model (issues # 103 / #34)
1004+ - name : Download vision model (upstream kherud/java-llama.cpp #103 / # 34)
10051005 run : test -f models/${VISION_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MODEL_URL} --create-dirs -o models/${VISION_MODEL_NAME}
10061006 - name : Download vision mmproj
10071007 run : test -f models/${VISION_MMPROJ_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MMPROJ_URL} --create-dirs -o models/${VISION_MMPROJ_NAME}
@@ -1068,7 +1068,7 @@ jobs:
10681068 uses : actions/cache@v5
10691069 with :
10701070 path : models/
1071- # GGUF is platform-independent, so ubuntu + macOS share one entry;
1071+ # GGUF is platform-independent, so ubuntu + macOS + Windows share one entry;
10721072 # bump the suffix when the model set / URLs change.
10731073 key : gguf-models-v1
10741074 - name : Download text generation model
@@ -1081,7 +1081,7 @@ jobs:
10811081 run : test -f models/${REASONING_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${REASONING_MODEL_URL} --create-dirs -o models/${REASONING_MODEL_NAME}
10821082 - name : Download tool-calling model
10831083 run : test -f models/${TOOL_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${TOOL_MODEL_URL} --create-dirs -o models/${TOOL_MODEL_NAME}
1084- - name : Download vision model (issues # 103 / #34)
1084+ - name : Download vision model (upstream kherud/java-llama.cpp #103 / # 34)
10851085 run : test -f models/${VISION_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MODEL_URL} --create-dirs -o models/${VISION_MODEL_NAME}
10861086 - name : Download vision mmproj
10871087 run : test -f models/${VISION_MMPROJ_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MMPROJ_URL} --create-dirs -o models/${VISION_MMPROJ_NAME}
@@ -1141,20 +1141,27 @@ jobs:
11411141 with :
11421142 name : Windows-x86_64-libraries
11431143 path : ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
1144+ - name : Cache GGUF models (GitHub Actions cache; avoids re-downloading from HuggingFace)
1145+ uses : actions/cache@v5
1146+ with :
1147+ path : models/
1148+ # GGUF is platform-independent, so ubuntu + macOS + Windows share one entry;
1149+ # bump the suffix when the model set / URLs change.
1150+ key : gguf-models-v1
11441151 - name : Download text generation model
1145- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:MODEL_URL --create-dirs -o models/$env:MODEL_NAME
1152+ run : if (-not (Test-Path "models/$env:MODEL_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:MODEL_URL --create-dirs -o models/$env:MODEL_NAME }
11461153 - name : Download reranking model
1147- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:RERANKING_MODEL_URL --create-dirs -o models/$env:RERANKING_MODEL_NAME
1154+ run : if (-not (Test-Path "models/$env:RERANKING_MODEL_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:RERANKING_MODEL_URL --create-dirs -o models/$env:RERANKING_MODEL_NAME }
11481155 - name : Download draft model
1149- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:DRAFT_MODEL_URL --create-dirs -o models/$env:DRAFT_MODEL_NAME
1156+ run : if (-not (Test-Path "models/$env:DRAFT_MODEL_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:DRAFT_MODEL_URL --create-dirs -o models/$env:DRAFT_MODEL_NAME }
11501157 - name : Download reasoning model
1151- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:REASONING_MODEL_URL --create-dirs -o models/$env:REASONING_MODEL_NAME
1158+ run : if (-not (Test-Path "models/$env:REASONING_MODEL_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:REASONING_MODEL_URL --create-dirs -o models/$env:REASONING_MODEL_NAME }
11521159 - name : Download tool-calling model
1153- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:TOOL_MODEL_URL --create-dirs -o models/$env:TOOL_MODEL_NAME
1154- - name : Download vision model (issues # 103 / #34)
1155- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:VISION_MODEL_URL --create-dirs -o models/$env:VISION_MODEL_NAME
1160+ run : if (-not (Test-Path "models/$env:TOOL_MODEL_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:TOOL_MODEL_URL --create-dirs -o models/$env:TOOL_MODEL_NAME }
1161+ - name : Download vision model (upstream kherud/java-llama.cpp #103 / # 34)
1162+ run : if (-not (Test-Path "models/$env:VISION_MODEL_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:VISION_MODEL_URL --create-dirs -o models/$env:VISION_MODEL_NAME }
11561163 - name : Download vision mmproj
1157- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:VISION_MMPROJ_URL --create-dirs -o models/$env:VISION_MMPROJ_NAME
1164+ run : if (-not (Test-Path "models/$env:VISION_MMPROJ_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:VISION_MMPROJ_URL --create-dirs -o models/$env:VISION_MMPROJ_NAME }
11581165 - name : List files in models directory
11591166 run : ls -l models/
11601167 - name : Validate model files
@@ -1234,20 +1241,27 @@ jobs:
12341241 with :
12351242 name : Windows-x86_64-ninja
12361243 path : ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
1244+ - name : Cache GGUF models (GitHub Actions cache; avoids re-downloading from HuggingFace)
1245+ uses : actions/cache@v5
1246+ with :
1247+ path : models/
1248+ # GGUF is platform-independent, so ubuntu + macOS + Windows share one entry;
1249+ # bump the suffix when the model set / URLs change.
1250+ key : gguf-models-v1
12371251 - name : Download text generation model
1238- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:MODEL_URL --create-dirs -o models/$env:MODEL_NAME
1252+ run : if (-not (Test-Path "models/$env:MODEL_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:MODEL_URL --create-dirs -o models/$env:MODEL_NAME }
12391253 - name : Download reranking model
1240- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:RERANKING_MODEL_URL --create-dirs -o models/$env:RERANKING_MODEL_NAME
1254+ run : if (-not (Test-Path "models/$env:RERANKING_MODEL_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:RERANKING_MODEL_URL --create-dirs -o models/$env:RERANKING_MODEL_NAME }
12411255 - name : Download draft model
1242- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:DRAFT_MODEL_URL --create-dirs -o models/$env:DRAFT_MODEL_NAME
1256+ run : if (-not (Test-Path "models/$env:DRAFT_MODEL_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:DRAFT_MODEL_URL --create-dirs -o models/$env:DRAFT_MODEL_NAME }
12431257 - name : Download reasoning model
1244- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:REASONING_MODEL_URL --create-dirs -o models/$env:REASONING_MODEL_NAME
1258+ run : if (-not (Test-Path "models/$env:REASONING_MODEL_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:REASONING_MODEL_URL --create-dirs -o models/$env:REASONING_MODEL_NAME }
12451259 - name : Download tool-calling model
1246- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:TOOL_MODEL_URL --create-dirs -o models/$env:TOOL_MODEL_NAME
1247- - name : Download vision model (issues # 103 / #34)
1248- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:VISION_MODEL_URL --create-dirs -o models/$env:VISION_MODEL_NAME
1260+ run : if (-not (Test-Path "models/$env:TOOL_MODEL_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:TOOL_MODEL_URL --create-dirs -o models/$env:TOOL_MODEL_NAME }
1261+ - name : Download vision model (upstream kherud/java-llama.cpp #103 / # 34)
1262+ run : if (-not (Test-Path "models/$env:VISION_MODEL_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:VISION_MODEL_URL --create-dirs -o models/$env:VISION_MODEL_NAME }
12491263 - name : Download vision mmproj
1250- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:VISION_MMPROJ_URL --create-dirs -o models/$env:VISION_MMPROJ_NAME
1264+ run : if (-not (Test-Path "models/$env:VISION_MMPROJ_NAME")) { curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors $env:VISION_MMPROJ_URL --create-dirs -o models/$env:VISION_MMPROJ_NAME }
12511265 - name : List files in models directory
12521266 run : ls -l models/
12531267 - name : Validate model files
0 commit comments