fix(azure_ai): build MAI image edit URL correctly for /mai/ root bases

This commit is contained in:
mateo-berri 2026-06-08 21:13:12 +00:00
parent 2b6cb6d5d1
commit 92a917fc1c
No known key found for this signature in database
2 changed files with 20 additions and 7 deletions

View file

@ -46,16 +46,19 @@ class AzureFoundryMAIImageGenerationConfig(BaseImageGenerationConfig):
if api_base is None:
raise ValueError("api_base is required for Azure AI MAI image editing")
api_base = api_base.rstrip("/")
api_version = api_version or "preview"
path, separator, query = api_base.partition("?")
path = path.rstrip("/")
if "/mai/" in api_base:
api_base = api_base.replace("/images/generations", "/images/edits")
if "?" in api_base:
return api_base
return f"{api_base}?api-version={api_version}"
if "/mai/" in path:
prefix, _, _ = path.partition("/images/")
path = f"{prefix}/images/edits"
else:
path = f"{path}/mai/v1/images/edits"
return f"{api_base}/mai/v1/images/edits?api-version={api_version}"
if separator:
return f"{path}?{query}"
return f"{path}?api-version={api_version}"
@staticmethod
def is_mai_model(model: str) -> bool:

View file

@ -41,6 +41,16 @@ class TestAzureMAIImageEdit:
== "https://my-resource.services.ai.azure.com/mai/v1/images/edits?api-version=preview"
)
def test_get_mai_image_edit_url_appends_edits_to_mai_root(self):
url = AzureFoundryMAIImageGenerationConfig.get_mai_image_edit_url(
api_base="https://my-resource.services.ai.azure.com/mai/v1",
api_version="preview",
)
assert (
url
== "https://my-resource.services.ai.azure.com/mai/v1/images/edits?api-version=preview"
)
def test_get_azure_ai_image_edit_config_returns_mai(self):
config = get_azure_ai_image_edit_config("MAI-Image-2.5")
assert isinstance(config, AzureFoundryMAIImageEditConfig)