Skip to content

Commit 1b1fafc

Browse files
committed
Fix model env var lookup for provider names with hyphens (opencodezen-go)
1 parent 0a8e6d5 commit 1b1fafc

2 files changed

Lines changed: 17 additions & 5 deletions

File tree

teaagent/llm/_types.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,8 @@ def resolved_api_key(self) -> str:
117117
return api_key
118118

119119
def resolved_model(self) -> str:
120-
return (
121-
self.model
122-
or os.environ.get(f'{self.name.upper()}_MODEL')
123-
or self.default_model
124-
)
120+
env_prefix = self.name.upper().replace('-', '_')
121+
return self.model or os.environ.get(f'{env_prefix}_MODEL') or self.default_model
125122

126123
def resolved_base_url(self) -> str:
127124
if self.base_url_env and os.environ.get(self.base_url_env):

tests/test_llm.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,21 @@ def test_opencodezen_go_is_openai_compatible_and_configurable(self) -> None:
151151
transport.calls[0]['url'], 'https://local.test/v1/chat/completions'
152152
)
153153

154+
def test_opencodezen_go_model_env_override_uses_underscore_key(self) -> None:
155+
transport = FakeTransport({'choices': [{'message': {'content': 'ok'}}]})
156+
with patch.dict(
157+
os.environ,
158+
{
159+
'OPENCODEZEN_API_KEY': 'key',
160+
'OPENCODEZEN_GO_MODEL': 'deepseek-v4-pro',
161+
},
162+
clear=True,
163+
):
164+
adapter = create_llm_adapter('opencodezen-go', transport=transport)
165+
adapter.complete(LLMRequest(messages=[LLMMessage('user', 'hi')]))
166+
167+
self.assertEqual(transport.calls[0]['payload']['model'], 'deepseek-v4-pro')
168+
154169
def test_configuration_check_reports_missing_key(self) -> None:
155170
with patch.dict(os.environ, {}, clear=True):
156171
ok, message = check_llm_configuration('gpt')

0 commit comments

Comments
 (0)