Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions core/llm/autodetect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ const PROVIDER_HANDLES_TEMPLATING: string[] = [
"sambanova",
"vertexai",
"watsonx",
"mallard",
"nebius",
"relace",
"openrouter",
Expand Down Expand Up @@ -128,6 +129,7 @@ const PROVIDER_SUPPORTS_IMAGES: string[] = [
"vertexai",
"azure",
"scaleway",
"mallard",
"nebius",
"ovhcloud",
"watsonx",
Expand Down Expand Up @@ -247,6 +249,7 @@ const PARALLEL_PROVIDERS: string[] = [
"novita",
"sambanova",
"ovhcloud",
"mallard",
"nebius",
"vertexai",
"function-network",
Expand Down
13 changes: 13 additions & 0 deletions core/llm/llms/Mallard.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { LLMOptions } from "../..";

import OpenAI from "./OpenAI";

class Mallard extends OpenAI {
static providerName = "mallard";
static defaultOptions: Partial<LLMOptions> = {
apiBase: "https://api.mallardai.co.uk/v1/",
useLegacyCompletionsEndpoint: false,
};
}

export default Mallard;
2 changes: 2 additions & 0 deletions core/llm/llms/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ import MockLLM from "./Mock";
import Moonshot from "./Moonshot";
import Msty from "./Msty";
import NCompass from "./NCompass";
import Mallard from "./Mallard";
import Nebius from "./Nebius";
import Nous from "./Nous";
import Novita from "./Novita";
Expand Down Expand Up @@ -118,6 +119,7 @@ export const LLMClasses = [
TestLLM,
Cerebras,
Asksage,
Mallard,
Nebius,
Nous,
Venice,
Expand Down
70 changes: 70 additions & 0 deletions docs/customize/model-providers/more/mallard.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: "Mallard AI"
description: "Configure Mallard AI with Continue to use open models through an OpenAI-compatible API, processed only in the UK with zero data retention"
---

<Info>
Mallard AI serves open models through an OpenAI-compatible API, processed
only in the UK with zero data retention. Create an account and an API key at
[mallardai.co.uk](https://mallardai.co.uk/account/). The [quick
start](https://mallardai.co.uk/docs/) covers the API.
</Info>

## Chat Model

We recommend configuring **Qwen3.6 35B A3B** as your chat model: 262K context window, tool calling and image input.

<Tabs>
<Tab title="YAML">
```yaml title="config.yaml"
name: My Config
version: 0.0.1
schema: v1

models:
- name: Qwen3.6 35B A3B
provider: mallard
model: qwen/qwen3.6-35b-a3b
apiKey: <YOUR_MALLARD_API_KEY>
capabilities:
- tool_use
- image_input
```
</Tab>
<Tab title="JSON">
```json title="config.json"
{
"models": [
{
"title": "Qwen3.6 35B A3B",
"provider": "mallard",
"model": "qwen/qwen3.6-35b-a3b",
"apiKey": "<YOUR_MALLARD_API_KEY>"
}
]
}
```
</Tab>
</Tabs>

## Reasoning

Reasoning is on by default. To switch it off, send `reasoning.enabled: false` with each request:

```yaml title="config.yaml"
models:
- name: Qwen3.6 35B A3B
provider: mallard
model: qwen/qwen3.6-35b-a3b
apiKey: <YOUR_MALLARD_API_KEY>
requestOptions:
extraBodyProperties:
reasoning:
enabled: false
```

## Autocomplete Model

Mallard AI doesn't offer an autocomplete model.

[Click here](../../model-roles/autocomplete) to see a list of autocomplete model providers.
1 change: 1 addition & 0 deletions docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@
"customize/model-providers/more/groq",
"customize/model-providers/more/llamacpp",
"customize/model-providers/more/llamastack",
"customize/model-providers/more/mallard",
"customize/model-providers/more/mimo",
"customize/model-providers/more/mistral",
"customize/model-providers/more/moonshot",
Expand Down
Binary file added gui/public/logos/mallard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions gui/src/pages/AddNewModel/configs/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2052,6 +2052,20 @@ export const models: { [key: string]: ModelPackage } = {
providerOptions: ["ovhcloud"],
isOpenSource: true,
},
qwen36_35b_a3b: {
title: "Qwen3.6 35B A3B",
description:
"Qwen3.6-35B-A3B is Qwen's open mixture-of-experts model for agents and coding, with image input and a 262K context window.",
refUrl: "https://huggingface.co/Qwen/Qwen3.6-35B-A3B",
params: {
title: "Qwen3.6 35B A3B",
model: "qwen/qwen3.6-35b-a3b",
contextLength: 262144,
},
icon: "qwen.png",
providerOptions: ["mallard"],
isOpenSource: true,
},
MistralSmall32: {
title: "Mistral Small 3.2 24B",
description:
Expand Down
24 changes: 24 additions & 0 deletions gui/src/pages/AddNewModel/configs/providers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1182,6 +1182,30 @@ To get started, [register](https://dataplatform.cloud.ibm.com/registration/stepo
],
apiKeyUrl: "https://chat.asksage.ai/",
},
mallard: {
title: "Mallard AI",
provider: "mallard",
refPage: "mallard",
description: "Open models processed only in the UK, with zero data retention",
longDescription: `Mallard AI serves open models through an OpenAI-compatible API, processed only in the UK with zero data retention. To get started with Mallard AI:\n1. Create an account and an API key at [mallardai.co.uk](https://mallardai.co.uk/account/)\n2. Paste it below\n3. Select a model preset`,
params: {
apiKey: "",
},
collectInputFor: [
{
inputType: "text",
key: "apiKey",
label: "API Key",
placeholder: "Enter your Mallard AI API key",
required: true,
},
...completionParamsInputsConfigs,
],
icon: "mallard.png",
tags: [ModelProviderTags.RequiresApiKey, ModelProviderTags.OpenSource],
packages: [models.qwen36_35b_a3b],
apiKeyUrl: "https://mallardai.co.uk/account/",
},
nebius: {
title: "Nebius AI Studio",
provider: "nebius",
Expand Down
Loading