ollama-ruby 0.3.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,63 +1,63 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe Ollama::Documents::MemoryCache do
4
- let :memory_cache do
4
+ let :cache do
5
5
  described_class.new prefix: 'test-'
6
6
  end
7
7
 
8
8
  it 'can be instantiated' do
9
- expect(memory_cache).to be_a described_class
9
+ expect(cache).to be_a described_class
10
10
  end
11
11
 
12
12
  it 'can get/set a key' do
13
13
  key, value = 'foo', { test: true }
14
14
  expect {
15
- memory_cache[key] = value
15
+ cache[key] = value
16
16
  }.to change {
17
- memory_cache[key]
17
+ cache[key]
18
18
  }.from(nil).to(value)
19
19
  end
20
20
 
21
21
  it 'can determine if key exists' do
22
22
  key, value = 'foo', { test: true }
23
23
  expect {
24
- memory_cache[key] = value
24
+ cache[key] = value
25
25
  }.to change {
26
- memory_cache.key?(key)
26
+ cache.key?(key)
27
27
  }.from(false).to(true)
28
28
  end
29
29
 
30
30
  it 'can delete' do
31
31
  key, value = 'foo', { test: true }
32
- memory_cache[key] = value
32
+ cache[key] = value
33
33
  expect {
34
- memory_cache.delete(key)
34
+ cache.delete(key)
35
35
  }.to change {
36
- memory_cache.key?(key)
36
+ cache.key?(key)
37
37
  }.from(true).to(false)
38
38
  end
39
39
 
40
40
  it 'returns size' do
41
41
  key, value = 'foo', { test: true }
42
42
  expect {
43
- memory_cache[key] = value
43
+ cache[key] = value
44
44
  }.to change {
45
- memory_cache.size
45
+ cache.size
46
46
  }.from(0).to(1)
47
47
  end
48
48
 
49
49
  it 'can clear' do
50
50
  key, value = 'foo', { test: true }
51
- memory_cache[key] = value
51
+ cache[key] = value
52
52
  expect {
53
- expect(memory_cache.clear).to eq memory_cache
53
+ expect(cache.clear).to eq cache
54
54
  }.to change {
55
- memory_cache.size
55
+ cache.size
56
56
  }.from(1).to(0)
57
57
  end
58
58
 
59
59
  it 'can iterate over keys under a prefix' do
60
- memory_cache['foo'] = 'bar'
61
- expect(memory_cache.to_a).to eq [ %w[ test-foo bar ] ]
60
+ cache['foo'] = 'bar'
61
+ expect(cache.to_a).to eq [ %w[ test-foo bar ] ]
62
62
  end
63
63
  end
@@ -0,0 +1,106 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Ollama::Documents::RedisBackedMemoryCache do
4
+ it 'raises ArgumentError if url is missing' do
5
+ expect {
6
+ described_class.new prefix: 'test-', url: nil
7
+ }.to raise_error ArgumentError
8
+ end
9
+
10
+ context 'test redis interactions' do
11
+ let :cache do
12
+ described_class.new prefix: 'test-', url: 'something'
13
+ end
14
+
15
+ let :data do
16
+ cache.instance_eval { @data }
17
+ end
18
+
19
+ let :redis_cache do
20
+ cache.instance_eval { @redis_cache }
21
+ end
22
+
23
+ let :redis do
24
+ double('Redis')
25
+ end
26
+
27
+ before do
28
+ allow_any_instance_of(Ollama::Documents::RedisCache).to\
29
+ receive(:redis).and_return(redis)
30
+ allow(redis).to receive(:scan_each)
31
+ end
32
+
33
+ it 'can be instantiated and initialized' do
34
+ cache = described_class.new prefix: 'test-', url: 'something'
35
+ expect(cache).to be_a described_class
36
+ end
37
+
38
+ it 'defaults to nil object_class' do
39
+ cache = described_class.new prefix: 'test-', url: 'something'
40
+ expect(cache.object_class).to be_nil
41
+ end
42
+
43
+ it 'can be configured with object_class' do
44
+ object_class = Class.new(JSON::GenericObject)
45
+ cache = described_class.new(prefix: 'test-', url: 'something', object_class:)
46
+ expect(cache.object_class).to eq object_class
47
+ end
48
+
49
+ it 'has Redis client' do
50
+ expect(cache.redis).to eq redis
51
+ end
52
+
53
+ it 'can get a key' do
54
+ key = 'foo'
55
+ expect(data).to receive(:[]).with('test-' + key).and_return 666
56
+ expect(cache[key]).to eq 666
57
+ end
58
+
59
+ it 'can set a value for a key' do
60
+ key, value = 'foo', { test: true }
61
+ expect(data).to receive(:[]=).with('test-' + key, { test: true }).and_call_original
62
+ expect(redis).to receive(:set).with('test-' + key, JSON(value))
63
+ cache[key] = value
64
+ end
65
+
66
+ it 'can determine if key exists' do
67
+ key = 'foo'
68
+ expect(data).to receive(:key?).with('test-' + key).and_return(false, true)
69
+ expect(cache.key?('foo')).to eq false
70
+ expect(cache.key?('foo')).to eq true
71
+ end
72
+
73
+ it 'can delete' do
74
+ key = 'foo'
75
+ expect(data).to receive(:delete).with('test-' + key)
76
+ expect(redis).to receive(:del).with('test-' + key)
77
+ cache.delete(key)
78
+ end
79
+
80
+ it 'returns size' do
81
+ allow(cache).to receive(:count).and_return 3
82
+ expect(cache.size).to eq 3
83
+ end
84
+
85
+ it 'can clear' do
86
+ expect(redis).to receive(:scan_each).with(match: 'test-*').and_yield(
87
+ 'test-foo'
88
+ )
89
+ expect(redis).to receive(:del).with('test-foo')
90
+ expect(cache.clear).to eq cache
91
+ end
92
+
93
+ it 'can iterate over keys under a prefix' do
94
+ data['test-foo'] = 'bar'
95
+ expect(cache.to_a).to eq [ %w[ test-foo bar ] ]
96
+ end
97
+
98
+ it 'can compute prefix with pre' do
99
+ expect(cache.pre('foo')).to eq 'test-foo'
100
+ end
101
+
102
+ it 'can remove prefix with unpre' do
103
+ expect(cache.unpre('test-foo')).to eq 'foo'
104
+ end
105
+ end
106
+ end
@@ -2,8 +2,19 @@ require 'spec_helper'
2
2
 
3
3
  RSpec.describe Ollama::Documents::RedisCache do
4
4
  it 'can be instantiated' do
5
- redis_cache = described_class.new prefix: 'test-', url: 'something'
6
- expect(redis_cache).to be_a described_class
5
+ cache = described_class.new prefix: 'test-', url: 'something'
6
+ expect(cache).to be_a described_class
7
+ end
8
+
9
+ it 'defaults to nil object_class' do
10
+ cache = described_class.new prefix: 'test-', url: 'something'
11
+ expect(cache.object_class).to be_nil
12
+ end
13
+
14
+ it 'can be configured with object_class' do
15
+ object_class = Class.new(JSON::GenericObject)
16
+ cache = described_class.new(prefix: 'test-', url: 'something', object_class:)
17
+ expect(cache.object_class).to eq object_class
7
18
  end
8
19
 
9
20
  it 'raises ArgumentError if url is missing' do
@@ -13,7 +24,7 @@ RSpec.describe Ollama::Documents::RedisCache do
13
24
  end
14
25
 
15
26
  context 'test redis interactions' do
16
- let :redis_cache do
27
+ let :cache do
17
28
  described_class.new prefix: 'test-', url: 'something'
18
29
  end
19
30
 
@@ -26,32 +37,41 @@ RSpec.describe Ollama::Documents::RedisCache do
26
37
  end
27
38
 
28
39
  it 'has Redis client' do
29
- expect(redis_cache.redis).to eq redis
40
+ expect(cache.redis).to eq redis
30
41
  end
31
42
 
32
43
  it 'can get a key' do
33
44
  key = 'foo'
34
- expect(redis).to receive(:get).with('test-' + key).and_return 666
35
- redis_cache[key]
45
+ expect(redis).to receive(:get).with('test-' + key).and_return '"some_json"'
46
+ expect(cache[key]).to eq 'some_json'
36
47
  end
37
48
 
38
49
  it 'can set a value for a key' do
39
50
  key, value = 'foo', { test: true }
40
- expect(redis).to receive(:set).with('test-' + key, JSON(value))
41
- redis_cache[key] = value
51
+ expect(redis).to receive(:set).with('test-' + key, JSON(value), ex: nil)
52
+ cache[key] = value
53
+ end
54
+
55
+ it 'can set a value for a key with ttl' do
56
+ cache = described_class.new prefix: 'test-', url: 'something', ex: 3_600
57
+ key, value = 'foo', { test: true }
58
+ expect(redis).to receive(:set).with('test-' + key, JSON(value), ex: 3_600)
59
+ cache[key] = value
60
+ allow(redis).to receive(:ttl).with('test-' + key).and_return 3_600
61
+ expect(cache.ttl(key)).to eq 3_600
42
62
  end
43
63
 
44
64
  it 'can determine if key exists' do
45
65
  key = 'foo'
46
66
  expect(redis).to receive(:exists?).with('test-' + key).and_return(false, true)
47
- expect(redis_cache.key?('foo')).to eq false
48
- expect(redis_cache.key?('foo')).to eq true
67
+ expect(cache.key?('foo')).to eq false
68
+ expect(cache.key?('foo')).to eq true
49
69
  end
50
70
 
51
71
  it 'can delete' do
52
72
  key = 'foo'
53
73
  expect(redis).to receive(:del).with('test-' + key)
54
- redis_cache.delete(key)
74
+ cache.delete(key)
55
75
  end
56
76
 
57
77
  it 'returns size' do
@@ -59,7 +79,7 @@ RSpec.describe Ollama::Documents::RedisCache do
59
79
  and_yield('test-foo').
60
80
  and_yield('test-bar').
61
81
  and_yield('test-baz')
62
- expect(redis_cache.size).to eq 3
82
+ expect(cache.size).to eq 3
63
83
  end
64
84
 
65
85
  it 'can clear' do
@@ -67,20 +87,20 @@ RSpec.describe Ollama::Documents::RedisCache do
67
87
  'test-foo'
68
88
  )
69
89
  expect(redis).to receive(:del).with('test-foo')
70
- expect(redis_cache.clear).to eq redis_cache
90
+ expect(cache.clear).to eq cache
71
91
  end
72
92
 
73
93
  it 'can iterate over keys under a prefix' do
74
94
  expect(redis).to receive(:scan_each).with(match: 'test-*')
75
- redis_cache.to_a
95
+ cache.to_a
76
96
  end
77
97
 
78
98
  it 'can compute prefix with pre' do
79
- expect(redis_cache.pre('foo')).to eq 'test-foo'
99
+ expect(cache.pre('foo')).to eq 'test-foo'
80
100
  end
81
101
 
82
102
  it 'can remove prefix with unpre' do
83
- expect(redis_cache.unpre('test-foo')).to eq 'foo'
103
+ expect(cache.unpre('test-foo')).to eq 'foo'
84
104
  end
85
105
  end
86
106
  end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  RSpec.describe Ollama::Documents::Splitters::Character do
4
4
  let :splitter do
5
- described_class.new chunk_size: 23
5
+ described_class.new chunk_size: 23, combining_string: ''
6
6
  end
7
7
 
8
8
  it 'can be instantiated' do
@@ -10,29 +10,41 @@ RSpec.describe Ollama::Documents::Splitters::Character do
10
10
  end
11
11
 
12
12
  it 'can split' do
13
- text = [ "A" * 10 ] * 10 * "\n\n"
13
+ text = [ ?A * 10 ] * 10 * "\n\n"
14
14
  result = splitter.split(text)
15
15
  expect(result.count).to eq 5
16
16
  expect(result.to_a.join('')).to eq ?A * 100
17
17
  end
18
18
 
19
+ it 'can split combining with separation' do
20
+ splitter = described_class.new chunk_size: 25, include_separator: false,
21
+ combining_string: ?X
22
+ text = [ ?A * 10 ] * 10 * "\n\n"
23
+ result = splitter.split(text)
24
+ expect(result.count).to eq 5
25
+ expect(result.to_a.join(?B)).to eq\
26
+ "AAAAAAAAAAXAAAAAAAAAAXBAAAAAAAAAAAAAAAAAAAAXBAAAAAAAAAAAAAAAAAAAAXB"\
27
+ "AAAAAAAAAAAAAAAAAAAAXBAAAAAAAAAAAAAAAAAAAAX"
28
+ end
29
+
19
30
  it 'can split including separator' do
20
- splitter = described_class.new chunk_size: 25, include_separator: true
21
- text = [ "A" * 10 ] * 10 * "\n\n"
31
+ splitter = described_class.new chunk_size: 25, include_separator: true,
32
+ combining_string: ''
33
+ text = [ ?A * 10 ] * 10 * "\n\n"
22
34
  result = splitter.split(text)
23
35
  expect(result.count).to eq 5
24
36
  expect(result.to_a.join('')).to eq text
25
37
  end
26
38
 
27
39
  it 'cannot split' do
28
- text = [ "A" * 10 ] * 10 * "\n"
40
+ text = [ ?A * 10 ] * 10 * "\n"
29
41
  result = splitter.split(text)
30
42
  expect(result.count).to eq 1
31
43
  expect(result.to_a.join('').count(?A)).to eq text.count(?A)
32
44
  end
33
45
 
34
46
  it 'cannot split2' do
35
- text = "A" * 25
47
+ text = ?A * 25
36
48
  result = splitter.split(text)
37
49
  expect(result.count).to eq 1
38
50
  expect(result.to_a.join('')).to eq ?A * 25
@@ -48,7 +60,7 @@ end
48
60
 
49
61
  RSpec.describe Ollama::Documents::Splitters::RecursiveCharacter do
50
62
  let :splitter do
51
- described_class.new chunk_size: 23
63
+ described_class.new chunk_size: 23, combining_string: ''
52
64
  end
53
65
 
54
66
  it 'can be instantiated' do
@@ -56,7 +68,7 @@ RSpec.describe Ollama::Documents::Splitters::RecursiveCharacter do
56
68
  end
57
69
 
58
70
  it 'can split' do
59
- text = [ "A" * 10 ] * 10 * "\n\n"
71
+ text = [ ?A * 10 ] * 10 * "\n\n"
60
72
  result = splitter.split(text)
61
73
  expect(result.count).to eq 5
62
74
  expect(result.to_a.join('')).to eq ?A * 100
@@ -65,30 +77,32 @@ RSpec.describe Ollama::Documents::Splitters::RecursiveCharacter do
65
77
  it 'cannot split' do
66
78
  splitter = described_class.new chunk_size: 23, include_separator: true,
67
79
  separators: described_class::DEFAULT_SEPARATORS[0..-2]
68
- text = "A" * 25
80
+ text = ?A * 25
69
81
  result = splitter.split(text)
70
82
  expect(result.count).to eq 1
71
83
  expect(result.to_a.join('')).to eq ?A * 25
72
84
  end
73
85
 
74
86
  it 'can split including separator' do
75
- splitter = described_class.new chunk_size: 25, include_separator: true
76
- text = [ "A" * 10 ] * 10 * "\n\n"
87
+ splitter = described_class.new chunk_size: 25, include_separator: true,
88
+ combining_string: ''
89
+ text = [ ?A * 10 ] * 10 * "\n\n"
77
90
  result = splitter.split(text)
78
91
  expect(result.count).to eq 5
79
92
  expect(result.to_a.join('')).to eq text
80
93
  end
81
94
 
82
95
  it 'can split single newline as well' do
83
- text = [ "A" * 10 ] * 10 * "\n"
96
+ text = [ ?A * 10 ] * 10 * "\n"
84
97
  result = splitter.split(text)
85
98
  expect(result.count).to eq 5
86
99
  expect(result.to_a.join('')).to eq ?A * 100
87
100
  end
88
101
 
89
102
  it 'can split single newline as well including separator' do
90
- splitter = described_class.new chunk_size: 25, include_separator: true
91
- text = [ "A" * 10 ] * 10 * "\n"
103
+ splitter = described_class.new chunk_size: 25, include_separator: true,
104
+ combining_string: ''
105
+ text = [ ?A * 10 ] * 10 * "\n"
92
106
  result = splitter.split(text)
93
107
  expect(result.count).to eq 5
94
108
  expect(result.to_a.join('')).to eq text
@@ -33,6 +33,28 @@ RSpec.describe Ollama::Utils::Fetcher do
33
33
  end
34
34
  end
35
35
 
36
+ it 'can #get without ssl peer verification' do
37
+ fetcher = described_class.new(
38
+ http_options: { ssl_verify_peer: false }
39
+ )
40
+ stub_request(:get, 'https://www.example.com/hello').
41
+ with(headers: fetcher.headers).
42
+ to_return(
43
+ status: 200,
44
+ body: 'world',
45
+ headers: { 'Content-Type' => 'text/plain' },
46
+ )
47
+ expect(Excon).to receive(:new).with(
48
+ 'https://www.example.com/hello',
49
+ hash_including(ssl_verify_peer: false)
50
+ ).and_call_original
51
+ fetcher.get(url) do |tmp|
52
+ expect(tmp).to be_a Tempfile
53
+ expect(tmp.read).to eq 'world'
54
+ expect(tmp.content_type).to eq 'text/plain'
55
+ end
56
+ end
57
+
36
58
  it 'can #get and fallback from streaming' do
37
59
  stub_request(:get, 'https://www.example.com/hello').
38
60
  with(headers: fetcher.headers).
@@ -56,7 +78,9 @@ RSpec.describe Ollama::Utils::Fetcher do
56
78
  with(headers: fetcher.headers).
57
79
  to_return(status: 500)
58
80
  fetcher.get(url) do |tmp|
59
- expect(tmp).to be_nil
81
+ expect(tmp).to be_a StringIO
82
+ expect(tmp.read).to eq ''
83
+ expect(tmp.content_type).to eq 'text/plain'
60
84
  end
61
85
  end
62
86
 
@@ -71,4 +95,21 @@ RSpec.describe Ollama::Utils::Fetcher do
71
95
  expect(file.content_type).to eq 'application/x-ruby'
72
96
  end
73
97
  end
98
+
99
+ it 'can .execute' do
100
+ described_class.execute('echo -n hello world') do |file|
101
+ expect(file).to be_a Tempfile
102
+ expect(file.read).to eq 'hello world'
103
+ expect(file.content_type).to eq 'text/plain'
104
+ end
105
+ end
106
+
107
+ it 'can .execute and fail' do
108
+ allow(IO).to receive(:popen).and_raise StandardError
109
+ described_class.execute('foobar') do |file|
110
+ expect(file).to be_a StringIO
111
+ expect(file.read).to be_empty
112
+ expect(file.content_type).to eq 'text/plain'
113
+ end
114
+ end
74
115
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ollama-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-15 00:00:00.000000000 Z
11
+ date: 2024-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.17.1
19
+ version: 1.18.0
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.17.1
26
+ version: 1.18.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: all_images
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +66,34 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: debug
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: excon
71
99
  requirement: !ruby/object:Gem::Requirement
@@ -276,6 +304,34 @@ dependencies:
276
304
  - - "~>"
277
305
  - !ruby/object:Gem::Version
278
306
  version: '2.0'
307
+ - !ruby/object:Gem::Dependency
308
+ name: logger
309
+ requirement: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - "~>"
312
+ - !ruby/object:Gem::Version
313
+ version: '1.0'
314
+ type: :runtime
315
+ prerelease: false
316
+ version_requirements: !ruby/object:Gem::Requirement
317
+ requirements:
318
+ - - "~>"
319
+ - !ruby/object:Gem::Version
320
+ version: '1.0'
321
+ - !ruby/object:Gem::Dependency
322
+ name: json
323
+ requirement: !ruby/object:Gem::Requirement
324
+ requirements:
325
+ - - "~>"
326
+ - !ruby/object:Gem::Version
327
+ version: '2.0'
328
+ type: :runtime
329
+ prerelease: false
330
+ version_requirements: !ruby/object:Gem::Requirement
331
+ requirements:
332
+ - - "~>"
333
+ - !ruby/object:Gem::Version
334
+ version: '2.0'
279
335
  description: Library that allows interacting with the Ollama API
280
336
  email: flori@ping.de
281
337
  executables:
@@ -303,8 +359,10 @@ extra_rdoc_files:
303
359
  - lib/ollama/commands/show.rb
304
360
  - lib/ollama/commands/tags.rb
305
361
  - lib/ollama/documents.rb
306
- - lib/ollama/documents/memory_cache.rb
307
- - lib/ollama/documents/redis_cache.rb
362
+ - lib/ollama/documents/cache/common.rb
363
+ - lib/ollama/documents/cache/memory_cache.rb
364
+ - lib/ollama/documents/cache/redis_backed_memory_cache.rb
365
+ - lib/ollama/documents/cache/redis_cache.rb
308
366
  - lib/ollama/documents/splitters/character.rb
309
367
  - lib/ollama/documents/splitters/semantic.rb
310
368
  - lib/ollama/dto.rb
@@ -367,8 +425,10 @@ files:
367
425
  - lib/ollama/commands/show.rb
368
426
  - lib/ollama/commands/tags.rb
369
427
  - lib/ollama/documents.rb
370
- - lib/ollama/documents/memory_cache.rb
371
- - lib/ollama/documents/redis_cache.rb
428
+ - lib/ollama/documents/cache/common.rb
429
+ - lib/ollama/documents/cache/memory_cache.rb
430
+ - lib/ollama/documents/cache/redis_backed_memory_cache.rb
431
+ - lib/ollama/documents/cache/redis_cache.rb
372
432
  - lib/ollama/documents/splitters/character.rb
373
433
  - lib/ollama/documents/splitters/semantic.rb
374
434
  - lib/ollama/dto.rb
@@ -420,6 +480,7 @@ files:
420
480
  - spec/ollama/commands/show_spec.rb
421
481
  - spec/ollama/commands/tags_spec.rb
422
482
  - spec/ollama/documents/memory_cache_spec.rb
483
+ - spec/ollama/documents/redis_backed_memory_cache_spec.rb
423
484
  - spec/ollama/documents/redis_cache_spec.rb
424
485
  - spec/ollama/documents/splitters/character_spec.rb
425
486
  - spec/ollama/documents/splitters/semantic_spec.rb
@@ -486,6 +547,7 @@ test_files:
486
547
  - spec/ollama/commands/show_spec.rb
487
548
  - spec/ollama/commands/tags_spec.rb
488
549
  - spec/ollama/documents/memory_cache_spec.rb
550
+ - spec/ollama/documents/redis_backed_memory_cache_spec.rb
489
551
  - spec/ollama/documents/redis_cache_spec.rb
490
552
  - spec/ollama/documents/splitters/character_spec.rb
491
553
  - spec/ollama/documents/splitters/semantic_spec.rb