summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAB <[email protected]>2025-10-13 21:16:21 +0200
committerGitHub <[email protected]>2025-10-13 14:16:21 -0500
commitd0519be0d0d75ca168d01bfb634736c3d8839ff4 (patch)
treeacfa240efbaf4b05030a81741ac45fe59403a366
parent066e4f064d83ef98aa5d76ff740f5666e392f707 (diff)
downloadopencode-d0519be0d0d75ca168d01bfb634736c3d8839ff4.tar.gz
opencode-d0519be0d0d75ca168d01bfb634736c3d8839ff4.zip
fix: add useCompletionUrls option to fix certain azure setups (#2528)
Co-authored-by: andreas.blass <[email protected]> Co-authored-by: GitHub Action <[email protected]>
-rw-r--r--packages/opencode/src/provider/provider.ts22
1 files changed, 14 insertions, 8 deletions
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index e0fe4be23..62afe208d 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -18,7 +18,7 @@ export namespace Provider {
type CustomLoader = (provider: ModelsDev.Provider) => Promise<{
autoload: boolean
- getModel?: (sdk: any, modelID: string) => Promise<any>
+ getModel?: (sdk: any, modelID: string, options?: Record<string, any>) => Promise<any>
options?: Record<string, any>
}>
@@ -58,7 +58,7 @@ export namespace Provider {
openai: async () => {
return {
autoload: false,
- async getModel(sdk: any, modelID: string) {
+ async getModel(sdk: any, modelID: string, options?: Record<string, any>) {
return sdk.responses(modelID)
},
options: {},
@@ -67,8 +67,12 @@ export namespace Provider {
azure: async () => {
return {
autoload: false,
- async getModel(sdk: any, modelID: string) {
- return sdk.responses(modelID)
+ async getModel(sdk: any, modelID: string, options?: Record<string, any>) {
+ if (options?.["useCompletionUrls"]) {
+ return sdk.completion(modelID)
+ } else {
+ return sdk.responses(modelID)
+ }
},
options: {},
}
@@ -86,7 +90,7 @@ export namespace Provider {
region,
credentialProvider: fromNodeProviderChain(),
},
- async getModel(sdk: any, modelID: string) {
+ async getModel(sdk: any, modelID: string, options?: Record<string, any>) {
let regionPrefix = region.split("-")[0]
switch (regionPrefix) {
@@ -197,7 +201,7 @@ export namespace Provider {
[providerID: string]: {
source: Source
info: ModelsDev.Provider
- getModel?: (sdk: any, modelID: string) => Promise<any>
+ getModel?: (sdk: any, modelID: string, options?: Record<string, any>) => Promise<any>
options: Record<string, any>
}
} = {}
@@ -213,7 +217,7 @@ export namespace Provider {
id: string,
options: Record<string, any>,
source: Source,
- getModel?: (sdk: any, modelID: string) => Promise<any>,
+ getModel?: (sdk: any, modelID: string, options?: Record<string, any>) => Promise<any>,
) {
const provider = providers[id]
if (!provider) {
@@ -432,7 +436,9 @@ export namespace Provider {
const sdk = await getSDK(provider.info, info)
try {
- const language = provider.getModel ? await provider.getModel(sdk, modelID) : sdk.languageModel(modelID)
+ const language = provider.getModel
+ ? await provider.getModel(sdk, modelID, provider.options)
+ : sdk.languageModel(modelID)
log.info("found", { providerID, modelID })
s.models.set(key, {
providerID,