Skip to content

Commit 23cb4ea

Browse files
feat: Include LLM headers in ModelConfig
1 parent 5be6d12 commit 23cb4ea

File tree

4 files changed

+29
-3
lines changed

4 files changed

+29
-3
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 8
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fstagehand-a4a5ea048bb50d06460d81d6828b53b12b19e9224121ee6338dcd1f0781e22a1.yml
3-
openapi_spec_hash: 9b81c0ae04576318d13d7a80d4ab7b5a
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fstagehand-bc309fd00fe0507f4cbe3bc77fa27d0fbffeaa6e71998778da34de42608a67e8.yml
3+
openapi_spec_hash: 1db1af5c1b068bba1d652102f4454668
44
config_hash: d6c6f623d03971bdba921650e5eb7e5f

lib/stagehand/models/model_config.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,27 @@ class ModelConfig < Stagehand::Internal::Type::BaseModel
2121
# @return [String, nil]
2222
optional :base_url, String, api_name: :baseURL
2323

24+
# @!attribute headers
25+
# Custom headers sent with every request to the model provider
26+
#
27+
# @return [Hash{Symbol=>String}, nil]
28+
optional :headers, Stagehand::Internal::Type::HashOf[String]
29+
2430
# @!attribute provider
2531
# AI provider for the model (or provide a baseURL endpoint instead)
2632
#
2733
# @return [Symbol, Stagehand::Models::ModelConfig::Provider, nil]
2834
optional :provider, enum: -> { Stagehand::ModelConfig::Provider }
2935

30-
# @!method initialize(model_name:, api_key: nil, base_url: nil, provider: nil)
36+
# @!method initialize(model_name:, api_key: nil, base_url: nil, headers: nil, provider: nil)
3137
# @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
3238
#
3339
# @param api_key [String] API key for the model provider
3440
#
3541
# @param base_url [String] Base URL for the model provider
3642
#
43+
# @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider
44+
#
3745
# @param provider [Symbol, Stagehand::Models::ModelConfig::Provider] AI provider for the model (or provide a baseURL endpoint instead)
3846

3947
# AI provider for the model (or provide a baseURL endpoint instead)

rbi/stagehand/models/model_config.rbi

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ module Stagehand
2626
sig { params(base_url: String).void }
2727
attr_writer :base_url
2828

29+
# Custom headers sent with every request to the model provider
30+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
31+
attr_reader :headers
32+
33+
sig { params(headers: T::Hash[Symbol, String]).void }
34+
attr_writer :headers
35+
2936
# AI provider for the model (or provide a baseURL endpoint instead)
3037
sig { returns(T.nilable(Stagehand::ModelConfig::Provider::OrSymbol)) }
3138
attr_reader :provider
@@ -38,6 +45,7 @@ module Stagehand
3845
model_name: String,
3946
api_key: String,
4047
base_url: String,
48+
headers: T::Hash[Symbol, String],
4149
provider: Stagehand::ModelConfig::Provider::OrSymbol
4250
).returns(T.attached_class)
4351
end
@@ -48,6 +56,8 @@ module Stagehand
4856
api_key: nil,
4957
# Base URL for the model provider
5058
base_url: nil,
59+
# Custom headers sent with every request to the model provider
60+
headers: nil,
5161
# AI provider for the model (or provide a baseURL endpoint instead)
5262
provider: nil
5363
)
@@ -59,6 +69,7 @@ module Stagehand
5969
model_name: String,
6070
api_key: String,
6171
base_url: String,
72+
headers: T::Hash[Symbol, String],
6273
provider: Stagehand::ModelConfig::Provider::OrSymbol
6374
}
6475
)

sig/stagehand/models/model_config.rbs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ module Stagehand
55
model_name: String,
66
api_key: String,
77
base_url: String,
8+
headers: ::Hash[Symbol, String],
89
provider: Stagehand::Models::ModelConfig::provider
910
}
1011

@@ -19,6 +20,10 @@ module Stagehand
1920

2021
def base_url=: (String) -> String
2122

23+
attr_reader headers: ::Hash[Symbol, String]?
24+
25+
def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
26+
2227
attr_reader provider: Stagehand::Models::ModelConfig::provider?
2328

2429
def provider=: (
@@ -29,13 +34,15 @@ module Stagehand
2934
model_name: String,
3035
?api_key: String,
3136
?base_url: String,
37+
?headers: ::Hash[Symbol, String],
3238
?provider: Stagehand::Models::ModelConfig::provider
3339
) -> void
3440

3541
def to_hash: -> {
3642
model_name: String,
3743
api_key: String,
3844
base_url: String,
45+
headers: ::Hash[Symbol, String],
3946
provider: Stagehand::Models::ModelConfig::provider
4047
}
4148

0 commit comments

Comments
 (0)