chromable 0.3.3 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
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