clef-flash

Text Generation • Cloudflare

@cf/cloudflare/clef-flash

  • Cloudflare-hosted
  • Vision

Clef-flash is a fast 9B multimodal decision model that turns a state and a schema of typed questions into decisions. It reads the state as text, JSON, images, or video, and returns a probability for every allowed option of every question.

Model Info
Context Window ↗ 24,576 tokens
Terms and License link ↗
More information link ↗
Vision Yes
Unit Pricing $0.038 per M input tokens

How media inputs are billed

Clef models convert media inputs to input tokens and bill them at the model's input token rate. Clef models do not charge for output tokens. For per-model rates, refer to pricing.

Images are tokenized as follows:

  1. Resize: The image keeps its aspect ratio, but:
  2. Each side is rounded to a multiple of 32 pixels.
  3. If the area is under about 65,000 pixels (256x256), it is scaled up to reach that.
  4. If the area is over about 1 megapixel, it is scaled down to fit.
  5. Count patches: Each 32x32-pixel block is one token: tokens = (width / 32) x (height / 32).
  6. Add markers: 3 tokens are added to mark where the image starts and ends.

Each image is capped at 1,024 tokens.

Media tokens count toward the model's context window, together with the questions. If they exceed the context window, the request fails. Otherwise, the text state is truncated to fit the remaining space.

Usage

export interface Env {
    AI: Ai;
}

export default {
    async fetch(request, env): Promise<Response> {
        const response = await env.AI.run("@cf/cloudflare/clef-flash", {
            model: "clef-flash",
            state: "Checkout has been failing for every customer for the last hour.",
            questions: {
                urgent: {
                    type: "noul",
                    instructions: "Is this support request urgent?",
                },
                team: {
                    type: "choice",
                    instructions: "Which team should handle this request?",
                    criteria: {
                        billing: "Payments, invoices, and refunds",
                        technical: "Outages, errors, and configuration",
                        sales: "Plans and upgrades",
                    },
                },
                severity: {
                    type: "score",
                    instructions: "How severe is the customer impact?",
                    criteria: ["No impact", "Minor", "Major", "Critical"],
                },
            },
        });

        // response.answers.urgent   -> probability the request is urgent
        // response.answers.team     -> chosen team with per-option probabilities
        // response.answers.severity -> probability-weighted score (0 = lowest level)
        return Response.json(response);
    },
} satisfies ExportedHandler<Env>;
import os
import requests

ACCOUNT_ID = "your-account-id"
AUTH_TOKEN = os.environ.get("CLOUDFLARE_AUTH_TOKEN")

response = requests.post(
    f"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/@cf/cloudflare/clef-flash",
    headers={"Authorization": f"Bearer {AUTH_TOKEN}"},
    json={
        "model": "clef-flash",
        "state": "Checkout has been failing for every customer for the last hour.",
        "questions": {
            "urgent": {
                "type": "noul",
                "instructions": "Is this support request urgent?",
            },
            "team": {
                "type": "choice",
                "instructions": "Which team should handle this request?",
                "criteria": {
                    "billing": "Payments, invoices, and refunds",
                    "technical": "Outages, errors, and configuration",
                    "sales": "Plans and upgrades",
                },
            },
            "severity": {
                "type": "score",
                "instructions": "How severe is the customer impact?",
                "criteria": ["No impact", "Minor", "Major", "Critical"],
            },
        },
    },
)
print(response.json())
curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run/@cf/cloudflare/clef-flash \
  -X POST \
  -H "Authorization: Bearer $CLOUDFLARE_AUTH_TOKEN" \
  -d '{
    "model": "clef-flash",
    "state": "Checkout has been failing for every customer for the last hour.",
    "questions": {
      "urgent": { "type": "noul", "instructions": "Is this support request urgent?" },
      "team": {
        "type": "choice",
        "instructions": "Which team should handle this request?",
        "criteria": {
          "billing": "Payments, invoices, and refunds",
          "technical": "Outages, errors, and configuration",
          "sales": "Plans and upgrades"
        }
      },
      "severity": {
        "type": "score",
        "instructions": "How severe is the customer impact?",
        "criteria": ["No impact", "Minor", "Major", "Critical"]
      }
    }
  }'

Parameters

model

stringrequiredpattern: ^\s*(clef|clef-flash)\s*$Required. The model selector: "clef" for @cf/cloudflare/clef, "clef-flash" for @cf/cloudflare/clef-flash.

state

requiredRequired. The content to evaluate: a string, or structured data (object/array) such as records, chat logs, or application state. Long text state is truncated to fit the model's token limit.

▶questions{}

objectrequiredminProperties: 1maxProperties: 64Map of question id to a typed question (noul, choice, or score). 1 to 64 questions; ids may use letters, digits, '_', '.', '-' (max 100 chars). Answers are returned under the same ids.

▶images[]

arraymaxItems: 4Clef extension to the System One API. Optional embedded PNG, JPEG, or WebP images placed before the state (max 4; 4 MiB and 16 megapixels each, 8 MiB total decoded; whole request body max 13 MiB). Remote URLs are not accepted.

model

stringThe model that performed the evaluation.

▶answers{}

objectOne answer per question, keyed by the question ids from the request.

▶usage{}

object

API Schemas (Raw)

Input Open Download

Output Open Download

Was this helpful?

YesNo

On this page

clef-flash - 图1Docs

{"@context":"https://schema.org","@type":"TechArticle","@id":"https://developers.cloudflare.com/workers-ai/models/clef-flash/#page","headline":"clef-flash","description":"Clef-flash is a fast 9B multimodal decision model that turns a state and a schema of typed questions into decisions. It reads the state as text, JSON, images, or video, and returns a probability for every allowed option of every question.","url":"https://developers.cloudflare.com/workers-ai/models/clef-flash/","inLanguage":"en","image":"https://developers.cloudflare.com/og-docs.png","publisher":{"@type":"Organization","name":"Cloudflare","description":"One platform for your apps, agents, and workforce. Build, secure, and scale without managing infrastructure","url":"https://www.cloudflare.com/","sameAs":["https://github.com/cloudflare","https://www.linkedin.com/company/cloudflare","https://x.com/cloudflare"],"logo":{"@type":"ImageObject","url":"https://developers.cloudflare.com/logo.svg"},"address":{"@type":"PostalAddress","streetAddress":"101 Townsend St","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94107","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"Customer Support","url":"https://support.cloudflare.com/","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"Sales","url":"https://www.cloudflare.com/contact/","availableLanguage":["English"]}]},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"}}


description: Clef-omni is a multimodal decision model built on a 30B-parameter mixture-of-experts (3B active) backbone. It turns a state and a schema of typed questions into decisions, reads the state as text, JSON, images, audio, or video, and returns a probability for every allowed option of every question. title: clef-omni image: https://developers.cloudflare.com/og-docs.png


Skip to content

Documentation Index
Fetch the complete documentation index at: https://developers.cloudflare.com/llms.txt
Use this file to discover all available pages before exploring further.

Cloudflare logo