Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/pydantic_ai_lightspeed/llamastack/_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@
{
"conversation",
"max_infer_iters",
"tools",
"tool_choice",
"include",
"text",
Expand Down Expand Up @@ -84,6 +83,8 @@ def _model_settings_from_responses_params(
if responses_params.extra_headers:
settings_dict["extra_headers"] = dict(responses_params.extra_headers)
settings_dict["openai_store"] = responses_params.store
if responses_params.tools is not None:
settings_dict["openai_native_tools"] = responses_params.tools
if responses_params.previous_response_id is not None:
settings_dict["openai_previous_response_id"] = (
responses_params.previous_response_id
Expand Down
15 changes: 10 additions & 5 deletions tests/unit/pydantic_ai_lightspeed/llamastack/test_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ def test_extra_body_fields(self) -> None:
params = _make_params(
max_infer_iters=5,
max_tool_calls=10,
tools=[{"type": "function", "name": "test-function", "parameters": {}}],
)
settings = _model_settings_from_responses_params(params)

Expand All @@ -95,9 +94,16 @@ def test_extra_body_fields(self) -> None:
assert settings["extra_body"]["max_infer_iters"] == 5
assert settings["extra_body"]["max_tool_calls"] == 10
assert settings["extra_body"]["conversation"] == "conv-1"
assert settings["extra_body"]["tools"] == [
{"type": "function", "name": "test-function", "parameters": {}}
]

def test_tools_maps_to_openai_native_tools(self) -> None:
"""Test that tools maps to openai_native_tools, not extra_body."""
tools = [{"type": "function", "name": "test-function", "parameters": {}}]
params = _make_params(tools=tools)
settings = _model_settings_from_responses_params(params)

assert "openai_native_tools" in settings
assert settings["openai_native_tools"] is params.tools
assert "tools" not in settings.get("extra_body", {})

def test_none_fields_excluded(self) -> None:
"""Test that None optional fields do not appear in the result."""
Expand Down Expand Up @@ -581,7 +587,6 @@ def test_contains_expected_fields(self) -> None:
expected = {
"conversation",
"max_infer_iters",
"tools",
"tool_choice",
"include",
"text",
Expand Down
Loading