From 366082d0720e67dcd125231f3606f4e1e8673ab9 Mon Sep 17 00:00:00 2001 From: KITAITI Makoto Date: Thu, 1 May 2025 23:04:53 +0900 Subject: [PATCH] ruby : refine HTTP cache feature (#3109) * Use cache file when model host doesn't support if-modified-since * Update gem date * Revert "ruby : ignore "Downloading" output in test_log_suppress (#3106)" This reverts commit edbd4cb7f526897b48bf396e6cf3fccc3d74b378. --- bindings/ruby/lib/whisper/model/uri.rb | 2 ++ bindings/ruby/tests/test_whisper.rb | 13 +------------ bindings/ruby/whispercpp.gemspec | 2 +- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/bindings/ruby/lib/whisper/model/uri.rb b/bindings/ruby/lib/whisper/model/uri.rb index 47c23c52..06e7a263 100644 --- a/bindings/ruby/lib/whisper/model/uri.rb +++ b/bindings/ruby/lib/whisper/model/uri.rb @@ -55,6 +55,8 @@ module Whisper when Net::HTTPNotModified # noop when Net::HTTPOK + return if !response.key?("last-modified") && cache_path.exist? + download response when Net::HTTPRedirection request URI(response["location"]), headers diff --git a/bindings/ruby/tests/test_whisper.rb b/bindings/ruby/tests/test_whisper.rb index dfc4e0e0..2754ab06 100644 --- a/bindings/ruby/tests/test_whisper.rb +++ b/bindings/ruby/tests/test_whisper.rb @@ -118,18 +118,7 @@ class TestWhisper < TestBase dev = StringIO.new("") $stderr = dev Whisper::Context.new("base.en") - - # Filter out any lines starting with "Downloading" or containing only dots. - # The reason for this is that I think the recent migration to Huggingface - # Xet might have changed the downloading behavior. There is now a redirect - # to a different URL, which causes the download to be retried even if the - # file is already downloaded. - # TODO(danbev) Remove this when a proper fix is in place. - filtered_output = dev.string.lines.reject do |line| - line.start_with?("Downloading") || line.strip =~ /^\.+$/ - end.join - - assert_empty filtered_output, "Expected no output, but got: #{filtered_output.inspect}" + assert_empty dev.string ensure $stderr = stderr end diff --git a/bindings/ruby/whispercpp.gemspec b/bindings/ruby/whispercpp.gemspec index 97cf4e27..9e9c424b 100644 --- a/bindings/ruby/whispercpp.gemspec +++ b/bindings/ruby/whispercpp.gemspec @@ -4,7 +4,7 @@ Gem::Specification.new do |s| s.name = "whispercpp" s.authors = ["Georgi Gerganov", "Todd A. Fisher"] s.version = '1.3.2' - s.date = '2025-04-25' + s.date = '2025-05-01' s.description = %q{High-performance inference of OpenAI's Whisper automatic speech recognition (ASR) model via Ruby} s.email = 'todd.fisher@gmail.com' s.extra_rdoc_files = ['LICENSE', 'README.md']