Module: Kiribi
- Defined in:
- lib/kiribi.rb,
lib/kiribi/version.rb,
lib/kiribi/gemma4_e2b.rb,
lib/kiribi/ruri_v3_small.rb,
lib/kiribi/gemma4_e2b/text.rb,
lib/kiribi/multilingual_e5_small.rb,
lib/kiribi/gemma4_e2b/audio_encoder.rb,
lib/kiribi/gemma4_e2b/vision_encoder.rb
Defined Under Namespace
Modules: Gemma4E2B
Classes: DownloadFailed, Error, ModelNotDownloaded, MultilingualE5Small, RuriV3Small, UnknownModel
Constant Summary
collapse
- MODELS =
%w[
ruri-v3-30m
multilingual-e5-small
gemma4-e2b/text
gemma4-e2b/vision
gemma4-e2b/audio
].freeze
- VERSION =
"0.1.1"
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.cache_dir ⇒ Object
29
30
31
32
33
|
# File 'lib/kiribi.rb', line 29
def cache_dir
@cache_dir ||
ENV["KIRIBI_CACHE_DIR"] ||
File.join(ENV["XDG_CACHE_HOME"] || File.join(Dir.home, ".cache"), "kiribi")
end
|
Class Method Details
.download(name, force: false) ⇒ Object
35
36
37
38
|
# File 'lib/kiribi.rb', line 35
def download(name, force: false)
lookup(name).download(File.join(cache_dir, name), force: force)
true
end
|
.http_get(url, &block) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/kiribi.rb', line 44
def http_get(url, &block)
redirect_count = 0
loop do
raise DownloadFailed, "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")
http.request(Net::HTTP::Get.new(uri.request_uri)) do |resp|
case resp
when Net::HTTPSuccess
resp.read_body(&block)
return
when Net::HTTPRedirection
url = resp["Location"]
redirect_count += 1
else
raise DownloadFailed, "HTTP #{resp.code} for #{url}"
end
end
end
end
|
.load(name) ⇒ Object
40
41
42
|
# File 'lib/kiribi.rb', line 40
def load(name)
lookup(name).new(File.join(cache_dir, name))
end
|