Use Augure with the Vercel AI SDK
Use Augure's Canadian, OpenAI-compatible API as a provider in the Vercel AI SDK with createOpenAICompatible and a custom baseURL.
Updated 2026-10-26 · Configuration shown as documented by the tool; not yet verified end to end by Augure. · Markdown version
You get Augure as a provider for generateText, streamText and the AI SDK UI hooks, with inference on Canadian infrastructure.
Prerequisites
- Node.js 18+ and
npm install ai @ai-sdk/openai-compatible. - An Augure API key (
aug_sk_live_…) from the developer dashboard. Plans and pricing: augureai.ca/developers. - The key exported as
AUGURE_API_KEY.
Configure
Create a provider with createOpenAICompatible and pass model ids as strings.
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { generateText } from "ai";
const augure = createOpenAICompatible({
name: "augure",
baseURL: "https://api.augureai.ca/v1",
apiKey: process.env.AUGURE_API_KEY,
});
const { text } = await generateText({
model: augure("tofino-3"),
prompt: "Say hello in one short sentence.",
maxOutputTokens: 64,
});
console.log(text);
Streaming to a terminal or a route handler:
import { streamText } from "ai";
const result = streamText({
model: augure("rosedale-1"),
prompt: "Hello",
});
for await (const part of result.textStream) process.stdout.write(part);
// In a Next.js route: return result.toUIMessageStreamResponse();
Tool calling uses the standard tools option with tool({ description, inputSchema, execute }), and generateObject / Output.object use response_format, which Augure supports.
If you already use @ai-sdk/openai, createOpenAI({ baseURL: "https://api.augureai.ca/v1", apiKey }) also works, but call openai.chat("ossington-5"): the default openai("...") model constructor uses OpenAI's Responses API, which Augure does not expose.
Pick a model
| Model | When to use |
|---|---|
ossington-5 |
Flagship reasoning. 256K context, 32,768 max output. Default for hard tasks. |
rosedale-1 |
Premium reasoning, up to 1M context on paid plans, Canadian inference. Long documents, agent loops. |
tofino-3 |
Fast everyday model, 256K context, 16,384 max output, no thinking. Chat, extraction, classification. |
augure("auto") lets the gateway pick. On ossington-5, reasoning_effort: "none" turns thinking off and is the fastest setting for mechanical tasks; low, medium and high are accepted on reasoning models; tofino-3 ignores it. In the AI SDK, pass it as providerOptions: { augure: { reasoningEffort: "none" } }, keyed by the name you gave createOpenAICompatible. If your SDK version rejects the value, use tofino-3, which never thinks. Full list: /docs/models.
Verify it works
Check residency with one direct call:
curl -s https://api.augureai.ca/v1/chat/completions \
-H "Authorization: Bearer $AUGURE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"tofino-3","max_tokens":64,"messages":[{"role":"user","content":"Reply with the single word OK."}]}'
The JSON ends with an _augure block, for example "_augure": {"gateway_region": "ca-montreal-1", "inference_region": "ca-on-toronto", "request_id": "..."}. inference_region tells you where the model ran. Inference is on Canadian infrastructure first, with disclosed failover to vetted EU partners under zero data retention, never the US.
Notes
- Option names follow AI SDK 5:
maxOutputTokensandinputSchema. AI SDK 4 usedmaxTokensandparameters. - The AI SDK sends
stream_options.include_usageitself;result.usageresolves after the stream ends. - Reasoning text from thinking models arrives in
reasoning_content; the openai-compatible provider exposes it as reasoning parts in recent versions, otherwise it is dropped and onlytextis returned. - OpenAI model aliases are accepted:
gpt-4omaps toossington-4,gpt-4o-minitotofino-3.