mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-05 08:10:14 +00:00
fix(azure): stop auto-filling API version from pasted URL
Pasted URLs often contain older API versions (e.g., 2024-05-01-preview) that are incompatible with the Responses API. The parser now only extracts endpoint and deployment name, letting the API version default to 2025-04-01-preview.
This commit is contained in:
parent
ae946fa991
commit
e462255415
3 changed files with 6 additions and 15 deletions
|
|
@ -36,9 +36,6 @@ export const Azure = ({ apiConfiguration, setApiConfigurationField }: AzureProps
|
|||
if (parsed) {
|
||||
setApiConfigurationField("azureBaseUrl", parsed.baseUrl)
|
||||
setApiConfigurationField("azureDeploymentName", parsed.deploymentName)
|
||||
if (parsed.apiVersion) {
|
||||
setApiConfigurationField("azureApiVersion", parsed.apiVersion)
|
||||
}
|
||||
} else {
|
||||
setApiConfigurationField("azureBaseUrl", rawValue)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
import { parseAzureUrl } from "../parseAzureUrl"
|
||||
|
||||
describe("parseAzureUrl", () => {
|
||||
it("parses a full openai.azure.com URL with api-version", () => {
|
||||
it("parses a full openai.azure.com URL (ignores api-version)", () => {
|
||||
const result = parseAzureUrl(
|
||||
"https://my-resource.openai.azure.com/openai/deployments/gpt-4o/chat/completions?api-version=2024-10-21",
|
||||
)
|
||||
expect(result).toEqual({
|
||||
baseUrl: "https://my-resource.openai.azure.com/openai",
|
||||
deploymentName: "gpt-4o",
|
||||
apiVersion: "2024-10-21",
|
||||
})
|
||||
})
|
||||
|
||||
|
|
@ -19,7 +18,6 @@ describe("parseAzureUrl", () => {
|
|||
expect(result).toEqual({
|
||||
baseUrl: "https://my-deployment.cognitiveservices.azure.com/openai",
|
||||
deploymentName: "gpt-5.2",
|
||||
apiVersion: "2024-05-01-preview",
|
||||
})
|
||||
})
|
||||
|
||||
|
|
@ -30,7 +28,6 @@ describe("parseAzureUrl", () => {
|
|||
expect(result).toEqual({
|
||||
baseUrl: "https://my-resource.services.ai.azure.com/openai",
|
||||
deploymentName: "my-model",
|
||||
apiVersion: "2025-01-01",
|
||||
})
|
||||
})
|
||||
|
||||
|
|
@ -57,7 +54,6 @@ describe("parseAzureUrl", () => {
|
|||
expect(result).toEqual({
|
||||
baseUrl: "https://my-resource.openai.azure.com/openai",
|
||||
deploymentName: "gpt-4.turbo.2024",
|
||||
apiVersion: "2024-10-21",
|
||||
})
|
||||
})
|
||||
|
||||
|
|
@ -68,7 +64,6 @@ describe("parseAzureUrl", () => {
|
|||
expect(result).toEqual({
|
||||
baseUrl: "https://my-resource.openai.azure.com/openai",
|
||||
deploymentName: "my-deploy",
|
||||
apiVersion: "2024-10-21",
|
||||
})
|
||||
})
|
||||
|
||||
|
|
@ -102,14 +97,13 @@ describe("parseAzureUrl", () => {
|
|||
})
|
||||
})
|
||||
|
||||
it("handles additional query parameters besides api-version", () => {
|
||||
it("ignores query parameters including api-version", () => {
|
||||
const result = parseAzureUrl(
|
||||
"https://my-resource.openai.azure.com/openai/deployments/gpt-4o/chat/completions?api-version=2024-10-21&extra=param",
|
||||
)
|
||||
expect(result).toEqual({
|
||||
baseUrl: "https://my-resource.openai.azure.com/openai",
|
||||
deploymentName: "gpt-4o",
|
||||
apiVersion: "2024-10-21",
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -3,14 +3,15 @@ export interface ParsedAzureUrl {
|
|||
baseUrl: string
|
||||
/** e.g. "gpt-5.2" */
|
||||
deploymentName: string
|
||||
/** e.g. "2024-05-01-preview" */
|
||||
apiVersion?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses a full Azure OpenAI URL into its components.
|
||||
* Returns null if the URL doesn't match the expected pattern.
|
||||
*
|
||||
* Extracts the base URL and deployment name only — the api-version query
|
||||
* parameter is intentionally ignored so the application default is used.
|
||||
*
|
||||
* Supported URL formats:
|
||||
* - https://{resource}.openai.azure.com/openai/deployments/{deployment}/chat/completions?api-version={ver}
|
||||
* - https://{resource}.cognitiveservices.azure.com/openai/deployments/{deployment}/responses?api-version={ver}
|
||||
|
|
@ -32,7 +33,6 @@ export function parseAzureUrl(input: string): ParsedAzureUrl | null {
|
|||
|
||||
const baseUrl = `${url.origin}${match[1]}`
|
||||
const deploymentName = decodeURIComponent(match[2])
|
||||
const apiVersion = url.searchParams.get("api-version") ?? undefined
|
||||
|
||||
return { baseUrl, deploymentName, ...(apiVersion !== undefined && { apiVersion }) }
|
||||
return { baseUrl, deploymentName }
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue