llm_memory_pgvector 0.1.0 → 0.1.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: 2f5ddd879e687f5fbdf0639bcffb131246d0cb621903433ac07ecadfdcfc894c
4
- data.tar.gz: a4cb48e9c9920fa999c1195485d1835f88298870c1eb361caecd1fe827c0e0c9
3
+ metadata.gz: 02a8d906cb751a0dffa89839cc7f293c970c618285c917ca5521ed9091f4cad0
4
+ data.tar.gz: 7eeced97f49923746900caf68269041f93621f588cf743195aa4acdcdb725d8f
5
5
  SHA512:
6
- metadata.gz: 0e995c5601a65c2b689301d9722b1137feddcfa7323483e2cd341c840ad3ec2c456ddd27564a34c322ec46cc2e10cc78b72ce792f79afc9d7a893fcbc86d2835
7
- data.tar.gz: e2703030b153cbced9406ae08831dd2e4064cb421da3f4f90028ccbe558a1686036ee818afd449c1f593fe67d2aadba23d29166fcccc6385bdcb23529429e52f
6
+ metadata.gz: c92ec2de76562dca9b5b3a8d0c0414858d58a73fc1cf43a575e96dd446016eb780f42ef4ae04354eec3bb63e615bef7f2efb4b6aae3a4faffc507e0a78efa781
7
+ data.tar.gz: 8989283b6f74ffb336b479114aa3b5a43790442924f51582c5ab3e6402e7460fe3cabd466591877dfc6c9aaf0f95037a926c24fa8b506aa5ecfd2ce9b2ae3a35
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- llm_memory_pgvector (0.1.0)
4
+ llm_memory_pgvector (0.1.1)
5
5
  llm_memory (~> 0.1.7)
6
+ pg (~> 1.5.3)
6
7
  pgvector (~> 0.2.0)
7
8
 
8
9
  GEM
@@ -30,20 +30,25 @@ module LlmMemoryPgvector
30
30
  @conn.exec("CREATE TABLE #{@index_name} (id bigserial PRIMARY KEY, #{@content_key} TEXT, #{@metadata_key} JSON, #{@vector_key} vector(#{dim}))")
31
31
  end
32
32
 
33
+ def index_exists?
34
+ @conn.exec("SELECT 1 FROM #{@index_name}")
35
+ true
36
+ rescue PG::Error
37
+ false
38
+ end
39
+
33
40
  def drop_index
34
41
  @conn.exec("DROP TABLE IF EXISTS #{@index_name}")
35
42
  end
36
43
 
37
44
  # data = [{ content: "", vector: [], metadata: {} },,]
38
45
  def add(data: [])
39
- values = data.map { |row|
40
- "('#{row[@content_key.to_sym]}', '#{row[@metadata_key.to_sym].to_json}', '#{row[@vector_key.to_sym]}')"
41
- }.join(",")
42
- sql = <<~SQL
43
- INSERT INTO #{@index_name} (#{@content_key}, #{@metadata_key}, #{@vector_key})
44
- VALUES #{values}
45
- SQL
46
- @conn.exec(sql)
46
+ data.each do |row|
47
+ @conn.exec_params(
48
+ "INSERT INTO #{@index_name} (#{@content_key}, #{@metadata_key}, #{@vector_key}) VALUES ($1, $2, $3)",
49
+ [row[@content_key.to_sym], row[@metadata_key.to_sym].to_json, row[@vector_key.to_sym]]
50
+ )
51
+ end
47
52
  end
48
53
 
49
54
  def search(query: [], k: 3)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LlmMemoryPgvector
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.2"
5
5
  end
@@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
31
31
 
32
32
  # Uncomment to register a new dependency of your gem
33
33
  spec.add_dependency "llm_memory", "~> 0.1.7"
34
+ spec.add_dependency "pg", "~> 1.5.3"
34
35
  spec.add_dependency "pgvector", "~> 0.2.0"
35
36
 
36
37
  # For more information and examples about making a new gem, check out our
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: llm_memory_pgvector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shohei Kameda
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.1.7
27
+ - !ruby/object:Gem::Dependency
28
+ name: pg
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.5.3
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.5.3
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: pgvector
29
43
  requirement: !ruby/object:Gem::Requirement