Skip to content

Commit 1d3d52f

Browse files
refactor: rename to customParameters matching API/dashboard naming
Co-Authored-By: traci@launchdarkly.com <traci@launchdarkly.com>
1 parent aabad93 commit 1d3d52f

4 files changed

Lines changed: 43 additions & 38 deletions

File tree

packages/sdk/server-ai/src/ldai/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -841,7 +841,7 @@ def __evaluate(
841841
tools = [
842842
ToolDefinition(
843843
name=t.get('name', ''),
844-
parameters=t.get('parameters', None)
844+
custom_parameters=t.get('customParameters', None)
845845
)
846846
for t in tool_defs_raw
847847
if isinstance(t, dict) and t.get('name')

packages/sdk/server-ai/src/ldai/models.py

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,18 +81,23 @@ class ToolDefinition:
8181
"""
8282
Definition of a tool available to an AI configuration.
8383
84-
Each tool has a name used to match against the tool registry, and
85-
optional custom parameters that can be configured via the LaunchDarkly
86-
dashboard.
84+
Each tool has a name used to match against the tool registry,
85+
and optional custom parameters that can be configured via the
86+
LaunchDarkly dashboard.
8787
"""
8888

89-
def __init__(self, name: str, parameters: Optional[Dict[str, Any]] = None):
89+
def __init__(
90+
self,
91+
name: str,
92+
custom_parameters: Optional[Dict[str, Any]] = None,
93+
):
9094
"""
9195
:param name: The name of the tool.
92-
:param parameters: Optional custom parameters for the tool.
96+
:param custom_parameters: Optional custom parameters for
97+
the tool, configured via the LaunchDarkly dashboard.
9398
"""
9499
self._name = name
95-
self._parameters = parameters
100+
self._custom_parameters = custom_parameters
96101

97102
@property
98103
def name(self) -> str:
@@ -101,25 +106,25 @@ def name(self) -> str:
101106
"""
102107
return self._name
103108

104-
def get_parameter(self, key: str) -> Any:
109+
def get_custom_parameter(self, key: str) -> Any:
105110
"""
106111
Retrieve a custom parameter by key.
107112
108-
:param key: The parameter key to look up.
113+
:param key: The custom parameter key to look up.
109114
:return: The parameter value, or None if not found.
110115
"""
111-
if self._parameters is None:
116+
if self._custom_parameters is None:
112117
return None
113118

114-
return self._parameters.get(key)
119+
return self._custom_parameters.get(key)
115120

116121
def to_dict(self) -> dict:
117122
"""
118123
Render the tool definition as a dictionary object.
119124
"""
120125
result: Dict[str, Any] = {'name': self._name}
121-
if self._parameters is not None:
122-
result['parameters'] = self._parameters
126+
if self._custom_parameters is not None:
127+
result['customParameters'] = self._custom_parameters
123128
return result
124129

125130

packages/sdk/server-ai/tests/test_agents.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ def td() -> TestData:
113113
'parameters': {
114114
'temperature': 0.3,
115115
'tools': [
116-
{'name': 'get-order', 'parameters': {'includeHistory': True, 'maxItems': 5}},
117-
{'name': 'search-products', 'parameters': {'category': 'electronics'}},
116+
{'name': 'get-order', 'customParameters': {'includeHistory': True, 'maxItems': 5}},
117+
{'name': 'search-products', 'customParameters': {'category': 'electronics'}},
118118
{'name': 'send-email'},
119119
],
120120
},
@@ -401,22 +401,22 @@ def test_agent_config_has_tools(ldai_client: LDAIClient):
401401

402402
get_order = agent.tools[0]
403403
assert get_order.name == 'get-order'
404-
assert get_order.get_parameter('includeHistory') is True
405-
assert get_order.get_parameter('maxItems') == 5
404+
assert get_order.get_custom_parameter('includeHistory') is True
405+
assert get_order.get_custom_parameter('maxItems') == 5
406406

407407
search = agent.tools[1]
408408
assert search.name == 'search-products'
409-
assert search.get_parameter('category') == 'electronics'
409+
assert search.get_custom_parameter('category') == 'electronics'
410410

411411
send_email = agent.tools[2]
412412
assert send_email.name == 'send-email'
413-
assert send_email.get_parameter('anything') is None
413+
assert send_email.get_custom_parameter('anything') is None
414414

415415

416416
def test_agent_config_tools_fallback_to_default(ldai_client: LDAIClient):
417417
"""Test that agent config falls back to default tools when flag has no tools."""
418418
context = Context.create('user-key')
419-
default_tools = [ToolDefinition('default-tool', parameters={'timeout': 30})]
419+
default_tools = [ToolDefinition('default-tool', custom_parameters={'timeout': 30})]
420420
default = LDAIAgentDefaults(
421421
enabled=False,
422422
model=ModelConfig('fallback-model'),
@@ -431,7 +431,7 @@ def test_agent_config_tools_fallback_to_default(ldai_client: LDAIClient):
431431
assert agent.tools is not None
432432
assert len(agent.tools) == 1
433433
assert agent.tools[0].name == 'default-tool'
434-
assert agent.tools[0].get_parameter('timeout') == 30
434+
assert agent.tools[0].get_custom_parameter('timeout') == 30
435435

436436

437437
def test_agent_config_no_tools(ldai_client: LDAIClient):

packages/sdk/server-ai/tests/test_model_config.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ def td() -> TestData:
111111
'parameters': {
112112
'temperature': 0.7,
113113
'tools': [
114-
{'name': 'web_search', 'parameters': {'maxResults': 10, 'region': 'us'}},
115-
{'name': 'get_weather', 'parameters': {'units': 'celsius'}},
114+
{'name': 'web_search', 'customParameters': {'maxResults': 10, 'region': 'us'}},
115+
{'name': 'get_weather', 'customParameters': {'units': 'celsius'}},
116116
{'name': 'calculator'},
117117
],
118118
},
@@ -449,24 +449,24 @@ def test_completion_config_without_default_uses_disabled(ldai_client: LDAIClient
449449
def test_tool_definition_basic():
450450
tool = ToolDefinition('web_search')
451451
assert tool.name == 'web_search'
452-
assert tool.get_parameter('anything') is None
452+
assert tool.get_custom_parameter('anything') is None
453453

454454

455-
def test_tool_definition_with_parameters():
456-
tool = ToolDefinition('web_search', parameters={'maxResults': 10, 'region': 'us'})
455+
def test_tool_definition_with_custom_parameters():
456+
tool = ToolDefinition('web_search', custom_parameters={'maxResults': 10, 'region': 'us'})
457457
assert tool.name == 'web_search'
458-
assert tool.get_parameter('maxResults') == 10
459-
assert tool.get_parameter('region') == 'us'
460-
assert tool.get_parameter('nonexistent') is None
458+
assert tool.get_custom_parameter('maxResults') == 10
459+
assert tool.get_custom_parameter('region') == 'us'
460+
assert tool.get_custom_parameter('nonexistent') is None
461461

462462

463463
def test_tool_definition_to_dict():
464-
tool = ToolDefinition('web_search', parameters={'maxResults': 10})
464+
tool = ToolDefinition('web_search', custom_parameters={'maxResults': 10})
465465
d = tool.to_dict()
466-
assert d == {'name': 'web_search', 'parameters': {'maxResults': 10}}
466+
assert d == {'name': 'web_search', 'customParameters': {'maxResults': 10}}
467467

468468

469-
def test_tool_definition_to_dict_no_parameters():
469+
def test_tool_definition_to_dict_no_custom_parameters():
470470
tool = ToolDefinition('calculator')
471471
d = tool.to_dict()
472472
assert d == {'name': 'calculator'}
@@ -484,16 +484,16 @@ def test_completion_config_has_tools(ldai_client: LDAIClient):
484484

485485
web_search = config.tools[0]
486486
assert web_search.name == 'web_search'
487-
assert web_search.get_parameter('maxResults') == 10
488-
assert web_search.get_parameter('region') == 'us'
487+
assert web_search.get_custom_parameter('maxResults') == 10
488+
assert web_search.get_custom_parameter('region') == 'us'
489489

490490
get_weather = config.tools[1]
491491
assert get_weather.name == 'get_weather'
492-
assert get_weather.get_parameter('units') == 'celsius'
492+
assert get_weather.get_custom_parameter('units') == 'celsius'
493493

494494
calculator = config.tools[2]
495495
assert calculator.name == 'calculator'
496-
assert calculator.get_parameter('anything') is None
496+
assert calculator.get_custom_parameter('anything') is None
497497

498498

499499
def test_completion_config_no_tools(ldai_client: LDAIClient):
@@ -513,7 +513,7 @@ def test_completion_config_tools_missing_flag(ldai_client: LDAIClient):
513513
enabled=True,
514514
model=ModelConfig('fallback'),
515515
messages=[],
516-
tools=[ToolDefinition('default_tool', parameters={'key': 'value'})],
516+
tools=[ToolDefinition('default_tool', custom_parameters={'key': 'value'})],
517517
)
518518

519519
config = ldai_client.completion_config('missing-flag', context, default)
@@ -524,4 +524,4 @@ def test_completion_config_tools_missing_flag(ldai_client: LDAIClient):
524524
assert config.tools is not None
525525
assert len(config.tools) == 1
526526
assert config.tools[0].name == 'default_tool'
527-
assert config.tools[0].get_parameter('key') == 'value'
527+
assert config.tools[0].get_custom_parameter('key') == 'value'

0 commit comments

Comments
 (0)