Skip to content

Commit 5622d3d

Browse files
stadiajeff.deancrmne
authored
feat(Configuration): Add http_proxy configuration option (#189)
implement proxy setup in Connection --------- Co-authored-by: jeff.dean <jeff.dean@kakaomobility.com> Co-authored-by: Carmine Paolino <carmine@paolino.me>
1 parent d11c731 commit 5622d3d

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

docs/configuration.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ RubyLLM.configure do |config|
7878
config.retry_interval = 0.1 # Initial delay in seconds (default: 0.1)
7979
config.retry_backoff_factor = 2 # Multiplier for subsequent retries (default: 2)
8080
config.retry_interval_randomness = 0.5 # Jitter factor (default: 0.5)
81+
config.http_proxy = ENV.fetch('HTTP_PROXY', 'http://proxy.example.com:3128') # Optional HTTP proxy
8182

8283
# --- Logging Settings ---
8384
config.log_file = '/logs/ruby_llm.log'

lib/ruby_llm/configuration.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class Configuration
3434
:retry_interval,
3535
:retry_backoff_factor,
3636
:retry_interval_randomness,
37+
:http_proxy,
3738
# Logging configuration
3839
:log_file,
3940
:log_level
@@ -45,6 +46,7 @@ def initialize
4546
@retry_interval = 0.1
4647
@retry_backoff_factor = 2
4748
@retry_interval_randomness = 0.5
49+
@http_proxy = nil
4850

4951
# Default models
5052
@default_model = 'gpt-4.1-nano'

lib/ruby_llm/connection.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ def initialize(provider, config)
2828
setup_logging(faraday)
2929
setup_retry(faraday)
3030
setup_middleware(faraday)
31+
setup_http_proxy(faraday)
3132
end
3233
end
3334

@@ -83,6 +84,12 @@ def setup_middleware(faraday)
8384
faraday.use :llm_errors, provider: @provider
8485
end
8586

87+
def setup_http_proxy(faraday)
88+
return unless @config.http_proxy
89+
90+
faraday.proxy = @config.http_proxy
91+
end
92+
8693
def retry_exceptions
8794
[
8895
Errno::ETIMEDOUT,

0 commit comments

Comments
 (0)