فهرست منبع

docs: add more providers

Jay V 6 ماه پیش
والد
کامیت
69966c73f8
1فایلهای تغییر یافته به همراه301 افزوده شده و 283 حذف شده
  1. 301 283
      packages/web/src/content/docs/docs/providers.mdx

+ 301 - 283
packages/web/src/content/docs/docs/providers.mdx

@@ -45,6 +45,126 @@ You can customize the base URL for any provider by setting the `baseURL` option.
 
 ---
 
+## Custom provider
+
+To add any **OpenAI-compatible** provider that's not listed in `opencode auth login`:
+
+:::tip
+You can use any OpenAI-compatible provider with opencode. Most modern AI providers offer OpenAI-compatible APIs.
+:::
+
+1. Run `opencode auth login` and scroll down to **Other**.
+
+   ```bash
+   $ opencode auth login
+
+   ┌  Add credential
+   │
+   ◆  Select provider
+   │  ...
+   │  ● Other
+   └
+   ```
+
+2. Enter a unique ID for the provider.
+
+   ```bash
+   $ opencode auth login
+
+   ┌  Add credential
+   │
+   ◇  Enter provider id
+   │  myprovider
+   └
+   ```
+
+   :::note
+   Choose a memorable ID, you'll use this in your config file.
+   :::
+
+3. Enter your API key for the provider.
+
+   ```bash
+   $ opencode auth login
+
+   ┌  Add credential
+   │
+   ▲  This only stores a credential for myprovider - you will need configure it in opencode.json, check the docs for examples.
+   │
+   ◇  Enter your API key
+   │  sk-...
+   └
+   ```
+
+4. Create or update your `opencode.json` file in your project directory:
+
+   ```json title="opencode.json" ""myprovider"" {5-15}
+   {
+     "$schema": "https://opencode.ai/config.json",
+     "provider": {
+       "myprovider": {
+         "npm": "@ai-sdk/openai-compatible",
+         "name": "My AI ProviderDisplay Name",
+         "options": {
+           "baseURL": "https://api.myprovider.com/v1"
+         },
+         "models": {
+           "my-model-name": {
+             "name": "My Model Display Name"
+           }
+         }
+       }
+     }
+   }
+   ```
+
+   Here are the configuration options:
+
+   - **npm**: AI SDK package to use, `@ai-sdk/openai-compatible` for OpenAI-compatible providers
+   - **name**: Display name in UI.
+   - **models**: Available models.
+   - **options.baseURL**: API endpoint URL.
+   - **options.apiKey**: Optionally set the API key, if not using auth.
+   - **options.headers**: Optionally set custom headers.
+
+   More on the advanced options in the example below.
+
+5. Run the `/models` command and your custom provider and models will appear in the selection list.
+
+---
+
+##### Example
+
+Here's an example setting the `apiKey` and `headers` options.
+
+```json title="opencode.json" {9,11}
+{
+  "$schema": "https://opencode.ai/config.json",
+  "provider": {
+    "myprovider": {
+      "npm": "@ai-sdk/openai-compatible",
+      "name": "My AI ProviderDisplay Name",
+      "options": {
+        "baseURL": "https://api.myprovider.com/v1",
+        "apiKey": "{env:ANTHROPIC_API_KEY}",
+        "headers": {
+          "Authorization": "Bearer custom-token"
+        }
+      },
+      "models": {
+        "my-model-name": {
+          "name": "My Model Display Name"
+        }
+      }
+    }
+  }
+}
+```
+
+We are setting the `apiKey` using the `env` variable syntax, [learn more](/docs/config#env-vars).
+
+---
+
 ## Directory
 
 Let's look at some of the providers in detail. If you'd like to add a provider to the
@@ -117,8 +237,30 @@ $ opencode auth login
 ```
 
-This will ask you login with your Anthropic account in your browser. Now all the
-the Anthropic models should be available when you use the `/models` command.
+Here you can select the **Claude Pro/Max** option and it'll open your browser
+and ask you to authenticate.
+
+```bash
+$ opencode auth login
+┌  Add credential
+│
+◇  Select provider
+│  Anthropic
+│
+◆  Login method
+│  ● Claude Pro/Max
+│  ○ Create API Key
+│  ○ Manually enter API Key
+└
+```
+
+Now all the the Anthropic models should be available when you use the `/models` command.
+
+##### Using API keys
+
+You can also select **Create API Key** if you don't have a Pro/Max subscription. It'll also open your browser and ask you to login to Anthropic and give you a code you can paste in your terminal.
+
+Or if you already have an API key, you can select **Manually enter API Key** and paste it in your terminal.
 
 ---
 
@@ -185,6 +327,78 @@ the Anthropic models should be available when you use the `/models` command.
 
 ---
 
+### DeepSeek
+
+1. Head over to the [DeepSeek console](https://platform.deepseek.com/), create an account, and click **Create new API key**.
+
+2. Run `opencode auth login` and select **DeepSeek**.
+
+   ```bash
+   $ opencode auth login
+
+   ┌  Add credential
+   │
+   ◆  Select provider
+   │  ● DeepSeek
+   │  ...
+   └
+   ```
+
+3. Enter your DeepSeek API key.
+
+   ```bash
+   $ opencode auth login
+
+   ┌  Add credential
+   │
+   ◇  Select provider
+   │  DeepSeek
+   │
+   ◇  Enter your API key
+   │  _
+   └
+   ```
+
+4. Run the `/models` command to select a DeepSeek model like _DeepSeek Reasoner_.
+
+---
+
+### Fireworks AI
+
+1. Head over to the [Fireworks AI console](https://app.fireworks.ai/), create an account, and click **Create API Key**.
+
+2. Run `opencode auth login` and select **Fireworks AI**.
+
+   ```bash
+   $ opencode auth login
+
+   ┌  Add credential
+   │
+   ◆  Select provider
+   │  ● Fireworks AI
+   │  ...
+   └
+   ```
+
+3. Enter your Fireworks AI API key.
+
+   ```bash
+   $ opencode auth login
+
+   ┌  Add credential
+   │
+   ◇  Select provider
+   │  Fireworks AI
+   │
+   ◇  Enter your API key
+   │  _
+   └
+   ```
+
+4. Run the `/models` command to select a model like _Kimi K2 Instruct_.
+
+---
+
 ### GitHub Copilot
 
 To use your GitHub Copilot subscription with opencode:
@@ -290,6 +504,78 @@ In this example:
 
 ---
 
+### Moonshot AI
+
+To use Kimi K2 from Moonshot AI:
+
+1. Head over to the [Moonshot AI console](https://platform.moonshot.ai/console), create an account, and click **Create API key**.
+
+2. Run `opencode auth login` and select **Other**.
+
+   ```bash
+   $ opencode auth login
+
+   ┌  Add credential
+   │
+   ◆  Select provider
+   │  ...
+   │  ● Other
+   └
+   ```
+
+3. Enter `moonshot` as the provider ID.
+
+   ```bash
+   $ opencode auth login
+
+   ┌  Add credential
+   │
+   ◇  Select provider
+   │  Other
+   │
+   ◇  Enter provider id
+   │  moonshot
+   └
+   ```
+
+4. Enter your Moonshot API key.
+
+   ```bash
+   $ opencode auth login
+
+   ┌  Add credential
+   │
+   ◇  Enter your API key
+   │  sk-...
+   └
+   ```
+
+5. Configure Moonshot in your opencode config.
+
+   ```json title="opencode.json" "\"moonshot\"" {5-15}
+   {
+     "$schema": "https://opencode.ai/config.json",
+     "provider": {
+       "moonshot": {
+         "npm": "@ai-sdk/openai-compatible",
+         "name": "Moonshot AI",
+         "options": {
+           "baseURL": "https://api.moonshot.ai/v1"
+         },
+         "models": {
+           "kimi-k2-0711-preview": {
+             "name": "Kimi K2"
+           }
+         }
+       }
+     }
+   }
+   ```
+
+6. Run the `/models` command to select _Kimi K2_.
+
+---
+
 ### Ollama
 
 You can configure opencode to use local models through Ollama.
@@ -435,8 +721,12 @@ https://platform.openai.com/api-keys
    }
    ```
 
+{ /*
 ---
 
+TODO: Test a model that actually works, currently getting errors form the API
+for Qwen non-thinking models.
+
 ### Cerebras
 
 Cerebras offers fast inference with generous free tiers and competitive pricing.
@@ -510,87 +800,15 @@ Cerebras offers fast inference with generous free tiers and competitive pricing.
 
 6. Run the `/models` command to select a Cerebras model.
 
----
-
-### DeepSeek
-
-DeepSeek offers powerful reasoning models at competitive prices.
-
-1. Head over to the [DeepSeek console](https://platform.deepseek.com/), create an account, and generate an API key.
-
-2. Run `opencode auth login` and select **Other**.
-
-   ```bash
-   $ opencode auth login
-
-   ┌  Add credential
-   │
-   ◆  Select provider
-   │  ...
-   │  ● Other
-   └
-   ```
-
-3. Enter `deepseek` as the provider ID.
-
-   ```bash
-   $ opencode auth login
-
-   ┌  Add credential
-   │
-   ◇  Select provider
-   │  Other
-   │
-   ◇  Enter provider id
-   │  deepseek
-   └
-   ```
-
-4. Enter your DeepSeek API key.
-
-   ```bash
-   $ opencode auth login
-
-   ┌  Add credential
-   │
-   ◇  Enter your API key
-   │  sk-...
-   └
-   ```
-
-5. Configure DeepSeek in your opencode config.
-
-   ```json title="opencode.json" "deepseek" {5-17}
-   {
-     "$schema": "https://opencode.ai/config.json",
-     "provider": {
-       "deepseek": {
-         "npm": "@ai-sdk/openai-compatible",
-         "name": "DeepSeek",
-         "options": {
-           "baseURL": "https://api.deepseek.com/v1"
-         },
-         "models": {
-           "deepseek-reasoner": {
-             "name": "DeepSeek Reasoner"
-           }
-         }
-       }
-     }
-   }
-   ```
-
-6. Run the `/models` command to select a DeepSeek model.
+*/ }
 
 ---
 
-### Moonshot AI (Kimi)
+### Together AI
 
-Moonshot AI offers the Kimi models with long context capabilities.
+1. Head over to the [Together AI console](https://api.together.ai), create an account, and click **Add Key**.
 
-1. Head over to the [Moonshot AI console](https://platform.moonshot.cn/), create an account, and generate an API key.
-
-2. Run `opencode auth login` and select **Other**.
+2. Run `opencode auth login` and select **Together AI**.
 
    ```bash
    $ opencode auth login
@@ -598,12 +816,12 @@ Moonshot AI offers the Kimi models with long context capabilities.
    ┌  Add credential
    ◆  Select provider
+   │  ● Together AI
    │  ...
-   │  ● Other
    ```
 
-3. Enter `moonshot` as the provider ID.
+3. Enter your Together AI API key.
 
    ```bash
    $ opencode auth login
@@ -611,214 +829,14 @@ Moonshot AI offers the Kimi models with long context capabilities.
    ┌  Add credential
    ◇  Select provider
-   │  Other
-   │
-   ◇  Enter provider id
-   │  moonshot
-   └
-   ```
-
-4. Enter your Moonshot API key.
-
-   ```bash
-   $ opencode auth login
-
-   ┌  Add credential
-   │
-   ◇  Enter your API key
-   │  sk-...
-   └
-   ```
-
-5. Configure Moonshot in your opencode config.
-
-   ```json title="opencode.json" "moonshot" {5-17}
-   {
-     "$schema": "https://opencode.ai/config.json",
-     "provider": {
-       "moonshot": {
-         "npm": "@ai-sdk/openai-compatible",
-         "name": "Moonshot AI",
-         "options": {
-           "baseURL": "https://api.moonshot.cn/v1"
-         },
-         "models": {
-           "kimi-k2-0711-preview": {
-             "name": "Kimi K2"
-           }
-         }
-       }
-     }
-   }
-   ```
-
-6. Run the `/models` command to select a Kimi model.
-
----
-
-### Custom
-
-To add any **OpenAI-compatible** provider that's not listed in `opencode auth login`:
-
-:::tip
-You can use any OpenAI-compatible provider with opencode. Most modern AI providers offer OpenAI-compatible APIs.
-:::
-
-1. Run `opencode auth login` and scroll down to **Other**.
-
-   ```bash
-   $ opencode auth login
-
-   ┌  Add credential
-   │
-   ◆  Select provider
-   │  ...
-   │  ● Other
-   └
-   ```
-
-2. Enter a unique ID for the provider.
-
-   ```bash
-   $ opencode auth login
-
-   ┌  Add credential
-   │
-   ◇  Enter provider id
-   │  myprovider
-   └
-   ```
-
-   :::note
-   Choose a memorable ID, you'll use this in your config file.
-   :::
-
-3. Enter your API key for the provider.
-
-   ```bash
-   $ opencode auth login
-
-   ┌  Add credential
-   │
-   ▲  This only stores a credential for myprovider - you will need configure it in opencode.json, check the docs for examples.
+   │  Together AI
    ◇  Enter your API key
-   │  sk-...
+   │  _
    ```
 
-4. Create or update your `opencode.json` file in your project directory:
-
-   ```json title="opencode.json" ""myprovider"" {5-15}
-   {
-     "$schema": "https://opencode.ai/config.json",
-     "provider": {
-       "myprovider": {
-         "npm": "@ai-sdk/openai-compatible",
-         "name": "My AI ProviderDisplay Name",
-         "options": {
-           "baseURL": "https://api.myprovider.com/v1"
-         },
-         "models": {
-           "my-model-name": {
-             "name": "My Model Display Name"
-           }
-         }
-       }
-     }
-   }
-   ```
-
-   Here are the configuration options:
-
-   - **npm**: AI SDK package to use, `@ai-sdk/openai-compatible` for OpenAI-compatible providers
-   - **name**: Display name in UI.
-   - **models**: Available models.
-   - **options.baseURL**: API endpoint URL.
-   - **options.apiKey**: Optionally set the API key, if not using auth.
-   - **options.headers**: Optionally set custom headers.
-
-   More on the advanced options in the example below.
-
-5. Run the `/models` command and your custom provider and models will appear in the selection list.
-
----
-
-##### Example
-
-Here's an example setting the `apiKey` and `headers` options.
-
-```json title="opencode.json" {9,11}
-{
-  "$schema": "https://opencode.ai/config.json",
-  "provider": {
-    "myprovider": {
-      "npm": "@ai-sdk/openai-compatible",
-      "name": "My AI ProviderDisplay Name",
-      "options": {
-        "baseURL": "https://api.myprovider.com/v1",
-        "apiKey": "{env:ANTHROPIC_API_KEY}",
-        "headers": {
-          "Authorization": "Bearer custom-token"
-        }
-      },
-      "models": {
-        "my-model-name": {
-          "name": "My Model Display Name"
-        }
-      }
-    }
-  }
-}
-```
-
-We are setting the `apiKey` using the `env` variable syntax, [learn more](/docs/config#env-vars).
-
-#### Common Examples
-
-**Together AI:**
-
-```json title="opencode.json"
-{
-  "$schema": "https://opencode.ai/config.json",
-  "provider": {
-    "together": {
-      "npm": "@ai-sdk/openai-compatible",
-      "name": "Together AI",
-      "options": {
-        "baseURL": "https://api.together.xyz/v1"
-      },
-      "models": {
-        "meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo": {
-          "name": "Llama 3.2 11B Vision"
-        }
-      }
-    }
-  }
-}
-```
-
-**Fireworks AI:**
-
-```json title="opencode.json"
-{
-  "$schema": "https://opencode.ai/config.json",
-  "provider": {
-    "fireworks": {
-      "npm": "@ai-sdk/openai-compatible",
-      "name": "Fireworks AI",
-      "options": {
-        "baseURL": "https://api.fireworks.ai/inference/v1"
-      },
-      "models": {
-        "accounts/fireworks/models/llama-v3p1-70b-instruct": {
-          "name": "Llama 3.1 70B"
-        }
-      }
-    }
-  }
-}
-```
+4. Run the `/models` command to select a model like _Kimi K2 Instruct_.
 
 ---