Class: RubyCode::Adapters::Ollama
- Defined in:
- lib/rubycode/adapters/ollama.rb
Overview
Ollama adapter for cloud LLM integration
Instance Attribute Summary
Attributes inherited from Base
#current_request_tokens, #last_request_time, #total_tokens_counter
Instance Method Summary collapse
- #generate(messages:, system: nil, tools: nil) ⇒ Object
-
#initialize(config) ⇒ Ollama
constructor
A new instance of Ollama.
Constructor Details
#initialize(config) ⇒ Ollama
Returns a new instance of Ollama.
10 11 12 13 |
# File 'lib/rubycode/adapters/ollama.rb', line 10 def initialize(config) super validate_api_key! end |
Instance Method Details
#generate(messages:, system: nil, tools: nil) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/rubycode/adapters/ollama.rb', line 15 def generate(messages:, system: nil, tools: nil) enforce_rate_limit_delay uri = build_uri payload = build_payload(, system, tools) request = build_request(uri, payload) body = send_request_with_retry(uri, request) @last_request_time = Time.now # Extract and track tokens @current_request_tokens = extract_tokens(body) @total_tokens_counter += @current_request_tokens body rescue AdapterError => e # If model doesn't support tools, provide helpful error message raise AdapterError, if tools && e..include?("does not support tools") raise e end |