chroma-db 0.8.0 → 0.8.2

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: 31c131ea9ab54905d2665520303a6fa9790e960cd70db7b8cfda1aac3ee09231
4
- data.tar.gz: d21d2e933fee0ad66f37f053982e3601db7b3bce1702ce6ecb8cd6e0f70d8018
3
+ metadata.gz: 8f7a0ef254b27e7e3d06c9720893c4b416f971948aeda404da63d18325309c6f
4
+ data.tar.gz: 356777eec892cd99f11635cadcd4e510e5041cc40b8b04c2a8e4ecaa1179da65
5
5
  SHA512:
6
- metadata.gz: cc54636facaf17ca619aebc999c9712f8babb112c53dca3935e3027bdb7d37e1412554fbef93357459e8da505c4f1030fbba7480474882667481c8fdb962fbc2
7
- data.tar.gz: 12b613729e1f6981f56c7d4c91324ab417a2e6a05e299bd11eeb15388f49c8f5b45ec6e5b6287522789be2ae65b9387e9357ba14bebe31ec26838d0b784f4917
6
+ metadata.gz: cbb667f3547c3a08f0a3859d3dc3fe4802bbbca46722af363cfcfad556c163c83e3606b48254fd43c8b1186ace9c63e764e32568e7e7eef4987b8e89632847f0
7
+ data.tar.gz: 1822f4ff02a4dafffbb32078ed186da5d9ccb0228725bb8fbf5b61f8d1f89fd78c0297605e49a9e050e2086ce81ac67771b0a273db25ed59970b5930729a2baa
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## 0.8.2 2024-10-16
4
+
5
+ - Fixes API change in Collection#query method. Parameters `where` and `where_document` are now optional.
6
+
7
+ ## 0.8.1 2024-10-16
8
+
9
+ - Adds support for Chroma hosted service. See README for more details how to set your `api_key`, `tenant`, and `database`.
10
+
3
11
  ## [0.6.0] 2023-06-05
4
12
 
5
13
  - Fix failure to rescue from API call exceptions.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- chroma-db (0.8.0)
4
+ chroma-db (0.8.2)
5
5
  dry-monads (~> 1.6)
6
6
  ruby-next (~> 1.0, >= 1.0.3)
7
7
  zeitwerk (~> 2.6.0)
data/README.md CHANGED
@@ -54,7 +54,7 @@ Chroma.database = "my_database" # Optional
54
54
 
55
55
  ## Requirements
56
56
 
57
- - Ruby 3.0.6 or newer
57
+ - Ruby 3.1.4 or newer
58
58
  - Chroma Database 0.4.24 or later running as a client/server model.
59
59
 
60
60
  For Chroma database 0.3.22 or older, please use version 0.3.0 of this gem.
@@ -94,9 +94,9 @@ module Chroma
94
94
 
95
95
  case response
96
96
  in Net::HTTPSuccess
97
- return Success(response_data)
97
+ Success(response_data)
98
98
  else
99
- return Failure(response_data)
99
+ Failure(response_data)
100
100
  end
101
101
  end
102
102
 
@@ -107,6 +107,8 @@ module Chroma
107
107
  end
108
108
 
109
109
  private def build_request(method, uri, params)
110
+ uri.query = URI.encode_www_form(tenant: Chroma.tenant, database: Chroma.database) unless Chroma.api_key.nil?
111
+
110
112
  request = case method
111
113
  when :post then Net::HTTP::Post.new(uri)
112
114
  when :put then Net::HTTP::Put.new(uri)
@@ -115,10 +117,11 @@ module Chroma
115
117
  Net::HTTP::Get.new(uri)
116
118
  end
117
119
 
120
+ api_key = ENV.fetch("CHROMA_SERVER_AUTHN_CREDENTIALS", Chroma.api_key)
118
121
  request.content_type = "application/json"
119
122
  request.body = params.to_json if params.size > 0
120
123
  request.basic_auth(uri.user, uri.password) if !uri.user.nil?
121
- request['X-Chroma-Token'] = ENV.fetch('CHROMA_SERVER_AUTHN_CREDENTIALS', nil) if ENV.fetch('CHROMA_SERVER_AUTHN_CREDENTIALS', nil)
124
+ request["X-Chroma-Token"] = api_key unless api_key.nil?
122
125
  request
123
126
  end
124
127
  end
data/lib/chroma/chroma.rb CHANGED
@@ -25,18 +25,7 @@ module Chroma
25
25
  end
26
26
 
27
27
  def self.api_url
28
- base_url = "#{connect_host}/#{api_base}/#{api_version}"
29
- uri = URI(base_url)
30
-
31
- unless api_key.nil?
32
- query_params = {
33
- tenant: tenant,
34
- database: database
35
- }
36
- query_params["x-chroma-token"] = api_key
37
- uri.query = URI.encode_www_form(query_params)
38
- end
39
- uri.to_s
28
+ "#{connect_host}/#{api_base}/#{api_version}"
40
29
  end
41
30
 
42
31
  Chroma.log_level = ENV["CHROMA_LOG"].to_i unless ENV["CHROMA_LOG"].nil?
@@ -34,7 +34,7 @@ module Chroma
34
34
  # embeddings = collection.query(query_embeddings: [[1.5, 2.9, 3.3]], results: 5)
35
35
  #
36
36
  # Return an Array of Embedding with query results.
37
- def query(query_embeddings:, results: 10, where: {}, where_document: {}, include: %w[metadatas documents distances])
37
+ def query(query_embeddings:, results: 10, where: nil, where_document: nil, include: %w[metadatas documents distances])
38
38
  payload = {
39
39
  query_embeddings:,
40
40
  n_results: results,
@@ -43,6 +43,8 @@ module Chroma
43
43
  include:
44
44
  }
45
45
 
46
+ payload.delete_if { |_key, value| value.nil? }
47
+
46
48
  result = self.class.execute_request(:post, "#{Chroma.api_url}/collections/#{id}/query", payload)
47
49
 
48
50
  if result.success?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Chroma
4
- VERSION = "0.8.0"
4
+ VERSION = "0.8.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chroma-db
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Alberto Chávez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-10-14 00:00:00.000000000 Z
11
+ date: 2024-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-monads
@@ -128,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
128
  - !ruby/object:Gem::Version
129
129
  version: '0'
130
130
  requirements: []
131
- rubygems_version: 3.5.21
131
+ rubygems_version: 3.5.23
132
132
  signing_key:
133
133
  specification_version: 4
134
134
  summary: Ruby client for Chroma DB.