Class: LastLLM::Providers::TestProvider
- Inherits:
-
LastLLM::Provider
- Object
- LastLLM::Provider
- LastLLM::Providers::TestProvider
- Defined in:
- lib/last_llm/providers/test_provider.rb
Overview
A provider implementation for testing purposes
Constant Summary collapse
- BASE_ENDPOINT =
API Configuration (not used for testing but included for consistency)
'http://test.example.com'- DEFAULT_MODEL =
'test-model'- DEFAULT_TEXT_RESPONSE =
Default response values
'Test response'- DEFAULT_OBJECT_RESPONSE =
{}
Instance Attribute Summary collapse
-
#object_response ⇒ Object
Returns the value of attribute object_response.
-
#text_response ⇒ Object
Returns the value of attribute text_response.
Attributes inherited from LastLLM::Provider
Class Method Summary collapse
-
.execute_tool(tool, _response) ⇒ Hash?
Execute a test tool.
-
.format_tool(tool) ⇒ Hash
Format a tool for the test provider.
Instance Method Summary collapse
- #generate_object(prompt, schema, options = {}) ⇒ Object
- #generate_text(prompt, options = {}) ⇒ Object
-
#initialize(config = {}) ⇒ TestProvider
constructor
A new instance of TestProvider.
-
#validate_config! ⇒ Object
Override validate_config! to not require API key.
Methods inherited from LastLLM::Provider
#handle_request_error, #parse_response
Constructor Details
#initialize(config = {}) ⇒ TestProvider
Returns a new instance of TestProvider.
19 20 21 22 23 24 25 26 27 |
# File 'lib/last_llm/providers/test_provider.rb', line 19 def initialize(config = {}) # Skip parent's initialize which checks for API key # Instead implement our own initialization @config = config.is_a?(Hash) ? config : {} @name = Constants::TEST @text_response = DEFAULT_TEXT_RESPONSE @object_response = DEFAULT_OBJECT_RESPONSE logger.debug("#{@name}: Initialized test provider") end |
Instance Attribute Details
#object_response ⇒ Object
Returns the value of attribute object_response.
17 18 19 |
# File 'lib/last_llm/providers/test_provider.rb', line 17 def object_response @object_response end |
#text_response ⇒ Object
Returns the value of attribute text_response.
17 18 19 |
# File 'lib/last_llm/providers/test_provider.rb', line 17 def text_response @text_response end |
Class Method Details
.execute_tool(tool, _response) ⇒ Hash?
Execute a test tool
65 66 67 |
# File 'lib/last_llm/providers/test_provider.rb', line 65 def self.execute_tool(tool, _response) nil # Test provider doesn't execute tools by default end |
.format_tool(tool) ⇒ Hash
Format a tool for the test provider
53 54 55 56 57 58 59 |
# File 'lib/last_llm/providers/test_provider.rb', line 53 def self.format_tool(tool) { name: tool.name, description: tool.description, parameters: tool.parameters } end |
Instance Method Details
#generate_object(prompt, schema, options = {}) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/last_llm/providers/test_provider.rb', line 42 def generate_object(prompt, schema, = {}) model = [:model] || @config[:model] || DEFAULT_MODEL logger.info("#{@name}: Generating object with model: #{model}") logger.debug("#{@name}: Object prompt with schema: #{schema.inspect}") logger.debug("#{@name}: Generated test object response") @object_response end |
#generate_text(prompt, options = {}) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/last_llm/providers/test_provider.rb', line 34 def generate_text(prompt, = {}) model = [:model] || @config[:model] || DEFAULT_MODEL logger.info("#{@name}: Generating text with model: #{model}") logger.debug("#{@name}: Text prompt: #{truncate_text(prompt.to_s)}") logger.debug("#{@name}: Generated test response of #{@text_response.length} characters") @text_response end |
#validate_config! ⇒ Object
Override validate_config! to not require API key
30 31 32 |
# File 'lib/last_llm/providers/test_provider.rb', line 30 def validate_config! # No validation needed for test provider end |