llm_memory_pgvector 0.1.3 → 0.1.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: aa1b3ab9226fa280c8655446df1fd45cb6a1dfc54779d1c5f71c4f407945fdd6
4
- data.tar.gz: 8ae625dae794fbcb87bc915fbb766edbd0a09c5be0afe0c4be3e3ae76e757716
3
+ metadata.gz: 649ee254ec15284dedeb54afa917347e666472e7719060724d430d27ad2d9767
4
+ data.tar.gz: 3ed88178232fed65128929c364a3c8359a14487f0fc26f8f4535593173d6b83e
5
5
  SHA512:
6
- metadata.gz: 65069e24e02fa4dca85c4cdbe0a018337ad511a5cc35a680d9ddb31b59d8c9ee0e409de8934a7fc641a477995ba1176f94bfce8e94a55aeae201653895a8bc22
7
- data.tar.gz: bed6685f42c5129f75905a511e4ee78b0fbb546068be6f5fadb5e3ba7df2656333b50517a01c810703b4ee3971dc46475fa248d190ead3702e8ad76bdf6b21cf
6
+ metadata.gz: 6bb31d3168a85453de4920680bbcd9cf652b74058d6825a87b901aa79fa6af16f929d057e91fc2a9720019f5deae1e4b3dee6f32bf37ea6e5509b864fec70dab
7
+ data.tar.gz: 1638222ad8b71b281f68ed73d02f47896a8760ec116025738301d7981089c5fff50d4cd854c0ecfd50a51f5143b702a2dfd3c1249535ee0e91dcf1b7c7c35e3a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- llm_memory_pgvector (0.1.3)
4
+ llm_memory_pgvector (0.1.5)
5
5
  llm_memory (~> 0.1.7)
6
6
  pg (~> 1.5.3)
7
7
  pgvector (~> 0.2.0)
@@ -41,12 +41,13 @@ module LlmMemoryPgvector
41
41
  @conn.exec("DROP TABLE IF EXISTS #{@index_name}")
42
42
  end
43
43
 
44
- def list(ids = [])
45
- result = if ids.empty?
44
+ def list(*args)
45
+ id = (args.length == 1) ? args.first[:id] : []
46
+ result = if id.empty?
46
47
  @conn.exec("SELECT * FROM #{@index_name}")
47
48
  else
48
- placeholders = ids.map.with_index(1) { |_, i| "$#{i}" }.join(",")
49
- @conn.exec_params("SELECT * FROM #{@index_name} WHERE id IN (#{placeholders})", ids)
49
+ placeholders = id.map.with_index(1) { |_, i| "$#{i}" }.join(",")
50
+ @conn.exec_params("SELECT * FROM #{@index_name} WHERE id IN (#{placeholders})", id)
50
51
  end
51
52
  result.entries
52
53
  end
@@ -56,6 +57,11 @@ module LlmMemoryPgvector
56
57
  result.cmd_tuples > 0
57
58
  end
58
59
 
60
+ def get(id)
61
+ result = @conn.exec_params("SELECT * FROM #{@index_name} WHERE id = $1", [id])
62
+ result.entries.first
63
+ end
64
+
59
65
  def delete_all
60
66
  @conn.exec("DELETE FROM #{@index_name}")
61
67
  true
@@ -65,13 +71,15 @@ module LlmMemoryPgvector
65
71
 
66
72
  # data = [{ content: "", vector: [], metadata: {} },,]
67
73
  def add(data: [])
74
+ new_ids = []
68
75
  data.each do |row|
69
- @conn.exec_params(
70
- "INSERT INTO #{@index_name} (#{@content_key}, #{@metadata_key}, #{@vector_key}) VALUES ($1, $2, $3)",
76
+ result = @conn.exec_params(
77
+ "INSERT INTO #{@index_name} (#{@content_key}, #{@metadata_key}, #{@vector_key}) VALUES ($1, $2, $3) RETURNING id",
71
78
  [row[@content_key.to_sym], row[@metadata_key.to_sym].to_json, row[@vector_key.to_sym]]
72
79
  )
80
+ new_ids << result[0]["id"].to_i if result && result[0] && result[0]["id"]
73
81
  end
74
- list
82
+ list(id: new_ids)
75
83
  end
76
84
 
77
85
  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.3"
4
+ VERSION = "0.1.5"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: llm_memory_pgvector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shohei Kameda
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-31 00:00:00.000000000 Z
11
+ date: 2023-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: llm_memory