llm_memory_pgvector 0.1.0 → 0.1.2

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: 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