Top Level Namespace
Defined Under Namespace
Modules: Kiribi
Constant Summary collapse
- GEM_NAME =
"kiribi-gemma4_e2b"- HF_REPO =
"matsudai17/gemma-4-E2B-it-ONNX"- HF_BASE_URL =
"https://huggingface.co/#{HF_REPO}/resolve/main/onnx"- MODEL_FILES =
%w[ embed_tokens.onnx embed_tokens.onnx_data embed_tokens.onnx_data_1 decoder_model_merged.onnx decoder_model_merged.onnx_data decoder_model_merged.onnx_data_1 decoder_model_merged.onnx_data_2 decoder_model_merged.onnx_data_3 decoder_model_merged.onnx_data_4 vision_encoder.onnx vision_encoder.onnx_data audio_encoder.onnx audio_encoder.onnx_data ]
- TOKENIZER_FILE =
"tokenizer.json"- TOKENIZER_URL =
"https://huggingface.co/#{HF_REPO}/resolve/main/#{TOKENIZER_FILE}"- BUILD_DIRPATH =
File.(File.join(__dir__, "../../lib/#{GEM_NAME}/vendor/build"))
Instance Method Summary collapse
Instance Method Details
#download_file(url, dest) ⇒ Object
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 |
# File 'ext/kiribi-gemma4_e2b/extconf.rb', line 30 def download_file(url, dest) redirect_count = 0 loop do raise "Too many redirects" if redirect_count >= 10 uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = (uri.scheme == "https") request = Net::HTTP::Get.new(uri.request_uri) http.request(request) do |resp| case resp when Net::HTTPSuccess FileUtils.mkdir_p(File.dirname(dest)) File.open(dest, "wb") do |f| resp.read_body { |chunk| f.write(chunk) } end return when Net::HTTPRedirection url = resp["Location"] redirect_count += 1 else raise "HTTP request failed for #{url} (status code: #{resp.code})" end end end end |