Voici decision-machine-1 : un modèle de langage pour décider, pas pour rédiger

decision-machine-1 Disponible

Des décisions en moins d'une seconde.

Un modèle de langage pour les décisions à l'intérieur de vos logiciels. Il lit un message, un billet ou une page et renvoie une réponse typée avec une probabilité, sans jamais rédiger une phrase.

Latence typique
0,5–1,3 s
De bout en bout, transit réseau compris.
Prix
0,04 $
Par million de jetons d'entrée. La sortie est gratuite.
Capacités
Huit
Une décision typée chacune, plus une route compatible OpenAI.
Par requête
20 000 car.
Ou jusqu'à 32 textes en un seul lot.

01L'argument d'affaires

decision-machine-1

Décider cesse d'être le goulot d'étranglement.

Ce qui ralentit une entreprise, ce n'est pas le travail, c'est l'attente d'une décision. Celui-ci décide en environ une seconde, pour un centième du prix.

Plus de file d'attente
Des réponses en environ une seconde : les décisions se prennent pendant que le client est encore sur la page, pas la nuit en lot.
Tout évaluer
0,04 $ par million de jetons d'entrée, et rien pour la sortie. Vérifier chaque message coûte moins cher que déterminer lesquels ignorer.
Le doute, mesuré
Chaque réponse porte une probabilité. Les cas nets passent directement, les cas limites vont à une personne.
Défendable
Même entrée, même réponse typée, avec les scores qui l'appuient. Une décision présentable à un régulateur.

02Le modèle

decision-machine-1

C'est comme l'IA générative. Sans la génération.

Dans un logiciel, une réponse décide souvent d'un embranchement, d'un champ ou d'un score. L'application a besoin de la valeur, pas de la prose autour, alors decision-machine-1 s'arrête à la valeur.

  • Acheminer un message de soutien
    Avec un LLM Une consigne, une reprise quand le JSON revient malformé, et une seule étiquette qu'il faut croire sur parole.
    Avec decision-machine-1 L'étiquette, sa probabilité et le score de toutes les autres étiquettes proposées, en une seule réponse typée.
  • Extraire un champ d'un document
    Avec un LLM Un paragraphe à analyser, ou un schéma que le modèle remanie discrètement quand il lui prend d'ajouter un champ.
    Avec decision-machine-1 L'objet décrit par votre schéma JSON, typé, avec les positions de caractères d'où proviennent les valeurs.
  • Savoir quand il hésite
    Avec un LLM Demandez un indice de confiance et vous obtenez un nombre que le modèle a rédigé, pas un nombre qu'il a mesuré.
    Avec decision-machine-1 Une distribution de probabilités sur les options fournies. Deux étiquettes à 0,5 chacune, c'est un cas pour un humain, et il le dit.
  • Ce que coûte un appel
    Avec un LLM Vous payez la réflexion et la réponse, et les deux augmentent avec la question.
    Avec decision-machine-1 0,04 $ par million de jetons d'entrée. Le prix suit le texte envoyé, pas le nombre d'étiquettes, d'énoncés ou de questions posées à son sujet.
  • Ce que prend un appel
    Avec un LLM Des secondes, et une file d'attente derrière dès qu'il faut la réponse dans le chemin de la requête.
    Avec decision-machine-1 D'une demi-seconde à une seconde et un tiers, réseau compris. Sa place est dans le chemin de la requête.

03Spécification

decision-machine-1

Tout ce qu'il est, sur une page.

Un modèle hébergé, une URL de base, un prix. Ce qu'il ne fera pas fait partie de la spécification, ce n'est pas une réserve.

Modèle

Nom
decision-machine-1
Catégorie
Modèle de décision Fait partie de milliseconds.ai, une famille de modèles de décision rapides et précis par CloudRaker.
Tâche
Décisions typées sur du texte Classement, notation, sélection d'extraits et remplissage de schéma. Aucune génération libre.
Exécution
Modèles encodeurs sur CPU Aucun GPU dans le chemin de la requête, d'où le plancher de latence.
Disponibilité
API hébergée

Interface

Routes natives
POST /v1/decision-machine-1/{capability} Une route par capacité, chacune avec son type de requête et de réponse.
Compatible OpenAI
POST /v1/chat/completions Extraction et appel de fonctions depuis un client OpenAI que vous avez déjà.
Authentification
Authorization: Bearer sk-ms-... Requis sur chaque route /v1.

Limites

Entrée par texte
20 000 caractères Le texte de plus de 2 000 caractères est découpé automatiquement.
Lot
32 textes par requête Envoyez `text` ou `texts`, jamais les deux. Les résultats reviennent dans l'ordre d'entrée.
En-têtes de réponse
x-input-chars, x-input-tokens, x-inference-ms Chaque appel indique ce qu'il a lu et la durée de l'inférence.
Langue
Texte non anglais, étiquettes en anglais Le modèle lit le texte de l'étiquette : gardez les étiquettes en anglais.

Prix

Entrée
0,04 $ par million de jetons Le même prix sur chaque capacité et sur la route compatible OpenAI.
Sortie
0 $ Distributions de probabilités, extraits et résultats de lot ne coûtent rien, quelle que soit leur taille.

Hors périmètre

Génération
Aucune Chaque extrait renvoyé provient de votre entrée, avec ses positions. Il ne résume ni ne réécrit.
Raisonnement
Une seule passe Pas de chaîne de pensée, pas de délibération en plusieurs étapes.
Conversation
Sans état Pas de consigne système, aucun contexte entre les appels, pas de diffusion de jetons.

04Capacités

decision-machine-1

Un modèle. Huit capacités.

Chacune pose une question différente au même texte et répond dans son propre type. Choisissez celle qui correspond à la décision que votre code doit prendre.

curl -X POST https://api.milliseconds.ai/v1/decision-machine-1/yes-no \
  -H "Content-Type: application/json" \
  -H "authorization: Bearer sk-ms-..." \
  -d '{
    "text": "I need this fixed today, my launch is tomorrow.",
    "statements": [
      "The customer expresses urgency.",
      "The customer is asking about shipping."
    ]
  }'
{
  "results": [
    { "statement": "The customer expresses urgency.", "answer": true, "probability": 1 },
    { "statement": "The customer is asking about shipping.", "answer": false, "probability": 0 }
  ]
}
curl -X POST https://api.milliseconds.ai/v1/decision-machine-1/classify \
  -H 'content-type: application/json' \
  -H 'authorization: Bearer sk-ms-...' \
  -d '{
    "text": "I was charged twice for my subscription this month and support has not replied.",
    "labels": {
      "billing": "payments, invoices, charges, refunds",
      "shipping": "delivery, tracking, returns of physical goods",
      "account": "login, password, profile settings"
    }
  }'
{
  "label": "billing",
  "probability": 0.995,
  "confidence": 0.97,
  "scores": {
    "billing": 0.995,
    "shipping": 0,
    "account": 0.005
  }
}
curl -X POST https://api.milliseconds.ai/v1/decision-machine-1/classify-tree \
  -H 'content-type: application/json' \
  -H 'authorization: Bearer sk-ms-...' \
  -d '{
    "text": "62-year-old man with crushing substernal chest pain radiating to the left arm for 40 minutes, sweating, and ST elevation in leads II, III and aVF.",
    "tree": {
      "cardiovascular": {
        "description": "heart and blood vessels: chest pain, arrhythmia, heart failure, hypertension",
        "labels": {
          "ischemic": {
            "description": "reduced blood flow to the heart: angina, myocardial infarction",
            "labels": {
              "stemi": "ST-elevation myocardial infarction: ST elevation on the ECG",
              "nstemi": "non-ST-elevation myocardial infarction: troponin rise without ST elevation",
              "unstable_angina": "chest pain at rest without a troponin rise"
            }
          },
          "arrhythmia": "abnormal heart rhythm: palpitations, atrial fibrillation, bradycardia",
          "heart_failure": "fluid overload, breathlessness on exertion, swollen legs, reduced ejection fraction"
        }
      },
      "pulmonary": {
        "description": "lungs and airways: cough, breathlessness, wheeze, pneumonia",
        "labels": {
          "infection": "pneumonia or bronchitis: fever with a productive cough",
          "obstructive": "asthma or COPD: wheeze, chronic cough, smoking history",
          "embolism": "pulmonary embolism: sudden breathlessness, pleuritic pain, low oxygen"
        }
      },
      "gastrointestinal": "digestive tract: abdominal pain, nausea, vomiting, bleeding",
      "neurological": "brain and nerves: headache, seizure, weakness, numbness"
    }
  }'
{
  "path": ["cardiovascular", "arrhythmia"],
  "label": "arrhythmia",
  "probability": 0.739,
  "confidence": 0.433,
  "levels": [
    {
      "label": "cardiovascular",
      "probability": 0.982,
      "confidence": 0.93,
      "scores": {
        "cardiovascular": 0.982,
        "pulmonary": 0.001,
        "gastrointestinal": 0.001,
        "neurological": 0.016
      },
      "input_chars": 456,
      "input_tokens": 112,
      "inference_ms": 585
    },
    {
      "label": "arrhythmia",
      "probability": 0.753,
      "confidence": 0.466,
      "scores": {
        "ischemic": 0.241,
        "arrhythmia": 0.753,
        "heart_failure": 0.006
      },
      "input_chars": 401,
      "input_tokens": 98,
      "inference_ms": 578
    }
  ]
}
curl -X POST https://api.milliseconds.ai/v1/decision-machine-1/rate \
  -H "content-type: application/json" \
  -H "authorization: Bearer sk-ms-..." \
  -d '{
    "text": "Our production database is down and every customer request is failing right now.",
    "scale": ["No impact", "Minor inconvenience", "Degraded service", "Major outage"]
  }'
{"score":2.5,"level":2,"label":"Degraded service","confidence":0.5,"scores":[0,0,0.5,0.5]}
curl -X POST https://api.milliseconds.ai/v1/decision-machine-1/answer \
  -H "content-type: application/json" \
  -H "authorization: Bearer sk-ms-..." \
  -d '{
    "text": "Order 88214 shipped on 3 March 2026 from the Berlin warehouse. The customer, Maria Fischer, paid 249.00 EUR by credit card. Delivery is expected within five working days.",
    "question": "Who is the customer?"
  }'
{
  "question": "Who is the customer?",
  "answer": "Maria Fischer",
  "probability": 0.999,
  "start": 77,
  "end": 90
}
curl -X POST https://api.milliseconds.ai/v1/decision-machine-1/extract \
  -H "content-type: application/json" \
  -H "authorization: Bearer sk-ms-..." \
  -d '{
    "text": "INVOICE #4471\nBilled to: Acme Corp\nCurrency: USD\nPaid: yes\nTotal due: $2,676.00\nPayment terms: Net 30",
    "schema": {
      "type": "object",
      "title": "invoice",
      "properties": {
        "invoice_number": { "type": "string", "description": "invoice number" },
        "customer": { "type": "string", "description": "the company billed" },
        "total_due": { "type": "number", "description": "total amount due" },
        "net_terms_days": { "type": "integer", "description": "payment terms in days" },
        "paid": { "type": "boolean", "description": "is the invoice paid" },
        "currency": { "enum": ["USD", "EUR", "GBP"], "description": "currency code" }
      }
    }
  }'
{
  "data": {
    "invoice_number": "4471",
    "customer": "Acme Corp",
    "total_due": 2676,
    "net_terms_days": 30,
    "paid": true,
    "currency": "USD"
  }
}
curl -s -X POST https://api.milliseconds.ai/v1/decision-machine-1/entities \
  -H 'content-type: application/json' \
  -H 'authorization: Bearer sk-ms-...' \
  -d '{
    "text": "Tim Cook announced the iPhone 17 in Cupertino on 9 September.",
    "types": ["person", "product", "location"]
  }'
{
  "entities": [
    {"type": "person", "text": "Tim Cook", "probability": 0.999, "start": 0, "end": 8},
    {"type": "product", "text": "iPhone 17", "probability": 0.993, "start": 23, "end": 32},
    {"type": "location", "text": "Cupertino", "probability": 0.999, "start": 36, "end": 45}
  ]
}
curl -X POST https://api.milliseconds.ai/v1/decision-machine-1/verify \
  -H "content-type: application/json" \
  -H "authorization: Bearer sk-ms-..." \
  -d '{
    "text": "INVOICE #4471 - Acme Corp. Issued 2026-03-02. Net 30. Subtotal $2,500.00. Tax $176.00. Total due $2,676.00.",
    "field": {
      "name": "invoice_number",
      "description": "The invoice number printed on the document"
    },
    "value": "4471"
  }'
{"matches":true,"probability":0.689,"found":["4471"]}

05À côté de votre LLM

decision-machine-1

Gardez votre LLM. Appelez-le au besoin.

Ce n'est pas un remplacement. C'est une première passe. Exécutez d'abord la décision typée, peu coûteuse, acceptez les résultats qui franchissent votre seuil, et n'escaladez vers un grand modèle ou vers une personne que les cas ambigus.

Le seuil vous appartient, parce que le modèle vous donne les nombres pour le fixer : une probabilité, une confiance et le score de chaque option proposée. Quand deux étiquettes reviennent à 0,5 chacune, ce n'est pas un échec. C'est le modèle qui vous dit que le texte est réellement ambigu, et c'est précisément le cas qui mérite un second regard.

  • Acheminez selon les nombres. Acceptez au-dessus de votre seuil, escaladez en dessous.
  • Encadrez un appel au LLM, pour que le modèle coûteux ne voie que les cas qui l'exigent.
  • Vérifiez ce qu'un plus grand modèle a produit par rapport à la source qui lui a été fournie.

06Tarification

decision-machine-1

De petites décisions. À grande échelle.

Évaluez chaque message entrant, vérifiez chaque champ extrait, notez chaque billet. Le prix suit le texte envoyé : la facture suit donc votre trafic, pas le nombre de questions posées.

$ 0.04

par million de jetons d'entrée. La sortie est gratuite : distributions de probabilités, extraits et résultats de lot ne coûtent rien, quelle que soit leur taille.

Jetons de sortie
0 $
Chaque capacité, et la route compatible OpenAI
même prix
Étiquettes, énoncés et questions posés sur un texte
non facturés
Un court message de soutien
bien moins d'un cent

07Intégration

decision-machine-1

Gardez le client que vous avez déjà.

Une route compatible OpenAI accepte l'extraction par schéma JSON et l'appel de fonctions depuis n'importe quel client OpenAI. Pointez l'URL de base vers api.milliseconds.ai et indiquez le modèle. La conversation libre est rejetée avec un 400, volontairement.

curl -X POST https://api.milliseconds.ai/v1/chat/completions \
  -H "content-type: application/json" \
  -H "authorization: Bearer sk-ms-..." \
  -d '{
    "model": "decision-machine-1",
    "messages": [
      {
        "role": "user",
        "content": "Book me a table for 4 at Nobu on Friday at 8pm"
      }
    ],
    "response_format": {
      "type": "json_schema",
      "json_schema": {
        "name": "booking",
        "schema": {
          "type": "object",
          "properties": {
            "restaurant": { "type": "string" },
            "party_size": { "type": "integer" },
            "day": { "type": "string" },
            "time": { "type": "string" }
          }
        }
      }
    }
  }'
{
  "id": "chatcmpl-7f3a1c2e9b8d4e6f0a1b2c3d",
  "object": "chat.completion",
  "created": 1789000000,
  "model": "decision-machine-1",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "{\"restaurant\":\"Nobu\",\"party_size\":4,\"day\":\"Friday\",\"time\":\"8pm\"}"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 16,
    "total_tokens": 28
  }
}

08Dans Paperwork

decision-machine-1

Une couche de décision en moins d'une seconde pour une paperasse plus intelligente.

Voici le chemin d'une requête dans l'API Paperwork. decision-machine-1 est la première chose qu'elle touche. Il décide où va le travail, et s'il faut réveiller un modèle de raisonnement.

Toutes les étapes sauf la décision existent déjà sur CloudRaker. Ce que le modèle ajoute, c'est la possibilité de placer un jugement dans le chemin de la requête sans payer un grand modèle pour le rendre.

  1. Intent

    Une personne ou un agent demande quelque chose

    Un message, un billet, un fichier téléversé, un appel d'outil venant d'un agent.

    • Acheminer

      Agent

      Confier le travail au bon agent, avec l'étiquette déjà décidée.

    • Déclencher

      API

      Appeler la capacité choisie par la décision, et rien d'autre.

    • Décider

      Flux de travail

      Brancher un playbook, approuver, escalader ou retenir, sur un nombre.

    • Non

      Directement à l'action

      L'essentiel du trafic. La décision était tout le travail, et aucun grand modèle n'est réveillé.

    • Oui

      Appeler un modèle de raisonnement

      Le reste ambigu, et lui seul, ce qui maintient la facture stable.

      • rakedoc-nano
      • your LLM
  2. Paperwork capabilities

    Le travail lui-même

    Ce que la décision a choisi, exécuté sur le document : une surface, un contrat, une piste d'audit.

    • Parse
    • Classify
    • Split
    • Extract
    • Redact
    • Fill
    • Compose
    • Sign
  3. Output

    Une tâche accomplie, pas un paragraphe

    Des champs structurés, un document signé, un webhook vers le système d'enregistrement, avec la décision et sa probabilité rattachées à l'exécution.

09Questions

decision-machine-1

Des questions importantes, des réponses rapides.

Une sortie structurée signifie-t-elle que la réponse est juste ?

Non. Cela signifie que la réponse a la bonne forme et s'accompagne d'un nombre exploitable. Une réponse typée élimine les échecs d'analyse, pas l'erreur du modèle. D'où la probabilité et la distribution complète des scores à chaque appel, pour fixer un seuil et acheminer ce qui tombe en dessous.

Quand devrais-je plutôt utiliser un LLM ?

Dès que vous avez besoin de nouveau texte (un résumé, une réponse, une réécriture), d'un raisonnement en plusieurs étapes, ou de connaissances du monde absentes du texte envoyé. decision-machine-1 ne renvoie que des extraits de votre entrée et des scores sur les options que vous avez définies.

Que m'indiquent la probabilité et la confiance ?

La probabilité est le poids de l'option gagnante. La confiance décrit la netteté avec laquelle la distribution la sépare des autres. Une étiquette à 0,51 avec une confiance de 0,02 et une étiquette à 0,51 avec une confiance de 0,9 sont deux situations très différentes, et seule la seconde s'automatise sans risque.

Puis-je garder mon SDK OpenAI ?

Oui, pour l'extraction et l'appel de fonctions. Pointez l'URL de base de votre client vers https://api.milliseconds.ai et indiquez le modèle decision-machine-1. La conversation libre est rejetée avec un 400. Il n'y a pas de conversation à tenir.

Gère-t-il d'autres langues que l'anglais ?

Il lit du texte dans d'autres langues. Gardez les étiquettes, les énoncés, les questions et les descriptions de champs en anglais. C'est ce libellé que le modèle lit réellement pour noter vos options.

Quel est l'effet du traitement par lot sur le prix et la latence ?

Envoyez jusqu'à 32 textes en une requête et les résultats reviennent dans l'ordre d'entrée. La facturation porte sur les jetons d'entrée de chaque élément, et le surcoût de plusieurs questions sur un même texte est faible : deux énoncés mesurés à 0,49 s, trois questions à 0,40 s.

Où aller ensuite

decision-machine-1 est l'un de trois.

La même infrastructure sous chacun. Choisissez le modèle qui correspond à l'entrée dont vous disposez.

rakedoc-nano
Un modèle de vision à poids ouverts pour l'analyse de documents. Markdown propre, tableaux structurés et une boîte englobante sur chaque élément produit, jusqu'à la cellule de tableau.
Voir rakedoc-nano
rakeaudio-asr
De la parole au texte avec identification des locuteurs, parce qu'une conversation est un document elle aussi. Les enregistrements reviennent dans la même forme qu'une page.
Voir rakeaudio-asr
Commencer

Commencez par une vraie tâche.

Prenez un classement ou une extraction que vous envoyez déjà à un LLM. Comparez l'exactitude, la latence et le coût sur des entrées représentatives, puis gardez le gagnant.

milliseconds.ai est une catégorie de modèles de décision rapides et précis par CloudRaker, l'infrastructure de la paperasse pour l'ère agentique.

milliseconds