SDKs

OpenAI, Vercel AI SDK, Mastra, Python — alle drop-in.

Alles spricht das OpenAI-Schema. Behalte dein Framework und tausche nur die baseURL — oder nutze das offizielle @cleverrouter/sdk für typisierte Modell-IDs und Adapter.

client.ts
import OpenAI from 'openai';

export const client = new OpenAI({
  apiKey: process.env.CLEVERROUTER_API_KEY!,
  baseURL: 'https://cleverouter.eu/v1',
  defaultHeaders: {
    'X-CleverRouter-Strategy': 'default',
  },
});

const completion = await client.chat.completions.create({
  model: 'mistral/mistral-small-3.2',
  messages: [{ role: 'user', content: 'Bonjour' }],
});

Auch LangChain und LlamaIndex sind kompatibel — setze openai_api_base bzw. api_base auf https://cleverouter.eu/v1.

bun add ai @cleverrouter/sdk
provider.ts
import { createCleverRouterAI } from '@cleverrouter/sdk/ai-sdk';

export const cr = createCleverRouterAI({
  apiKey: process.env.CLEVERROUTER_API_KEY!,
});
generate.ts
import { generateText, streamText } from 'ai';
import { cr } from './provider';

const { text } = await generateText({
  model: cr('mistral/mistral-small-3.2'),
  prompt: 'Hallo aus der EU.',
});

// oder gestreamt
const result = await streamText({
  model: cr('mistral/mistral-small-3.2'),
  prompt: 'Schreib einen Haiku.',
});
for await (const chunk of result.textStream) {
  process.stdout.write(chunk);
}

generateObject mit Zod, tool(), streamUI — alles funktioniert wie im Vercel-AI-SDK üblich.

bun add @mastra/core @cleverrouter/sdk
agent.ts
import { Agent } from '@mastra/core/agent';
import { createCleverRouterMastra } from '@cleverrouter/sdk/mastra';

const cr = createCleverRouterMastra({
  apiKey: process.env.CLEVERROUTER_API_KEY!,
});

export const supportAgent = new Agent({
  name: 'support',
  model: cr('mistral/mistral-large-2'),
  instructions: 'Du bist Customer-Support. Antworte präzise, immer auf Deutsch.',
});

Memory, Tools und Workflows sind unverändert — Mastra ruft CleverRouter genauso auf wie OpenAI.

uv add openai
client.py
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["CLEVERROUTER_API_KEY"],
    base_url="https://cleverouter.eu/v1",
    default_headers={"X-CleverRouter-Strategy": "default"},
)

completion = client.chat.completions.create(
    model="mistral/mistral-small-3.2",
    messages=[{"role": "user", "content": "Hallo aus der EU."}],
)

Async-Variante mit AsyncOpenAI, Streaming mit stream=True — identisch zur offiziellen OpenAI-Doku.

Strategie pro Client

defaultHeaders (TS) bzw. default_headers (Python) ist der einfachste Weg, eine Routing-Strategie global zu setzen. Pro Request kann der Header dann gezielt überschrieben werden.

On this page

On this page

No Headings