langchainrb 0.11.0 → 0.11.1
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '08b38ee39600716a9854a387fc0b54091290f27d7afa88b276a480651049bdd4'
|
4
|
+
data.tar.gz: 69d4292c129e751d9d4001912f5ab54ba23f9d9944a5e4294f4ba1dd426d401e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f7d4403d11076fcff2975c88a236fa8b6ace079d83b774000af1d59c08f36794057eaef56769a51bb8e21ab462bba9dbf9df60d704f285b788af8a67b6977ea
|
7
|
+
data.tar.gz: 5d14c72130cada67dadfe880b2a0d723b312d8c27e7ef46452aa4ad65dce1055b66d8459b24c4b6d3f1adb5eeacf30c9fdc686b0190809ef051d393c33d3d33d
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [0.11.0]
|
4
|
+
- Langchain::Tool::Vectorsearch that wraps Langchain::Vectorsearch::* classes. This allows the Assistant to call the tool and inject data from vector DBs.
|
5
|
+
|
3
6
|
## [0.11.0]
|
4
7
|
- Delete previously deprecated `Langchain::Agent::ReActAgent` and `Langchain::Agent::SQLQueryAgent` classes
|
5
8
|
- New `Langchain::Agent::FileSystem` tool that can read files, write to files, and list the contents of a directory
|
@@ -0,0 +1,24 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"type": "function",
|
4
|
+
"function": {
|
5
|
+
"name": "vectorsearch-similarity_search",
|
6
|
+
"description": "Vectorsearch: Retrieves relevant document for the query",
|
7
|
+
"parameters": {
|
8
|
+
"type": "object",
|
9
|
+
"properties": {
|
10
|
+
"query": {
|
11
|
+
"type": "string",
|
12
|
+
"description": "Query to find similar documents for"
|
13
|
+
},
|
14
|
+
"k": {
|
15
|
+
"type": "integer",
|
16
|
+
"description": "Number of similar documents to retrieve",
|
17
|
+
"default": 4
|
18
|
+
}
|
19
|
+
},
|
20
|
+
"required": ["query"]
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
24
|
+
]
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Langchain::Tool
|
4
|
+
class Vectorsearch < Base
|
5
|
+
#
|
6
|
+
# A tool wraps vectorsearch classes
|
7
|
+
#
|
8
|
+
# Usage:
|
9
|
+
# # Initialize the LLM that will be used to generate embeddings
|
10
|
+
# ollama = Langchain::LLM::Ollama.new(url: ENV["OLLAMA_URL"]
|
11
|
+
# chroma = Langchain::Vectorsearch::Chroma.new(url: ENV["CHROMA_URL"], index_name: "my_index", llm: ollama)
|
12
|
+
#
|
13
|
+
# # This tool can now be used by the Assistant
|
14
|
+
# vectorsearch_tool = Langchain::Tool::Vectorsearch.new(vectorsearch: chroma)
|
15
|
+
#
|
16
|
+
NAME = "vectorsearch"
|
17
|
+
ANNOTATIONS_PATH = Langchain.root.join("./langchain/tool/#{NAME}/#{NAME}.json").to_path
|
18
|
+
|
19
|
+
attr_reader :vectorsearch
|
20
|
+
|
21
|
+
# Initializes the Vectorsearch tool
|
22
|
+
#
|
23
|
+
# @param vectorsearch [Langchain::Vectorsearch::Base] Vectorsearch instance to use
|
24
|
+
def initialize(vectorsearch:)
|
25
|
+
@vectorsearch = vectorsearch
|
26
|
+
end
|
27
|
+
|
28
|
+
# Executes the vector search and returns the results
|
29
|
+
#
|
30
|
+
# @param query [String] The query to search for
|
31
|
+
# @param k [Integer] The number of results to return
|
32
|
+
def similarity_search(query:, k: 4)
|
33
|
+
vectorsearch.similarity_search(query:, k: 4)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -9,7 +9,7 @@ module Langchain::Vectorsearch
|
|
9
9
|
# gem "weaviate-ruby", "~> 0.8.9"
|
10
10
|
#
|
11
11
|
# Usage:
|
12
|
-
# weaviate = Langchain::Vectorsearch::Weaviate.new(url
|
12
|
+
# weaviate = Langchain::Vectorsearch::Weaviate.new(url: ENV["WEAVIATE_URL"], api_key: ENV["WEAVIATE_API_KEY"], index_name: "Docs", llm: llm)
|
13
13
|
#
|
14
14
|
|
15
15
|
# Initialize the Weaviate adapter
|
@@ -71,6 +71,22 @@ module Langchain::Vectorsearch
|
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
|
+
# Deletes a list of texts in the index
|
75
|
+
# @param ids [Array] The ids of texts to delete
|
76
|
+
# @return [Hash] The response from the server
|
77
|
+
def remove_texts(ids:)
|
78
|
+
raise ArgumentError, "ids must be an array" unless ids.is_a?(Array)
|
79
|
+
|
80
|
+
client.objects.batch_delete(
|
81
|
+
class_name: index_name,
|
82
|
+
where: {
|
83
|
+
path: ["__id"],
|
84
|
+
operator: "ContainsAny",
|
85
|
+
valueTextArray: ids
|
86
|
+
}
|
87
|
+
)
|
88
|
+
end
|
89
|
+
|
74
90
|
# Create default schema
|
75
91
|
# @return [Hash] The response from the server
|
76
92
|
def create_default_schema
|
data/lib/langchain/version.rb
CHANGED
data/lib/langchain.rb
CHANGED
@@ -31,6 +31,7 @@ loader.collapse("#{__dir__}/langchain/tool/database")
|
|
31
31
|
loader.collapse("#{__dir__}/langchain/tool/file_system")
|
32
32
|
loader.collapse("#{__dir__}/langchain/tool/google_search")
|
33
33
|
loader.collapse("#{__dir__}/langchain/tool/ruby_code_interpreter")
|
34
|
+
loader.collapse("#{__dir__}/langchain/tool/vectorsearch")
|
34
35
|
loader.collapse("#{__dir__}/langchain/tool/weather")
|
35
36
|
loader.collapse("#{__dir__}/langchain/tool/wikipedia")
|
36
37
|
|
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.11.
|
4
|
+
version: 0.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrei Bondarev
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-04-
|
11
|
+
date: 2024-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -776,6 +776,8 @@ files:
|
|
776
776
|
- lib/langchain/tool/google_search/google_search.rb
|
777
777
|
- lib/langchain/tool/ruby_code_interpreter/ruby_code_interpreter.json
|
778
778
|
- lib/langchain/tool/ruby_code_interpreter/ruby_code_interpreter.rb
|
779
|
+
- lib/langchain/tool/vectorsearch/vectorsearch.json
|
780
|
+
- lib/langchain/tool/vectorsearch/vectorsearch.rb
|
779
781
|
- lib/langchain/tool/weather/weather.json
|
780
782
|
- lib/langchain/tool/weather/weather.rb
|
781
783
|
- lib/langchain/tool/wikipedia/wikipedia.json
|