mirror of
https://github.com/anomalyco/opencode.git
synced 2026-08-22 03:13:25 +00:00
fix(ai): avoid azure chat v1 url duplication (#43505)
This commit is contained in:
parent
173e3b0d48
commit
8a03b87c1f
2 changed files with 26 additions and 2 deletions
|
|
@ -90,7 +90,8 @@ function endpoint(input: Config, modelID: string | ModelID) {
|
|||
if (input.baseURL !== undefined && !new URL(input.baseURL).hostname.endsWith(".openai.azure.com")) {
|
||||
return { baseURL, query: input.queryParams }
|
||||
}
|
||||
return { baseURL: `${baseURL}/v1`, query }
|
||||
// Azure's v1 API serves from /openai/v1; callers may pass the base URL with or without the version segment.
|
||||
return { baseURL: baseURL.endsWith("/v1") ? baseURL : `${baseURL}/v1`, query }
|
||||
}
|
||||
|
||||
export const configure = (input: Config) => {
|
||||
|
|
|
|||
|
|
@ -255,7 +255,7 @@ describe("OpenAI Chat route", () => {
|
|||
LLMClient.generate(
|
||||
LLMRequest.update(request, {
|
||||
model: Azure.configure({
|
||||
baseURL: "https://opencode-test.openai.azure.com/openai/v1/",
|
||||
baseURL: "https://opencode-test.openai.azure.com/openai/",
|
||||
apiKey: "azure-key",
|
||||
headers: { authorization: "Bearer stale" },
|
||||
}).chat("gpt-4o-mini"),
|
||||
|
|
@ -277,6 +277,29 @@ describe("OpenAI Chat route", () => {
|
|||
),
|
||||
)
|
||||
|
||||
it.effect("does not duplicate /v1 for already-versioned Azure Chat base URLs", () =>
|
||||
LLMClient.generate(
|
||||
LLMRequest.update(request, {
|
||||
model: Azure.configure({
|
||||
baseURL: "https://opencode-test.openai.azure.com/openai/v1/",
|
||||
apiKey: "azure-key",
|
||||
}).chat("gpt-4o-mini"),
|
||||
}),
|
||||
).pipe(
|
||||
Effect.provide(
|
||||
dynamicResponse((input) =>
|
||||
Effect.gen(function* () {
|
||||
const web = yield* HttpClientRequest.toWeb(input.request).pipe(Effect.orDie)
|
||||
expect(web.url).toBe("https://opencode-test.openai.azure.com/openai/v1/chat/completions?api-version=v1")
|
||||
return input.respond(sseEvents(deltaChunk({}, "stop")), {
|
||||
headers: { "content-type": "text/event-stream" },
|
||||
})
|
||||
}),
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
it.effect("applies serializable HTTP overlays after payload lowering", () =>
|
||||
LLMClient.generate(
|
||||
LLMRequest.update(request, {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue