mirror of
https://github.com/usestrix/strix.git
synced 2026-08-28 05:25:00 +00:00
Support routed OpenAI required tool choice
This commit is contained in:
parent
2e015c5c92
commit
fc97cdde20
2 changed files with 24 additions and 0 deletions
|
|
@ -24,6 +24,10 @@ DEFAULT_MAX_TURNS = 500
|
|||
|
||||
def _accepts_required_tool_choice(model_name: str | None) -> bool:
|
||||
name = (model_name or "").strip().lower()
|
||||
for prefix in ("litellm/", "any-llm/"):
|
||||
if name.startswith(prefix):
|
||||
name = name[len(prefix) :]
|
||||
break
|
||||
return name.startswith("openai/") or is_known_openai_bare_model(name)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -135,3 +135,23 @@ def test_make_model_settings_skips_required_tool_choice_for_non_openai_models()
|
|||
)
|
||||
|
||||
assert settings.tool_choice is None
|
||||
|
||||
|
||||
def test_make_model_settings_forces_required_for_routed_openai_model() -> None:
|
||||
settings = make_model_settings(
|
||||
None,
|
||||
model_name="litellm/openai/gpt-4o",
|
||||
force_required_tool_choice=True,
|
||||
)
|
||||
|
||||
assert settings.tool_choice == "required"
|
||||
|
||||
|
||||
def test_make_model_settings_forces_required_for_anyllm_routed_openai_model() -> None:
|
||||
settings = make_model_settings(
|
||||
None,
|
||||
model_name="any-llm/openai/gpt-4o",
|
||||
force_required_tool_choice=True,
|
||||
)
|
||||
|
||||
assert settings.tool_choice == "required"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue