fix(azure): keep api-version query after vector store search path

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Devin AI 2026-09-16 07:17:27 +00:00
parent a8979fe054
commit c03a42a9c8
4 changed files with 40 additions and 15 deletions

View file

@ -101,7 +101,8 @@ class OpenAIVectorStoreConfig(BaseVectorStoreConfig):
extra_body: dict[str, object] | None = None,
) -> tuple[str, dict]:
encoded_vector_store_id: Final = encode_url_path_segment(vector_store_id, field_name="vector_store_id")
url: Final = f"{api_base}/{encoded_vector_store_id}/search"
base_url, query_separator, query_string = api_base.partition("?")
url: Final = f"{base_url}/{encoded_vector_store_id}/search{query_separator}{query_string}"
typed_request_body: Final = VectorStoreSearchRequest(
query=query,
filters=vector_store_search_optional_params.get("filters", None),

View file

@ -0,0 +1,20 @@
from litellm.llms.azure.vector_stores.transformation import AzureOpenAIVectorStoreConfig
def test_transform_search_vector_store_request_preserves_azure_query_string():
config = AzureOpenAIVectorStoreConfig()
api_base = config.get_complete_url(
api_base="https://x.openai.azure.com",
litellm_params={"api_version": "2024-10-21"},
)
url, _ = config.transform_search_vector_store_request(
vector_store_id="vs_1",
query="hello",
vector_store_search_optional_params={},
api_base=api_base,
litellm_logging_obj=None,
litellm_params={"api_version": "2024-10-21"},
)
assert url == "https://x.openai.azure.com/openai/vector_stores/vs_1/search?api-version=2024-10-21"

View file

@ -7,11 +7,8 @@ from litellm.types.vector_stores import (
class TestOpenAIVectorStoreAPIConfig:
@pytest.mark.parametrize("metadata", [{}, None])
def test_transform_create_vector_store_request_with_metadata_empty_or_none(
self, metadata
):
def test_transform_create_vector_store_request_with_metadata_empty_or_none(self, metadata):
"""
Test transform_create_vector_store_request when metadata is None or empty dict.
"""
@ -24,9 +21,7 @@ class TestOpenAIVectorStoreAPIConfig:
"metadata": metadata,
}
url, request_body = config.transform_create_vector_store_request(
vector_store_create_params, api_base
)
url, request_body = config.transform_create_vector_store_request(vector_store_create_params, api_base)
assert url == api_base
assert request_body["name"] == "test-vector-store"
@ -50,9 +45,7 @@ class TestOpenAIVectorStoreAPIConfig:
"metadata": large_metadata,
}
url, request_body = config.transform_create_vector_store_request(
vector_store_create_params, api_base
)
url, request_body = config.transform_create_vector_store_request(vector_store_create_params, api_base)
assert url == api_base
assert request_body["name"] == "test-vector-store"
@ -77,8 +70,19 @@ class TestOpenAIVectorStoreAPIConfig:
litellm_params={},
)
assert (
url
== "https://api.openai.com/v1/vector_stores/..%2F..%2Ffiles%3Fx%3D1%23frag/search"
)
assert url == "https://api.openai.com/v1/vector_stores/..%2F..%2Ffiles%3Fx%3D1%23frag/search"
assert request_body["query"] == "hello"
def test_transform_search_vector_store_request_preserves_query_string(self):
config = OpenAIVectorStoreConfig()
url, _ = config.transform_search_vector_store_request(
vector_store_id="vs_1",
query="hello",
vector_store_search_optional_params={},
api_base="https://x.openai.azure.com/openai/vector_stores?api-version=2024-10-21",
litellm_logging_obj=None,
litellm_params={},
)
assert url == "https://x.openai.azure.com/openai/vector_stores/vs_1/search?api-version=2024-10-21"