Class: LLM::OpenAI::VectorStores
- Inherits:
-
Object
- Object
- LLM::OpenAI::VectorStores
- Defined in:
- lib/llm/providers/openai/vector_stores.rb
Overview
The LLM::OpenAI::VectorStore class provides an interface to OpenAI’s vector stores API
Instance Method Summary collapse
-
#all(**params) ⇒ LLM::Response
List all vector stores.
-
#create(name:, file_ids: [], **params) ⇒ LLM::Response
Create a vector store.
-
#delete(vector:) ⇒ LLM::Response
Delete a vector store.
-
#get(vector:) ⇒ LLM::Response
Get a vector store.
-
#initialize(provider) ⇒ VectorStores
constructor
A new instance of VectorStores.
-
#modify(vector:, name: nil, **params) ⇒ LLM::Response
Modify an existing vector store.
-
#search(vector:, query:, **params) ⇒ LLM::Response
Search a vector store.
Constructor Details
#initialize(provider) ⇒ VectorStores
Returns a new instance of VectorStores.
12 13 14 |
# File 'lib/llm/providers/openai/vector_stores.rb', line 12 def initialize(provider) @provider = provider end |
Instance Method Details
#all(**params) ⇒ LLM::Response
List all vector stores
20 21 22 23 24 25 |
# File 'lib/llm/providers/openai/vector_stores.rb', line 20 def all(**params) query = URI.encode_www_form(params) req = Net::HTTP::Get.new("/v1/vector_stores?#{query}", headers) res = execute(request: req) LLM::Response.new(res) end |
#create(name:, file_ids: [], **params) ⇒ LLM::Response
Create a vector store
35 36 37 38 39 40 |
# File 'lib/llm/providers/openai/vector_stores.rb', line 35 def create(name:, file_ids: [], **params) req = Net::HTTP::Post.new("/v1/vector_stores", headers) req.body = JSON.dump(params.merge({name:, file_ids:}).compact) res = execute(request: req) LLM::Response.new(res) end |
#delete(vector:) ⇒ LLM::Response
Delete a vector store
77 78 79 80 81 82 |
# File 'lib/llm/providers/openai/vector_stores.rb', line 77 def delete(vector:) vector_id = vector.respond_to?(:id) ? vector.id : vector req = Net::HTTP::Delete.new("/v1/vector_stores/#{vector_id}", headers) res = execute(request: req) LLM::Response.new(res) end |
#get(vector:) ⇒ LLM::Response
Get a vector store
48 49 50 51 52 53 |
# File 'lib/llm/providers/openai/vector_stores.rb', line 48 def get(vector:) vector_id = vector.respond_to?(:id) ? vector.id : vector req = Net::HTTP::Get.new("/v1/vector_stores/#{vector_id}", headers) res = execute(request: req) LLM::Response.new(res) end |
#modify(vector:, name: nil, **params) ⇒ LLM::Response
Modify an existing vector store
63 64 65 66 67 68 69 |
# File 'lib/llm/providers/openai/vector_stores.rb', line 63 def modify(vector:, name: nil, **params) vector_id = vector.respond_to?(:id) ? vector.id : vector req = Net::HTTP::Post.new("/v1/vector_stores/#{vector_id}", headers) req.body = JSON.dump(params.merge({name:}).compact) res = execute(request: req) LLM::Response.new(res) end |
#search(vector:, query:, **params) ⇒ LLM::Response
Search a vector store
92 93 94 95 96 97 98 |
# File 'lib/llm/providers/openai/vector_stores.rb', line 92 def search(vector:, query:, **params) vector_id = vector.respond_to?(:id) ? vector.id : vector req = Net::HTTP::Post.new("/v1/vector_stores/#{vector_id}/search", headers) req.body = JSON.dump(params.merge({query:}).compact) res = execute(request: req) LLM::Response.new(res) end |