Commit 0363582
Changed files (2)
lib
elelem
lib/elelem/llama.rb
@@ -7,29 +7,31 @@ require "elelem"
require_relative "llama/version"
require_relative "llama/client"
-Elelem::Providers.register(:llama) do
- gpu = %w[vulkan cuda metal].include?(Elelem::Llama::Client.backend)
+Elelem.configure do |config|
+ config.provider(:llama) do
+ gpu = %w[vulkan cuda metal].include?(Elelem::Llama::Client.backend)
- default_model = -> {
- dir = File.expand_path("~/.agents/models")
- link = File.join(dir, "default.gguf")
- return link if File.symlink?(link) || File.exist?(link)
+ default_model = -> {
+ dir = File.expand_path("~/.agents/models")
+ link = File.join(dir, "default.gguf")
+ return link if File.symlink?(link) || File.exist?(link)
- models = Dir[File.join(dir, "*.gguf")].sort
- case models.length
- when 1 then models.first
- when 0 then raise "no .gguf model found in #{dir}. Set ELELEM_GGUF_MODEL=/path/to/model.gguf"
- else raise "multiple .gguf models found in #{dir}. Set ELELEM_GGUF_MODEL=/path/to/model.gguf or symlink #{link} to the one to use by default"
- end
- }
+ models = Dir[File.join(dir, "*.gguf")].sort
+ case models.length
+ when 1 then models.first
+ when 0 then raise "no .gguf model found in #{dir}. Set ELELEM_GGUF_MODEL=/path/to/model.gguf"
+ else raise "multiple .gguf models found in #{dir}. Set ELELEM_GGUF_MODEL=/path/to/model.gguf or symlink #{link} to the one to use by default"
+ end
+ }
- Elelem::Llama::Client.new(
- model: ENV.fetch("ELELEM_GGUF_MODEL") { default_model.call },
- n_ctx: 0,
- n_threads: 0,
- n_gpu_layers: gpu ? 999 : 0,
- max_tokens: Integer(ENV.fetch("ELELEM_GGUF_MAX_TOKENS", "0")),
- temp: Float(ENV.fetch("ELELEM_GGUF_TEMP", "0.7")),
- seed: Integer(ENV.fetch("ELELEM_GGUF_SEED", "-1"))
- )
+ Elelem::Llama::Client.new(
+ model: ENV.fetch("ELELEM_GGUF_MODEL") { default_model.call },
+ n_ctx: 0,
+ n_threads: 0,
+ n_gpu_layers: gpu ? 999 : 0,
+ max_tokens: Integer(ENV.fetch("ELELEM_GGUF_MAX_TOKENS", "0")),
+ temp: Float(ENV.fetch("ELELEM_GGUF_TEMP", "0.7")),
+ seed: Integer(ENV.fetch("ELELEM_GGUF_SEED", "-1"))
+ )
+ end
end
elelem-llama.gemspec
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
spec.executables = ["elelem-llama"]
spec.require_paths = ["lib"]
- spec.add_dependency "elelem", "~> 0.10"
+ spec.add_dependency "elelem", "~> 0.11"
spec.add_dependency "fiddle", "~> 1.1"
spec.add_dependency "json", "~> 2.21"
end