langchainrb 0.6.12 → 0.6.13
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +4 -4
- data/lib/langchain/llm/cohere.rb +1 -1
- data/lib/langchain/llm/google_palm.rb +1 -1
- data/lib/langchain/loader.rb +3 -2
- data/lib/langchain/vectorsearch/chroma.rb +3 -2
- data/lib/langchain/vectorsearch/milvus.rb +4 -3
- data/lib/langchain/vectorsearch/pgvector.rb +3 -2
- data/lib/langchain/vectorsearch/pinecone.rb +18 -2
- data/lib/langchain/vectorsearch/qdrant.rb +4 -3
- data/lib/langchain/vectorsearch/weaviate.rb +3 -2
- data/lib/langchain/version.rb +1 -1
- metadata +14 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9a8dc8c16a235328e6122725804fc8dface37910d2014ecf44410631d3ec63cb
|
|
4
|
+
data.tar.gz: 5d69e6b1dda419d2834f9041a18eae48b2c63303cc901515cd883153635f0742
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0c176e717986c0bb0b74761858bf0a6aac8e84fff179791fd67b68441760d5a419ae767bb678bab8a783bfaf6a17f53b7177b24d96fd8f1b076fd4f091c5443e
|
|
7
|
+
data.tar.gz: a0457aaf411f8932ada4bb3683fef81396334186047a5bb26040c0c03634443662806ad3d2d37ec81f4121f519e387f77688e395cc38882b7f8ab85c0795fba6
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
|
@@ -61,10 +61,10 @@ client = Langchain::Vectorsearch::Weaviate.new(
|
|
|
61
61
|
# You can instantiate any other supported vector search database:
|
|
62
62
|
client = Langchain::Vectorsearch::Chroma.new(...) # `gem "chroma-db", "~> 0.3.0"`
|
|
63
63
|
client = Langchain::Vectorsearch::Hnswlib.new(...) # `gem "hnswlib", "~> 0.8.1"`
|
|
64
|
-
client = Langchain::Vectorsearch::Milvus.new(...) # `gem "milvus", "~> 0.9.
|
|
64
|
+
client = Langchain::Vectorsearch::Milvus.new(...) # `gem "milvus", "~> 0.9.2"`
|
|
65
65
|
client = Langchain::Vectorsearch::Pinecone.new(...) # `gem "pinecone", "~> 0.1.6"`
|
|
66
66
|
client = Langchain::Vectorsearch::Pgvector.new(...) # `gem "pgvector", "~> 0.2"`
|
|
67
|
-
client = Langchain::Vectorsearch::Qdrant.new(...) # `gem"qdrant-ruby", "~> 0.9.
|
|
67
|
+
client = Langchain::Vectorsearch::Qdrant.new(...) # `gem"qdrant-ruby", "~> 0.9.3"`
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
```ruby
|
|
@@ -164,7 +164,7 @@ client.llm.functions = functions
|
|
|
164
164
|
```
|
|
165
165
|
|
|
166
166
|
#### Cohere
|
|
167
|
-
Add `gem "cohere-ruby", "~> 0.9.
|
|
167
|
+
Add `gem "cohere-ruby", "~> 0.9.6"` to your Gemfile.
|
|
168
168
|
|
|
169
169
|
```ruby
|
|
170
170
|
cohere = Langchain::LLM::Cohere.new(api_key: ENV["COHERE_API_KEY"])
|
|
@@ -189,7 +189,7 @@ replicate = Langchain::LLM::Replicate.new(api_key: ENV["REPLICATE_API_KEY"])
|
|
|
189
189
|
```
|
|
190
190
|
|
|
191
191
|
#### Google PaLM (Pathways Language Model)
|
|
192
|
-
Add `"google_palm_api", "~> 0.1.
|
|
192
|
+
Add `"google_palm_api", "~> 0.1.3"` to your Gemfile.
|
|
193
193
|
```ruby
|
|
194
194
|
google_palm = Langchain::LLM::GooglePalm.new(api_key: ENV["GOOGLE_PALM_API_KEY"])
|
|
195
195
|
```
|
data/lib/langchain/llm/cohere.rb
CHANGED
|
@@ -5,7 +5,7 @@ module Langchain::LLM
|
|
|
5
5
|
# Wrapper around the Google PaLM (Pathways Language Model) APIs: https://ai.google/build/machine-learning/
|
|
6
6
|
#
|
|
7
7
|
# Gem requirements:
|
|
8
|
-
# gem "google_palm_api", "~> 0.1.
|
|
8
|
+
# gem "google_palm_api", "~> 0.1.3"
|
|
9
9
|
#
|
|
10
10
|
# Usage:
|
|
11
11
|
# google_palm = Langchain::LLM::GooglePalm.new(api_key: "YOUR_API_KEY")
|
data/lib/langchain/loader.rb
CHANGED
|
@@ -98,8 +98,8 @@ module Langchain
|
|
|
98
98
|
Dir.glob(File.join(@path, "**/*")).map do |file|
|
|
99
99
|
# Only load and add to result files with supported extensions
|
|
100
100
|
Langchain::Loader.new(file, @options).load(&block)
|
|
101
|
-
rescue
|
|
102
|
-
UnknownFormatError
|
|
101
|
+
rescue => e
|
|
102
|
+
UnknownFormatError.new(e)
|
|
103
103
|
end.flatten.compact
|
|
104
104
|
end
|
|
105
105
|
|
|
@@ -134,6 +134,7 @@ module Langchain
|
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
def source_type
|
|
137
|
+
binding.pry
|
|
137
138
|
url? ? @raw_data.content_type : File.extname(@path)
|
|
138
139
|
end
|
|
139
140
|
|
|
@@ -113,10 +113,11 @@ module Langchain::Vectorsearch
|
|
|
113
113
|
|
|
114
114
|
# Ask a question and return the answer
|
|
115
115
|
# @param question [String] The question to ask
|
|
116
|
+
# @param k [Integer] The number of results to have in context
|
|
116
117
|
# @yield [String] Stream responses back one String at a time
|
|
117
118
|
# @return [String] The answer to the question
|
|
118
|
-
def ask(question:, &block)
|
|
119
|
-
search_results = similarity_search(query: question)
|
|
119
|
+
def ask(question:, k: 4, &block)
|
|
120
|
+
search_results = similarity_search(query: question, k: k)
|
|
120
121
|
|
|
121
122
|
context = search_results.map do |result|
|
|
122
123
|
result.document
|
|
@@ -5,7 +5,7 @@ module Langchain::Vectorsearch
|
|
|
5
5
|
#
|
|
6
6
|
# Wrapper around Milvus REST APIs.
|
|
7
7
|
#
|
|
8
|
-
# Gem requirements: gem "milvus", "~> 0.9.
|
|
8
|
+
# Gem requirements: gem "milvus", "~> 0.9.2"
|
|
9
9
|
#
|
|
10
10
|
# Usage:
|
|
11
11
|
# milvus = Langchain::Vectorsearch::Milvus.new(url:, index_name:, llm:, api_key:)
|
|
@@ -138,10 +138,11 @@ module Langchain::Vectorsearch
|
|
|
138
138
|
|
|
139
139
|
# Ask a question and return the answer
|
|
140
140
|
# @param question [String] The question to ask
|
|
141
|
+
# @param k [Integer] The number of results to have in context
|
|
141
142
|
# @yield [String] Stream responses back one String at a time
|
|
142
143
|
# @return [String] The answer to the question
|
|
143
|
-
def ask(question:, &block)
|
|
144
|
-
search_results = similarity_search(query: question)
|
|
144
|
+
def ask(question:, k: 4, &block)
|
|
145
|
+
search_results = similarity_search(query: question, k: k)
|
|
145
146
|
|
|
146
147
|
content_field = search_results.dig("results", "fields_data").select { |field| field.dig("field_name") == "content" }
|
|
147
148
|
content_data = content_field.first.dig("Field", "Scalars", "Data", "StringData", "data")
|
|
@@ -135,10 +135,11 @@ module Langchain::Vectorsearch
|
|
|
135
135
|
|
|
136
136
|
# Ask a question and return the answer
|
|
137
137
|
# @param question [String] The question to ask
|
|
138
|
+
# @param k [Integer] The number of results to have in context
|
|
138
139
|
# @yield [String] Stream responses back one String at a time
|
|
139
140
|
# @return [String] The answer to the question
|
|
140
|
-
def ask(question:, &block)
|
|
141
|
-
search_results = similarity_search(query: question)
|
|
141
|
+
def ask(question:, k: 4, &block)
|
|
142
|
+
search_results = similarity_search(query: question, k: k)
|
|
142
143
|
|
|
143
144
|
context = search_results.map do |result|
|
|
144
145
|
result.content.to_s
|
|
@@ -51,6 +51,21 @@ module Langchain::Vectorsearch
|
|
|
51
51
|
index.upsert(vectors: vectors, namespace: namespace)
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
+
def add_data(paths:, namespace: "")
|
|
55
|
+
raise ArgumentError, "Paths must be provided" if Array(paths).empty?
|
|
56
|
+
|
|
57
|
+
texts = Array(paths)
|
|
58
|
+
.flatten
|
|
59
|
+
.map do |path|
|
|
60
|
+
data = Langchain::Loader.new(path)&.load&.chunks
|
|
61
|
+
data.map { |chunk| chunk[:text] }
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
texts.flatten!
|
|
65
|
+
|
|
66
|
+
add_texts(texts: texts, namespace: namespace)
|
|
67
|
+
end
|
|
68
|
+
|
|
54
69
|
# Update a list of texts in the index
|
|
55
70
|
# @param texts [Array] The list of texts to update
|
|
56
71
|
# @param ids [Array] The list of IDs to update
|
|
@@ -138,11 +153,12 @@ module Langchain::Vectorsearch
|
|
|
138
153
|
# Ask a question and return the answer
|
|
139
154
|
# @param question [String] The question to ask
|
|
140
155
|
# @param namespace [String] The namespace to search in
|
|
156
|
+
# @param k [Integer] The number of results to have in context
|
|
141
157
|
# @param filter [String] The filter to use
|
|
142
158
|
# @yield [String] Stream responses back one String at a time
|
|
143
159
|
# @return [String] The answer to the question
|
|
144
|
-
def ask(question:, namespace: "", filter: nil, &block)
|
|
145
|
-
search_results = similarity_search(query: question, namespace: namespace, filter: filter)
|
|
160
|
+
def ask(question:, namespace: "", filter: nil, k: 4, &block)
|
|
161
|
+
search_results = similarity_search(query: question, namespace: namespace, filter: filter, k: k)
|
|
146
162
|
|
|
147
163
|
context = search_results.map do |result|
|
|
148
164
|
result.dig("metadata").to_s
|
|
@@ -5,7 +5,7 @@ module Langchain::Vectorsearch
|
|
|
5
5
|
#
|
|
6
6
|
# Wrapper around Qdrant
|
|
7
7
|
#
|
|
8
|
-
# Gem requirements: gem "qdrant-ruby", "~> 0.9.
|
|
8
|
+
# Gem requirements: gem "qdrant-ruby", "~> 0.9.3"
|
|
9
9
|
#
|
|
10
10
|
# Usage:
|
|
11
11
|
# qdrant = Langchain::Vectorsearch::Qdrant.new(url:, api_key:, index_name:, llm:, llm_api_key:)
|
|
@@ -112,10 +112,11 @@ module Langchain::Vectorsearch
|
|
|
112
112
|
|
|
113
113
|
# Ask a question and return the answer
|
|
114
114
|
# @param question [String] The question to ask
|
|
115
|
+
# @param k [Integer] The number of results to have in context
|
|
115
116
|
# @yield [String] Stream responses back one String at a time
|
|
116
117
|
# @return [String] The answer to the question
|
|
117
|
-
def ask(question:, &block)
|
|
118
|
-
search_results = similarity_search(query: question)
|
|
118
|
+
def ask(question:, k: 4, &block)
|
|
119
|
+
search_results = similarity_search(query: question, k: k)
|
|
119
120
|
|
|
120
121
|
context = search_results.map do |result|
|
|
121
122
|
result.dig("payload").to_s
|
|
@@ -124,10 +124,11 @@ module Langchain::Vectorsearch
|
|
|
124
124
|
|
|
125
125
|
# Ask a question and return the answer
|
|
126
126
|
# @param question [String] The question to ask
|
|
127
|
+
# @param k [Integer] The number of results to have in context
|
|
127
128
|
# @yield [String] Stream responses back one String at a time
|
|
128
129
|
# @return [Hash] The answer
|
|
129
|
-
def ask(question:, &block)
|
|
130
|
-
search_results = similarity_search(query: question)
|
|
130
|
+
def ask(question:, k: 4, &block)
|
|
131
|
+
search_results = similarity_search(query: question, k: k)
|
|
131
132
|
|
|
132
133
|
context = search_results.map do |result|
|
|
133
134
|
result.dig("content").to_s
|
data/lib/langchain/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: langchainrb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.6.
|
|
4
|
+
version: 0.6.13
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andrei Bondarev
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-08-
|
|
11
|
+
date: 2023-08-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: baran
|
|
@@ -184,14 +184,14 @@ dependencies:
|
|
|
184
184
|
requirements:
|
|
185
185
|
- - "~>"
|
|
186
186
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: 0.9.
|
|
187
|
+
version: 0.9.6
|
|
188
188
|
type: :development
|
|
189
189
|
prerelease: false
|
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
191
191
|
requirements:
|
|
192
192
|
- - "~>"
|
|
193
193
|
- !ruby/object:Gem::Version
|
|
194
|
-
version: 0.9.
|
|
194
|
+
version: 0.9.6
|
|
195
195
|
- !ruby/object:Gem::Dependency
|
|
196
196
|
name: docx
|
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -226,14 +226,14 @@ dependencies:
|
|
|
226
226
|
requirements:
|
|
227
227
|
- - "~>"
|
|
228
228
|
- !ruby/object:Gem::Version
|
|
229
|
-
version: 0.1.
|
|
229
|
+
version: 0.1.3
|
|
230
230
|
type: :development
|
|
231
231
|
prerelease: false
|
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
|
233
233
|
requirements:
|
|
234
234
|
- - "~>"
|
|
235
235
|
- !ruby/object:Gem::Version
|
|
236
|
-
version: 0.1.
|
|
236
|
+
version: 0.1.3
|
|
237
237
|
- !ruby/object:Gem::Dependency
|
|
238
238
|
name: google_search_results
|
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -282,14 +282,14 @@ dependencies:
|
|
|
282
282
|
requirements:
|
|
283
283
|
- - "~>"
|
|
284
284
|
- !ruby/object:Gem::Version
|
|
285
|
-
version: 0.9.
|
|
285
|
+
version: 0.9.2
|
|
286
286
|
type: :development
|
|
287
287
|
prerelease: false
|
|
288
288
|
version_requirements: !ruby/object:Gem::Requirement
|
|
289
289
|
requirements:
|
|
290
290
|
- - "~>"
|
|
291
291
|
- !ruby/object:Gem::Version
|
|
292
|
-
version: 0.9.
|
|
292
|
+
version: 0.9.2
|
|
293
293
|
- !ruby/object:Gem::Dependency
|
|
294
294
|
name: llama_cpp
|
|
295
295
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -324,14 +324,14 @@ dependencies:
|
|
|
324
324
|
requirements:
|
|
325
325
|
- - "~>"
|
|
326
326
|
- !ruby/object:Gem::Version
|
|
327
|
-
version: 0.
|
|
327
|
+
version: 0.4.0
|
|
328
328
|
type: :development
|
|
329
329
|
prerelease: false
|
|
330
330
|
version_requirements: !ruby/object:Gem::Requirement
|
|
331
331
|
requirements:
|
|
332
332
|
- - "~>"
|
|
333
333
|
- !ruby/object:Gem::Version
|
|
334
|
-
version: 0.
|
|
334
|
+
version: 0.4.0
|
|
335
335
|
- !ruby/object:Gem::Dependency
|
|
336
336
|
name: pg
|
|
337
337
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -408,14 +408,14 @@ dependencies:
|
|
|
408
408
|
requirements:
|
|
409
409
|
- - "~>"
|
|
410
410
|
- !ruby/object:Gem::Version
|
|
411
|
-
version: 0.9.
|
|
411
|
+
version: 0.9.3
|
|
412
412
|
type: :development
|
|
413
413
|
prerelease: false
|
|
414
414
|
version_requirements: !ruby/object:Gem::Requirement
|
|
415
415
|
requirements:
|
|
416
416
|
- - "~>"
|
|
417
417
|
- !ruby/object:Gem::Version
|
|
418
|
-
version: 0.9.
|
|
418
|
+
version: 0.9.3
|
|
419
419
|
- !ruby/object:Gem::Dependency
|
|
420
420
|
name: roo
|
|
421
421
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -478,14 +478,14 @@ dependencies:
|
|
|
478
478
|
requirements:
|
|
479
479
|
- - "~>"
|
|
480
480
|
- !ruby/object:Gem::Version
|
|
481
|
-
version: 0.8.
|
|
481
|
+
version: 0.8.6
|
|
482
482
|
type: :development
|
|
483
483
|
prerelease: false
|
|
484
484
|
version_requirements: !ruby/object:Gem::Requirement
|
|
485
485
|
requirements:
|
|
486
486
|
- - "~>"
|
|
487
487
|
- !ruby/object:Gem::Version
|
|
488
|
-
version: 0.8.
|
|
488
|
+
version: 0.8.6
|
|
489
489
|
- !ruby/object:Gem::Dependency
|
|
490
490
|
name: wikipedia-client
|
|
491
491
|
requirement: !ruby/object:Gem::Requirement
|