Support modern Microsoft Foundry Responses API endpoints:

- support *.ai.azure.com endpoints
- normalize away the /responses postfix in the query path which by
  default is added on Microsoft Foundry UI
This commit is contained in:
Konstantin Gukov
2026-06-23 15:38:43 +02:00
parent 6a4813a7ca
commit e3dcb244f8
4 changed files with 23 additions and 4 deletions
@@ -96,6 +96,11 @@ describe("azure-openai-responses base URL normalization", () => {
expect(baseURL).toBe("https://marc-quicktests-resource.cognitiveservices.azure.com/openai/v1");
});
it("normalizes Microsoft Foundry root endpoints to /openai/v1", async () => {
const baseURL = await captureClientBaseUrl("https://marc-quicktests-resource.ai.azure.com");
expect(baseURL).toBe("https://marc-quicktests-resource.ai.azure.com/openai/v1");
});
it("normalizes Azure OpenAI root endpoints to /openai/v1", async () => {
const baseURL = await captureClientBaseUrl("https://my-resource.openai.azure.com");
expect(baseURL).toBe("https://my-resource.openai.azure.com/openai/v1");
@@ -111,6 +116,11 @@ describe("azure-openai-responses base URL normalization", () => {
expect(baseURL).toBe("https://my-resource.cognitiveservices.azure.com/openai/v1");
});
it("normalizes /openai/v1/responses to /openai/v1", async () => {
const baseURL = await captureClientBaseUrl("https://my-resource.services.ai.azure.com/openai/v1/responses");
expect(baseURL).toBe("https://my-resource.services.ai.azure.com/openai/v1");
});
it("preserves explicit non-Azure proxy paths", async () => {
const baseURL = await captureClientBaseUrl("https://my-proxy.example.com/v1");
expect(baseURL).toBe("https://my-proxy.example.com/v1");