Class: LastLLM::Client
- Inherits:
-
Object
- Object
- LastLLM::Client
- Defined in:
- lib/last_llm/client.rb
Overview
Client for interacting with LLM providers This is the main interface for the LastLLM library
Instance Attribute Summary collapse
-
#configuration ⇒ Object
readonly
Client configuration.
-
#provider ⇒ Object
Current provider instance.
Instance Method Summary collapse
-
#generate_object(prompt, schema, options = {}) ⇒ Hash
Generate a structured object from a prompt.
-
#generate_text(prompt, options = {}) ⇒ String
Generate text in a single call.
-
#initialize(config = nil, options = {}) ⇒ Client
constructor
Initialize a new client.
Constructor Details
#initialize(config = nil, options = {}) ⇒ Client
Initialize a new client
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/last_llm/client.rb', line 22 def initialize(config = nil, = {}) @configuration = case config when Configuration config when Hash Configuration.new(config) else # When no config provided, default to test mode in test environment # Force test_mode to true when running in RSpec raise ConfigurationError, 'No configuration provided' unless defined?(RSpec) Configuration.new(test_mode: defined?(RSpec)) end provider_name = [:provider] || @configuration.default_provider @provider = create_provider(provider_name) end |
Instance Attribute Details
#configuration ⇒ Object (readonly)
Client configuration
13 14 15 |
# File 'lib/last_llm/client.rb', line 13 def configuration @configuration end |
#provider ⇒ Object
Current provider instance
16 17 18 |
# File 'lib/last_llm/client.rb', line 16 def provider @provider end |
Instance Method Details
#generate_object(prompt, schema, options = {}) ⇒ Hash
Generate a structured object from a prompt
62 63 64 65 |
# File 'lib/last_llm/client.rb', line 62 def generate_object(prompt, schema, = {}) structured_output = LastLLM::StructuredOutput.new(self) structured_output.generate(prompt, schema, ) end |
#generate_text(prompt, options = {}) ⇒ String
Generate text in a single call
50 51 52 |
# File 'lib/last_llm/client.rb', line 50 def generate_text(prompt, = {}) @provider.generate_text(prompt, ) end |