diff --git a/packages/core/src/family.ts b/packages/core/src/family.ts index 062d109ae6..27ca0be707 100644 --- a/packages/core/src/family.ts +++ b/packages/core/src/family.ts @@ -438,6 +438,9 @@ export const ModelFamilyValues = [ // Elephant "elephant", + + // Celeris Labs + "celeris", ] as const; export const ModelFamily = z.enum(ModelFamilyValues); diff --git a/providers/celeris/logo.svg b/providers/celeris/logo.svg new file mode 100644 index 0000000000..e1f2151923 --- /dev/null +++ b/providers/celeris/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/providers/celeris/models/celeris-1.toml b/providers/celeris/models/celeris-1.toml new file mode 100644 index 0000000000..55f9f461a9 --- /dev/null +++ b/providers/celeris/models/celeris-1.toml @@ -0,0 +1,32 @@ +name = "Celeris 1" +description = "General-purpose diffusion language model that generates tokens in parallel blocks rather than one at a time, for substantially lower latency" +family = "celeris" +release_date = "2026-07-23" +last_updated = "2026-07-23" +attachment = false +reasoning = false +temperature = true +tool_call = true +# The API does not implement `response_format`, so JSON mode and JSON-schema +# output are unavailable; structured output must go through tool calling. +structured_output = false +open_weights = false + +[cost] +# Pay-as-you-go rates, USD per million tokens, from the vendor's pricing page +# (accessed 2026-07-26): https://celeris.ai/pricing.html +# "$2 / M input tokens", "$6 / M output tokens". Input and output are metered +# separately; no cache pricing is published. +input = 2.0 +output = 6.0 + +[limit] +context = 8_192 +# Shared budget: prompt + completion must together stay under `context`. Declared +# as a 256-aligned value below `context` so that consumers which forward this +# field as `max_tokens` send a value the API accepts. +output = 4_096 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/celeris/provider.toml b/providers/celeris/provider.toml new file mode 100644 index 0000000000..04fd9f8228 --- /dev/null +++ b/providers/celeris/provider.toml @@ -0,0 +1,11 @@ +name = "Celeris" +env = ["CELERIS_API_KEY"] +npm = "@ai-sdk/openai-compatible" +# Celeris namespaces the base URL per model: https://inference.celeris.ai//v1 +# `celeris-1` is the only served model today, so the base URL is pinned to it. +# API exception (accessed 2026-07-26): POST /chat/completions requires `max_tokens` +# to be 1 (warm ping) or a positive multiple of 256; any other value returns 400. +# Prompt + max_tokens must also stay within the 8,192-token window. +# https://docs.celeris.ai/api-reference +api = "https://inference.celeris.ai/celeris-1/v1/" +doc = "https://docs.celeris.ai"