class RubyLLM::Connection
Connection class for managing API connections to various providers.
Attributes
Public Class Methods
Source
# File lib/ruby_llm/connection.rb, line 14 def self.basic(&) Faraday.new do |f| f.response :logger, RubyLLM.logger, bodies: false, errors: true, headers: false, log_level: :debug f.response :raise_error yield f if block_given? end end
Source
# File lib/ruby_llm/connection.rb, line 27 def initialize(provider, config) @provider = provider @config = config ensure_configured! @connection ||= Faraday.new(provider.api_base) do |faraday| setup_timeout(faraday) setup_logging(faraday) setup_retry(faraday) setup_middleware(faraday) setup_http_proxy(faraday) end end
Public Instance Methods
Source
# File lib/ruby_llm/connection.rb, line 50 def get(url, &) instrument_request(:get, url) do @connection.get url do |req| req.headers.merge! provider_headers yield req if block_given? end end end
Source
# File lib/ruby_llm/connection.rb, line 59 def instance_variables super - %i[@config @connection] end
Calls superclass method
# File lib/ruby_llm/connection.rb, line 41 def post(url, payload, &) instrument_request(:post, url) do @connection.post url, payload do |req| req.headers.merge! provider_headers yield req if block_given? end end end