mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-14 23:21:35 +00:00
fix: quote api_base in YAML, skip azure if no deployment, only redraw on state change
This commit is contained in:
parent
d1aa7029b7
commit
78f513f525
2 changed files with 24 additions and 4 deletions
|
|
@ -322,19 +322,24 @@ class SetupWizard:
|
|||
SetupWizard._render_selector(cursor, selected, first_render=True)
|
||||
while True:
|
||||
key = SetupWizard._read_key()
|
||||
dirty = False
|
||||
if key == "\x1b[A":
|
||||
cursor = (cursor - 1) % len(PROVIDERS)
|
||||
dirty = True
|
||||
elif key == "\x1b[B":
|
||||
cursor = (cursor + 1) % len(PROVIDERS)
|
||||
dirty = True
|
||||
elif key == " ":
|
||||
selected.symmetric_difference_update({cursor})
|
||||
dirty = True
|
||||
elif key in ("\r", "\n"):
|
||||
if not selected:
|
||||
selected.add(cursor)
|
||||
break
|
||||
elif key in ("\x03", "\x04"):
|
||||
raise KeyboardInterrupt
|
||||
SetupWizard._render_selector(cursor, selected, first_render=False)
|
||||
if dirty:
|
||||
SetupWizard._render_selector(cursor, selected, first_render=False)
|
||||
finally:
|
||||
if _supports_color():
|
||||
sys.stdout.write(_CURSOR_SHOW)
|
||||
|
|
@ -521,8 +526,10 @@ class SetupWizard:
|
|||
|
||||
if p["id"] == "azure":
|
||||
deployment = env_copy.pop(
|
||||
f"_LITELLM_AZURE_DEPLOYMENT_{p['id'].upper()}", "gpt-4o"
|
||||
f"_LITELLM_AZURE_DEPLOYMENT_{p['id'].upper()}", ""
|
||||
)
|
||||
if not deployment:
|
||||
continue # skip Azure entirely if no deployment name was provided
|
||||
models = [f"azure/{deployment}"]
|
||||
else:
|
||||
models = p["models"]
|
||||
|
|
@ -539,11 +546,15 @@ class SetupWizard:
|
|||
if p["env_key"] and p["env_key"] in env_copy:
|
||||
lines.append(f" api_key: os.environ/{p['env_key']}")
|
||||
if p.get("api_base"):
|
||||
lines.append(f" api_base: {p['api_base']}")
|
||||
lines.append(
|
||||
f' api_base: "{_yaml_escape(str(p["api_base"]))}"'
|
||||
)
|
||||
elif p.get("needs_api_base"):
|
||||
azure_base_key = f"_LITELLM_AZURE_API_BASE_{p['id'].upper()}"
|
||||
if azure_base_key in env_copy:
|
||||
lines.append(f" api_base: {env_copy.pop(azure_base_key)}")
|
||||
lines.append(
|
||||
f' api_base: "{_yaml_escape(env_copy.pop(azure_base_key))}"'
|
||||
)
|
||||
if p.get("api_version"):
|
||||
lines.append(f" api_version: {p['api_version']}")
|
||||
|
||||
|
|
|
|||
|
|
@ -129,6 +129,15 @@ def test_build_config_azure_uses_deployment_name():
|
|||
config = SetupWizard._build_config([_AZURE], env_vars, "sk-master")
|
||||
assert "model: azure/my-gpt4o" in config
|
||||
assert "model_name: azure-my-gpt4o" in config
|
||||
# api_base must be quoted to survive YAML special chars
|
||||
assert 'api_base: "https://my.azure.com"' in config
|
||||
|
||||
|
||||
def test_build_config_azure_no_deployment_skipped():
|
||||
"""Azure without a deployment name should emit nothing (not fallback to gpt-4o)."""
|
||||
env_vars = {"AZURE_API_KEY": "az-key"} # no deployment sentinel
|
||||
config = SetupWizard._build_config([_AZURE], env_vars, "sk-master")
|
||||
assert "azure" not in config or "model_list:" in config # no azure model emitted
|
||||
|
||||
|
||||
def test_build_config_no_display_name_collision_openai_and_azure():
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue