durable-llm 0.1.2 → 0.1.3

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: 16b4fd786241b183bdc060199d2623155b5082570e687b839ecb3d1b610e25ab
4
- data.tar.gz: c8257d7a7a8a3b0847a21b9b574cc405e6cb2f5b81690f2de59949c0a4a4c69e
3
+ metadata.gz: 1e531cd0c24bb1c3d7a2c5490b3d268694827c08d831955219d5fa32884b1a51
4
+ data.tar.gz: dd4bedf9b3a9a09addef7306fe51bcad5082a75163d0d383eff449df5c1ebf54
5
5
  SHA512:
6
- metadata.gz: 563537cf042a171267c80edd1fee12965822a7b766acbe39e71cc2ba146b5291773f28dd04f31d35f35565f0b3f149cc5b40b724cfac1a6f24c8f78fef6a9c85
7
- data.tar.gz: 521c0c54ac096d6e8df667777ba61ac941bd2e5bbc9bba001b5eed3065db97958cceb4bae57ae4bfd834eb04ecc85e176bd793ce20e62c41d0ed7131e7a30734
6
+ metadata.gz: d5bf3a883a62807f86b578169eda22074a8d30e8b7005f9177dd16b04a2be26af5625e26b5b963f6ece166b81c8082d18da2fb9851a03edec3e2388ce2443dce
7
+ data.tar.gz: 03d93aeb004df8d6bf0cfbf945734565d7e5b4d7fe4b98a5b3f4b2a622202b7f907d51730cbcbf37ec9dbed9c0098844c7272ff6a6a00be7c3aeea9e19531607
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- durable-llm (0.1.1)
4
+ durable-llm (0.1.2)
5
5
  event_stream_parser (~> 1.0)
6
6
  faraday (> 1.0)
7
7
  highline (~> 3.1)
data/README.md CHANGED
@@ -52,9 +52,8 @@ puts response.choices.first.message.content
52
52
 
53
53
  - OpenAI
54
54
  - Anthropic
55
- - Cohere
56
- - AI21
57
- - (More providers to be added)
55
+ - Grok
56
+ - Huggingface
58
57
 
59
58
  ## Configuration
60
59
 
@@ -0,0 +1,8 @@
1
+ require 'durable/llm'
2
+ require 'durable/llm/client'
3
+
4
+ client = Durable::Llm::Client.new(:openai, :model=> 'gpt-4')
5
+
6
+ response = client.quick_complete("What's the capital of California?")
7
+
8
+ puts response
@@ -5,27 +5,48 @@ module Durable
5
5
  module Llm
6
6
  class Client
7
7
  attr_reader :provider
8
+ attr_accessor :model
8
9
 
9
10
  def initialize(provider_name, options = {})
11
+
12
+ if options['model'] || options[:model]
13
+ @model = options.delete('model') || options.delete(:model)
14
+ end
15
+
10
16
  provider_class = Durable::Llm::Providers.const_get(provider_name.to_s.capitalize)
11
17
 
12
18
  @provider = provider_class.new(**options)
13
19
  end
14
20
 
21
+ def default_params
22
+ { model: @model }
23
+ end
24
+ def quick_complete(text, opts = {})
25
+
26
+ response = completion(process_params(messages:[{role: 'user', content: text}]))
27
+
28
+ response.choices.first.message.content
29
+ end
15
30
  def completion(params = {})
16
- @provider.completion(params)
31
+ @provider.completion(process_params(params))
17
32
  end
18
33
 
19
34
  def chat(params = {})
20
- @provider.chat(params)
35
+ @provider.chat(process_params(params))
21
36
  end
22
37
 
23
38
  def embed(params = {})
24
- @provider.embed(params)
39
+ @provider.embed(process_params(params))
25
40
  end
26
41
 
27
42
  def stream(params = {}, &block)
28
- @provider.stream(params, &block)
43
+ @provider.stream(process_params(params), &block)
44
+ end
45
+
46
+ private
47
+
48
+ def process_params(opts = {})
49
+ default_params.dup.merge(opts)
29
50
  end
30
51
  end
31
52
  end
@@ -12,6 +12,7 @@ module Durable
12
12
  @api_key = api_key || default_api_key
13
13
  end
14
14
 
15
+
15
16
  def completion(options)
16
17
  raise NotImplementedError, "Subclasses must implement completion"
17
18
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Durable
4
4
  module Llm
5
- VERSION = "0.1.2"
5
+ VERSION = "0.1.3"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: durable-llm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Durable Programming Team
@@ -182,6 +182,7 @@ files:
182
182
  - enterprise/GET_ENTERPRISE.md
183
183
  - examples/anthropic.md
184
184
  - examples/openai.md
185
+ - examples/openai_quick_complete.rb
185
186
  - lib/durable.rb
186
187
  - lib/durable/llm.rb
187
188
  - lib/durable/llm/cli.rb