chromable 0.3.3 → 0.3.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 30a53a0c8bde8c1d4c091e073058d6273d57cfd191cfeff0f4f48817e2bf14d4
4
- data.tar.gz: 4374788d45a3acb8e491c452f862bb20bf5634dcfb483cf194d9c7090b349de7
3
+ metadata.gz: ed812a621b3f57a8deb5493793874dc01c217b463b68b9b2f44c4b439b0b933e
4
+ data.tar.gz: 3c70f3a0358049ff04fd62234e6fb2a3107a678673fc85de9af914e6d990a624
5
5
  SHA512:
6
- metadata.gz: 2488713488c214ab53be05616da9ca3a7ee7e3c619c4627d3b338a1454680add7284b2fef6e84007285acc0f3830d24290f09024b5189241e3657bb9086cce17
7
- data.tar.gz: bf63bb358eb179ae5ab7e02fcdeb88d1657d2d3009e28b3e3c5d7354a8bb0a7e387a09020920d8bc88cb03ad10fb18ac4d5f3ac8926a979094a0fa575340af2e
6
+ metadata.gz: 71591b825092f3f05da1687854ca62766d90b759c9e5e7ad7b1130ba78386bf65b51e18d3c7c3ba12be084710eabb39c0ce207817e4a1f03a558e39fc20a657f
7
+ data.tar.gz: dc01cf2ebc8f14c513ef45996e2f55557d196f740f2869e2cf36bd70658b0bfa58698e031c5af536a8cc3542f04e638de4673c0c5a2d7fcedf73b83a606ec85f
data/chromable.gemspec CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
33
33
  spec.require_paths = ['lib']
34
34
 
35
- spec.add_dependency 'chroma-db', '>= 0.6.0'
35
+ spec.add_dependency 'chroma-db', '>= 0.7.0'
36
36
 
37
37
  # For more information and examples about making a new gem, check out our
38
38
  # guide at: https://bundler.io/guides/creating_gem.html
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Chromable
4
- VERSION = '0.3.3'
4
+ VERSION = '0.3.5'
5
5
  end
data/lib/chromable.rb CHANGED
@@ -23,6 +23,10 @@ module Chromable
23
23
  @embedder = embedder
24
24
  @keep_document = keep_document
25
25
  end
26
+
27
+ def collection_name # rubocop:disable Lint/DuplicateMethods
28
+ @collection_name.is_a?(Proc) ? @collection_name.call : @collection_name
29
+ end
26
30
  end
27
31
 
28
32
  # Methods to be added to the model class.
@@ -38,7 +42,7 @@ module Chromable
38
42
  end
39
43
 
40
44
  def chromable(**options)
41
- options[:collection_name] ||= name.underscore.pluralize
45
+ options[:collection_name] ||= -> { name.underscore.pluralize }
42
46
 
43
47
  self.chromable_settings = Settings.new(**options)
44
48
  end
@@ -49,6 +53,8 @@ module Chromable
49
53
 
50
54
  def chroma_delete_collection
51
55
  Chroma::Resources::Collection.delete(chromable_settings.collection_name)
56
+ rescue Chroma::InvalidRequestError
57
+ Chroma::Util.log_debug("Collection #{chromable_settings.collection_name} does not exist.")
52
58
  end
53
59
 
54
60
  def chroma_query(text:, results: 10, where: {}, where_document: {}, **embedder_options)
@@ -75,7 +81,7 @@ module Chromable
75
81
  end
76
82
 
77
83
  def chroma_embedding
78
- self.class.chroma_collection.get(ids: [id])[0]
84
+ self.class.chroma_collection.get(ids: [id.to_s])[0]
79
85
  end
80
86
 
81
87
  def chroma_upsert_embedding
@@ -83,13 +89,13 @@ module Chromable
83
89
  end
84
90
 
85
91
  def chroma_destroy_embedding
86
- self.class.chroma_collection.delete(ids: [id])
92
+ self.class.chroma_collection.delete(ids: [id.to_s])
87
93
  end
88
94
 
89
95
  def chroma_neighbors(results: 10, where: {}, where_document: {})
90
96
  collection = self.class.chroma_collection
91
97
 
92
- embedding = collection.get(ids: [id], include: [:embeddings])[0].embedding
98
+ embedding = collection.get(ids: [id.to_s], include: [:embeddings])[0].embedding
93
99
 
94
100
  self.class.find(collection.query(
95
101
  query_embeddings: [embedding],
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chromable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ali Hamdi Ali Fadel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-18 00:00:00.000000000 Z
11
+ date: 2025-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chroma-db
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.6.0
19
+ version: 0.7.0
20
20
  type: :runtime
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: 0.6.0
26
+ version: 0.7.0
27
27
  description:
28
28
  email:
29
29
  - aliosm1997@gmail.com