langchainrb 0.6.9 → 0.6.10
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/.env.example +1 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +5 -1
- data/README.md +7 -1
- data/lib/langchain/llm/anthropic.rb +62 -0
- data/lib/langchain/vectorsearch/milvus.rb +1 -1
- data/lib/langchain/version.rb +1 -1
- data/lib/langchain.rb +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba1fb0e3fbc05e4279fe3a698ad8fb1a25e02788991a8e6a7b27b411771096f3
|
4
|
+
data.tar.gz: 309cda1c8c7a4982b22c6ad2f82c20fb12ca3bdfdc3e8c0ebeaa9687a7f71ce0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3457cbad7efbc5504f4cb3b684e3837984be5d486c1ee21a718508d606dd63ccc2223dffc55f3cc9c52f5fd0a533b364407bbb4c3208515e2bab8ca2af9ea60a
|
7
|
+
data.tar.gz: 1ff3cded239c286ee87d7a2f0a1cfa45c734b185e35b6e6fbc63fd2951f7c7397e8562fa145a16f545ef07b2e983f40715010e9c96653b5f2bf128325a5a7577
|
data/.env.example
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
langchainrb (0.6.
|
4
|
+
langchainrb (0.6.10)
|
5
5
|
baran (~> 0.1.6)
|
6
6
|
colorize (~> 0.8.1)
|
7
7
|
json-schema (~> 4.0.0)
|
@@ -33,6 +33,9 @@ GEM
|
|
33
33
|
public_suffix (>= 2.0.2, < 6.0)
|
34
34
|
afm (0.2.2)
|
35
35
|
ai21 (0.2.1)
|
36
|
+
anthropic (0.1.0)
|
37
|
+
faraday (>= 1)
|
38
|
+
faraday-multipart (>= 1)
|
36
39
|
ast (2.4.2)
|
37
40
|
baran (0.1.7)
|
38
41
|
builder (3.2.4)
|
@@ -318,6 +321,7 @@ PLATFORMS
|
|
318
321
|
|
319
322
|
DEPENDENCIES
|
320
323
|
ai21 (~> 0.2.1)
|
324
|
+
anthropic (~> 0.1.0)
|
321
325
|
chroma-db (~> 0.3.0)
|
322
326
|
cohere-ruby (~> 0.9.5)
|
323
327
|
docx (~> 0.8.0)
|
data/README.md
CHANGED
@@ -203,6 +203,12 @@ Add `gem "ai21", "~> 0.2.1"` to your Gemfile.
|
|
203
203
|
ai21 = Langchain::LLM::AI21.new(api_key: ENV["AI21_API_KEY"])
|
204
204
|
```
|
205
205
|
|
206
|
+
#### Anthropic
|
207
|
+
Add `gem "anthropic", "~> 0.1.0"` to your Gemfile.
|
208
|
+
```ruby
|
209
|
+
anthropic = Langchain::LLM::Anthropic.new(api_key: ENV["ANTHROPIC_API_KEY"])
|
210
|
+
```
|
211
|
+
|
206
212
|
### Using Prompts 📋
|
207
213
|
|
208
214
|
#### Prompt Templates
|
@@ -537,7 +543,7 @@ Join us in the [Langchain.rb](https://discord.gg/WDARp7J2n8) Discord server.
|
|
537
543
|
|
538
544
|
## Contributing
|
539
545
|
|
540
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/andreibondarev/
|
546
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/andreibondarev/langchainrb.
|
541
547
|
|
542
548
|
## License
|
543
549
|
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Langchain::LLM
|
4
|
+
#
|
5
|
+
# Wrapper around Anthropic APIs.
|
6
|
+
#
|
7
|
+
# Gem requirements:
|
8
|
+
# gem "anthropic", "~> 0.1.0"
|
9
|
+
#
|
10
|
+
# Usage:
|
11
|
+
# anthorpic = Langchain::LLM::Anthropic.new(api_key:)
|
12
|
+
#
|
13
|
+
class Anthropic < Base
|
14
|
+
DEFAULTS = {
|
15
|
+
temperature: 0.0,
|
16
|
+
completion_model_name: "claude-2"
|
17
|
+
}.freeze
|
18
|
+
|
19
|
+
# TODO: Implement token length validator for Anthropic
|
20
|
+
# LENGTH_VALIDATOR = Langchain::Utils::TokenLength::AnthropicValidator
|
21
|
+
|
22
|
+
def initialize(api_key:, llm_options: {}, default_options: {})
|
23
|
+
depends_on "anthropic"
|
24
|
+
require "anthropic"
|
25
|
+
|
26
|
+
@client = ::Anthropic::Client.new(access_token: api_key, **llm_options)
|
27
|
+
@defaults = DEFAULTS.merge(default_options)
|
28
|
+
end
|
29
|
+
|
30
|
+
#
|
31
|
+
# Generate a completion for a given prompt
|
32
|
+
#
|
33
|
+
# @param prompt [String] The prompt to generate a completion for
|
34
|
+
# @param params [Hash] extra parameters passed to Anthropic::Client#complete
|
35
|
+
# @return [String] The completion
|
36
|
+
#
|
37
|
+
def complete(prompt:, **params)
|
38
|
+
parameters = compose_parameters @defaults[:completion_model_name], params
|
39
|
+
|
40
|
+
parameters[:prompt] = prompt
|
41
|
+
|
42
|
+
# TODO: Implement token length validator for Anthropic
|
43
|
+
# parameters[:max_tokens_to_sample] = validate_max_tokens(prompt, parameters[:completion_model_name])
|
44
|
+
|
45
|
+
response = client.complete(parameters: parameters)
|
46
|
+
response.dig("completion")
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def compose_parameters(model, params)
|
52
|
+
default_params = {model: model, temperature: @defaults[:temperature]}
|
53
|
+
|
54
|
+
default_params.merge(params)
|
55
|
+
end
|
56
|
+
|
57
|
+
# TODO: Implement token length validator for Anthropic
|
58
|
+
# def validate_max_tokens(messages, model)
|
59
|
+
# LENGTH_VALIDATOR.validate_max_tokens!(messages, model)
|
60
|
+
# end
|
61
|
+
end
|
62
|
+
end
|
@@ -8,7 +8,7 @@ module Langchain::Vectorsearch
|
|
8
8
|
# Gem requirements: gem "milvus", "~> 0.9.0"
|
9
9
|
#
|
10
10
|
# Usage:
|
11
|
-
# milvus = Langchain::Vectorsearch::Milvus.new(url:, index_name:, llm:,
|
11
|
+
# milvus = Langchain::Vectorsearch::Milvus.new(url:, index_name:, llm:, api_key:)
|
12
12
|
#
|
13
13
|
|
14
14
|
def initialize(url:, index_name:, llm:, api_key: nil)
|
data/lib/langchain/version.rb
CHANGED
data/lib/langchain.rb
CHANGED
@@ -131,6 +131,7 @@ module Langchain
|
|
131
131
|
|
132
132
|
module LLM
|
133
133
|
autoload :AI21, "langchain/llm/ai21"
|
134
|
+
autoload :Anthropic, "langchain/llm/anthropic"
|
134
135
|
autoload :Base, "langchain/llm/base"
|
135
136
|
autoload :Cohere, "langchain/llm/cohere"
|
136
137
|
autoload :GooglePalm, "langchain/llm/google_palm"
|
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.10
|
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-
|
11
|
+
date: 2023-08-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: baran
|
@@ -136,6 +136,20 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: 0.2.1
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: anthropic
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 0.1.0
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 0.1.0
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: chroma-db
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -518,6 +532,7 @@ files:
|
|
518
532
|
- lib/langchain/data.rb
|
519
533
|
- lib/langchain/dependency_helper.rb
|
520
534
|
- lib/langchain/llm/ai21.rb
|
535
|
+
- lib/langchain/llm/anthropic.rb
|
521
536
|
- lib/langchain/llm/base.rb
|
522
537
|
- lib/langchain/llm/cohere.rb
|
523
538
|
- lib/langchain/llm/google_palm.rb
|