summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYoussef Achy <[email protected]>2025-11-17 00:01:45 -0600
committerGitHub <[email protected]>2025-11-17 00:01:45 -0600
commit58cc5cdf2a8b5233a4859d1b0cec47e4e7478878 (patch)
tree1d0c81701c609137642478fa59a329f61776383b
parent3c6dcad2afb6bc65a97affb4e72023465664509d (diff)
downloadopencode-58cc5cdf2a8b5233a4859d1b0cec47e4e7478878.tar.gz
opencode-58cc5cdf2a8b5233a4859d1b0cec47e4e7478878.zip
add support for azure cognitive services provider (#4397)
-rw-r--r--packages/opencode/src/provider/provider.ts16
-rw-r--r--packages/web/src/content/docs/providers.mdx56
2 files changed, 72 insertions, 0 deletions
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index 185e3a9aa..b15df8b93 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -78,6 +78,22 @@ export namespace Provider {
options: {},
}
},
+ "azure-cognitive-services": async () => {
+ const resourceName = process.env["AZURE_COGNITIVE_SERVICES_RESOURCE_NAME"]
+ return {
+ autoload: false,
+ async getModel(sdk: any, modelID: string, options?: Record<string, any>) {
+ if (options?.["useCompletionUrls"]) {
+ return sdk.chat(modelID)
+ } else {
+ return sdk.responses(modelID)
+ }
+ },
+ options: {
+ baseURL: resourceName ? `https://${resourceName}.cognitiveservices.azure.com/openai` : undefined,
+ },
+ }
+ },
"amazon-bedrock": async () => {
if (!process.env["AWS_PROFILE"] && !process.env["AWS_ACCESS_KEY_ID"] && !process.env["AWS_BEARER_TOKEN_BEDROCK"])
return { autoload: false }
diff --git a/packages/web/src/content/docs/providers.mdx b/packages/web/src/content/docs/providers.mdx
index d75c75d50..84a815490 100644
--- a/packages/web/src/content/docs/providers.mdx
+++ b/packages/web/src/content/docs/providers.mdx
@@ -229,6 +229,62 @@ Or if you already have an API key, you can select **Manually enter API Key** and
---
+### Azure Cognitive Services
+
+1. Head over to the [Azure portal](https://portal.azure.com/) and create an **Azure OpenAI** resource. You'll need:
+ - **Resource name**: This becomes part of your API endpoint (`https://AZURE_COGNITIVE_SERVICES_RESOURCE_NAME.cognitiveservices.azure.com/`)
+ - **API key**: Either `KEY 1` or `KEY 2` from your resource
+
+2. Go to [Azure AI Foundry](https://ai.azure.com/) and deploy a model.
+
+ :::note
+ The deployment name must match the model name for opencode to work properly.
+ :::
+
+3. Run `opencode auth login` and select **Azure**.
+
+ ```bash
+ $ opencode auth login
+
+ ┌ Add credential
+ │
+ ◆ Select provider
+ │ ● Azure Cognitive Services
+ │ ...
+ └
+ ```
+
+4. Enter your API key.
+
+ ```bash
+ $ opencode auth login
+
+ ┌ Add credential
+ │
+ ◇ Select provider
+ │ Azure Cognitive Services
+ │
+ ◇ Enter your API key
+ │ _
+ └
+ ```
+
+5. Set your resource name as an environment variable:
+
+ ```bash
+ AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX opencode
+ ```
+
+ Or add it to your bash profile:
+
+ ```bash title="~/.bash_profile"
+ export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX
+ ```
+
+6. Run the `/models` command to select your deployed model.
+
+---
+
### Baseten
1. Head over to the [Baseten](https://app.baseten.co/), create an account, and generate an API key.