langchainrb 0.6.9 → 0.6.10

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: 4d046a7cae545da3092694fee60b0fa3caa0852492c9bf7dbbe35001d96106e4
4
- data.tar.gz: 8ed841d2359400f9a4700a49b82030fbe3dd3563545eca31b487914e8fb236f7
3
+ metadata.gz: ba1fb0e3fbc05e4279fe3a698ad8fb1a25e02788991a8e6a7b27b411771096f3
4
+ data.tar.gz: 309cda1c8c7a4982b22c6ad2f82c20fb12ca3bdfdc3e8c0ebeaa9687a7f71ce0
5
5
  SHA512:
6
- metadata.gz: eed2f03cbdd74ef42fafd07524dc6bf5c7ac2278e5e55dd1aad5b2cd87f319a91c8719a6e9ac43ac50cda5525f3defab14cfecc749bdec81075d52b3935b23dd
7
- data.tar.gz: cd4fce88b0f9f545f6d32660879e6fa5044ec74b41dcb41bc29eafb78b307d8b2cb8204856098657d8c9707331c8629c8a707a227fe4d20a5816347f8a66991c
6
+ metadata.gz: 3457cbad7efbc5504f4cb3b684e3837984be5d486c1ee21a718508d606dd63ccc2223dffc55f3cc9c52f5fd0a533b364407bbb4c3208515e2bab8ca2af9ea60a
7
+ data.tar.gz: 1ff3cded239c286ee87d7a2f0a1cfa45c734b185e35b6e6fbc63fd2951f7c7397e8562fa145a16f545ef07b2e983f40715010e9c96653b5f2bf128325a5a7577
data/.env.example CHANGED
@@ -1,4 +1,5 @@
1
1
  AI21_API_KEY=
2
+ ANTHROPIC_API_KEY=
2
3
  CHROMA_URL=
3
4
  COHERE_API_KEY=
4
5
  GOOGLE_PALM_API_KEY=
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.6.10] - 2023-08-01
4
+ - 🗣️ LLMs
5
+ - Introducing Anthropic support
6
+
3
7
  ## [0.6.9] - 2023-07-29
4
8
 
5
9
  ## [0.6.8] - 2023-07-21
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- langchainrb (0.6.9)
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/langchain.
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:, llm_api_key:)
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)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Langchain
4
- VERSION = "0.6.9"
4
+ VERSION = "0.6.10"
5
5
  end
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.9
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-07-29 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: 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