Commit 21a556b
2026-08-30 06:38:52
1 parent
f41a23c
Changed files (3)
bin/setup
@@ -7,3 +7,17 @@ bundle install
# Do any other automated setup that you need to do here
mise install
+
+# The gguf provider (and its eval suite, run by bin/test) need a model on
+# disk; without one, a fresh clone fails immediately. Fetch the default
+# once, skip if it's already there so setup stays safe to re-run.
+GGUF_MODEL_DIR="$HOME/.elelem/models"
+GGUF_MODEL_URL="https://huggingface.co/ggml-org/gpt-oss-20b-GGUF/resolve/main/gpt-oss-20b-MXFP4.gguf"
+GGUF_MODEL_PATH="$GGUF_MODEL_DIR/gpt-oss-20b-MXFP4.gguf"
+
+if [ ! -f "$GGUF_MODEL_PATH" ]; then
+ mkdir -p "$GGUF_MODEL_DIR"
+ echo "Downloading default gguf model (~12GB) to $GGUF_MODEL_PATH ..."
+ curl -fL --progress-bar -o "$GGUF_MODEL_PATH.part" "$GGUF_MODEL_URL"
+ mv "$GGUF_MODEL_PATH.part" "$GGUF_MODEL_PATH"
+fi
lib/elelem/plugins/gguf.rb
@@ -4,7 +4,7 @@ Elelem::Providers.register(:gguf) do
gpu = %w[vulkan cuda metal].include?(Elelem::Net::GGUF.backend)
Elelem::Net::GGUF.new(
- model: ENV.fetch("GGUF_MODEL", File.expand_path("~/models/gpt-oss-20b-MXFP4.gguf")),
+ model: ENV.fetch("GGUF_MODEL", File.expand_path("~/.elelem/models/gpt-oss-20b-MXFP4.gguf")),
n_ctx: Integer(ENV.fetch("GGUF_N_CTX", "16384")),
n_threads: Integer(ENV.fetch("GGUF_THREADS", "16")),
max_tokens: Integer(ENV.fetch("GGUF_MAX_TOKENS", "4096")),
spec/evals/cases_spec.rb
@@ -12,7 +12,7 @@ module Elelem
end
end
- def self.gguf(model: ENV.fetch("GGUF_MODEL", File.expand_path("~/models/gpt-oss-20b-MXFP4.gguf")))
+ def self.gguf(model: ENV.fetch("GGUF_MODEL", File.expand_path("~/.elelem/models/gpt-oss-20b-MXFP4.gguf")))
@gguf ||= begin
gpu = %w[vulkan cuda metal].include?(Elelem::Net::GGUF.backend)
Elelem::Net::GGUF.new(