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 +4 -4
- data/chromable.gemspec +1 -1
- data/lib/chromable/version.rb +1 -1
- data/lib/chromable.rb +10 -4
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed812a621b3f57a8deb5493793874dc01c217b463b68b9b2f44c4b439b0b933e
|
4
|
+
data.tar.gz: 3c70f3a0358049ff04fd62234e6fb2a3107a678673fc85de9af914e6d990a624
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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
|
data/lib/chromable/version.rb
CHANGED
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.
|
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:
|
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.
|
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.
|
26
|
+
version: 0.7.0
|
27
27
|
description:
|
28
28
|
email:
|
29
29
|
- aliosm1997@gmail.com
|