STRIKE / BLOG

Introducing Strike: typed AI decisions, hosted in the EU

Strike is an EU-hosted API that answers yes/no, choice and score questions with a probability for every option. Meet strike-1 and the /v1/systemone endpoint.

Introducing Strike: typed AI decisions, hosted in the EU

Most of the time, when software asks a language model something, it doesn't want prose. It wants a decision: is this ticket urgent?, which team should handle it?, how frustrated is this customer, on a scale we define? Then it parses a paragraph of text, hopes the format holds, and writes glue code for the day it doesn't.

Strike is our answer to that. It's an API that takes some content and a set of typed questions, and returns typed answers, each with probabilities. It is hosted in the EU and built GDPR-first.

Preview: Strike is in preview. The API currently runs in mock mode, so the answers and probabilities it returns are placeholders, not real model output. The request and response shapes below are the ones we are building on, and you can start integrating against them today.

What Strike does

You send three things:

  • state: the content to evaluate. A string, or structured data such as a support ticket, a chat log or a record.
  • questions: a map of questions you name yourself. Each one has a type.
  • model: strike-1, our first model.

There are three question types:

| Type | What you ask | What you get back | |---|---|---| | noul | A yes/no question | A value between 0 (no) and 1 (yes) | | choice | Pick one option from a set you define | The top option plus a probability for every option | | score | Rate along levels you define | A probability-weighted score plus a probability per level |

Answers come back under the same keys you used for the questions. Your code never has to parse free text.

A first request

curl https://api.strike-ai.eu/v1/systemone \
  -H "Authorization: Bearer $STRIKE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "strike-1",
    "state": "My card was charged twice for the same order. Please fix this today.",
    "questions": {
      "is_urgent": {
        "type": "noul",
        "instructions": "Does the customer express time pressure?"
      },
      "team": {
        "type": "choice",
        "instructions": "Which team should handle this message?",
        "criteria": {
          "billing": "Payments, refunds, invoices",
          "technical": "Bugs, outages, integrations",
          "other": null
        }
      }
    }
  }'

The response has one answer per question:

{
  "model": "strike-1",
  "answers": {
    "is_urgent": { "type": "noul", "noul": 0.9 },
    "team": {
      "type": "choice",
      "choice": "billing",
      "probabilities": { "billing": 0.8, "technical": 0.15, "other": 0.05 },
      "confidence": 0.7
    }
  }
}

(Values are illustrative.)

Because each answer is typed, you can branch on it directly: route on team.choice, escalate when is_urgent.noul passes a threshold you choose, or send low-confidence cases to a human.

Why probabilities?

A bare label hides how sure the system was. A probability for each option lets you decide what to automate and what to review, and lets you tune that trade-off for each use case. We explain what these numbers mean, and what "calibration" means, in a separate post. We won't make calibration claims about strike-1 until we can back them with published measurements.

Hosted in the EU, GDPR-first

Strike runs in an EU region. By default, prompts and outputs are not stored. See our privacy notice for what we process, where, and for how long.

<!-- EDITOR: confirm hosting wording against the final privacy notice before publishing. -->

Compatible with the Jev /v1/systemone API

If you already know the Jev API from TypeSafe, Strike will look familiar. We're building Strike to be wire-compatible with the /v1/systemone request shape (model, state, questions, with noul, choice and score questions). Strike is an independent product and is not affiliated with TypeSafe. See the API reference and docs.

Under the hood

strike-1 is built on Qwen2.5-7B-Instruct, an open-weight model released under the Apache 2.0 licence. Strike is not affiliated with or endorsed by Alibaba Cloud.

What's next

While Strike is in preview, we'd love to hear which decisions you want to automate. Tell us, and we'll build with you.

← All posts · Home