Comparing changes
v0.2.0
→
v0.2.1
3 commits
5 files changed
Commits
Changed files (5)
lib/elelem/ollama/client.rb → lib/elelem/ollama/provider.rb
@@ -2,7 +2,7 @@
module Elelem
module Ollama
- class Client
+ class Provider
def initialize(
model:,
host: "localhost:11434",
lib/elelem/ollama/version.rb
@@ -2,6 +2,6 @@
module Elelem
module Ollama
- VERSION = "0.2.0"
+ VERSION = "0.2.1"
end
end
lib/elelem/ollama.rb
@@ -6,11 +6,11 @@ require "net/http"
require "uri"
require_relative "ollama/version"
-require_relative "ollama/client"
+require_relative "ollama/provider"
Elelem.configure do |config|
config.provider(:ollama) do
- Elelem::Ollama::Client.new(
+ Elelem::Ollama::Provider.new(
model: ENV.fetch("OLLAMA_MODEL", "gpt-oss:latest"),
host: ENV.fetch("OLLAMA_HOST", "localhost:11434"),
think: ENV["OLLAMA_THINK"],
spec/elelem/ollama/client_spec.rb → spec/elelem/ollama/provider_spec.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
-RSpec.describe Elelem::Ollama::Client do
- subject(:client) { described_class.new(model: "gpt-oss:latest", http:, **params) }
+RSpec.describe Elelem::Ollama::Provider do
+ subject(:provider) { described_class.new(model: "gpt-oss:latest", http:, **params) }
let(:params) { {} }
let(:messages) { [{ role: "user", content: "hi" }] }
@@ -30,7 +30,7 @@ RSpec.describe Elelem::Ollama::Client do
describe "#fetch" do
it "sends only model, messages and stream by default" do
- client.fetch(messages) { }
+ provider.fetch(messages) { }
expect(body).to eq(model: "gpt-oss:latest", messages:, stream: true)
end
@@ -38,7 +38,7 @@ RSpec.describe Elelem::Ollama::Client do
it "sends tools when present" do
tools = [{ type: "function", function: { name: "read" } }]
- client.fetch(messages, tools) { }
+ provider.fetch(messages, tools) { }
expect(body[:tools]).to eq(tools)
end
@@ -47,7 +47,7 @@ RSpec.describe Elelem::Ollama::Client do
let(:params) { { think: "high", keep_alive: "30m", options: { num_ctx: 32_768 } } }
it "sends them in the request body" do
- client.fetch(messages) { }
+ provider.fetch(messages) { }
expect(body).to include(think: "high", keep_alive: "30m", options: { num_ctx: 32_768 })
end
@@ -57,7 +57,7 @@ RSpec.describe Elelem::Ollama::Client do
let(:params) { { options: {} } }
it "omits options" do
- client.fetch(messages) { }
+ provider.fetch(messages) { }
expect(body).not_to have_key(:options)
end
@@ -67,7 +67,7 @@ RSpec.describe Elelem::Ollama::Client do
let(:params) { { params: { format: "json", truncate: false, top_logprobs: 3 } } }
it "merges them into the request body" do
- client.fetch(messages) { }
+ provider.fetch(messages) { }
expect(body).to include(format: "json", truncate: false, top_logprobs: 3)
end
@@ -77,7 +77,7 @@ RSpec.describe Elelem::Ollama::Client do
let(:params) { { think: "low", params: { think: "high" } } }
it "prefers the passthrough value" do
- client.fetch(messages) { }
+ provider.fetch(messages) { }
expect(body[:think]).to eq("high")
end
Gemfile.lock
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
- elelem-ollama (0.2.0)
+ elelem-ollama (0.2.1)
elelem (~> 0.11)
json (~> 3.0)
net-http (~> 0.9)
@@ -12,8 +12,9 @@ GEM
specs:
bigdecimal (4.1.2)
diff-lcs (1.6.2)
- elelem (0.13.0)
+ elelem (0.11.0)
erb (~> 6.0)
+ forwardable (~> 1.4)
io-console (~> 0.9)
json (~> 3.0)
json_schemer (~> 2.5)
@@ -25,6 +26,7 @@ GEM
shellwords (~> 0.2)
uri (~> 1.0)
erb (6.0.7)
+ forwardable (1.4.0)
hana (1.3.7)
io-console (0.9.2)
irb (1.18.0)
@@ -93,9 +95,10 @@ CHECKSUMS
bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd
bundler (4.0.20) sha256=7978a8ac648767f5e635bc522445b79e80a52b907a39a36c2d8085ed6bc762ae
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
- elelem (0.13.0)
- elelem-ollama (0.2.0)
+ elelem (0.11.0) sha256=552cafb092320e3896b8e07572d322fe2b94f0f10d965bf7b993b74517a6f744
+ elelem-ollama (0.2.1)
erb (6.0.7) sha256=c5ca6dc25b0ef974a44dc8f59fe847577122483b1968a38dec305c60bf91ee92
+ forwardable (1.4.0) sha256=f1cd40cc9812937980e1c76f1aa053660990a7c9b6a98fc37d945468afcce838
hana (1.3.7) sha256=5425db42d651fea08859811c29d20446f16af196308162894db208cac5ce9b0d
io-console (0.9.2) sha256=efa74f891dd03c0939a931dfc6e74c2813d904763d456ea9762b0525e748db08
irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3