strike-1 answers yes/no, choice, and score questions over text. That path is unchanged.
Three more things are available if you ask for them on the request. They are a preview. Image and box answers are uneven, and the longer window is slower. Do not put them on a production path.
The request shape, limits, and error codes are in the Danger zone docs. This post is the short version: what the switches do, and one example of each.
Preview: Strike is in beta. These three extras stay off unless the request opts in. Probabilities are uncalibrated, and a box answer is not reliable enough to drive a workflow.
Opt in on the request
The switches are headers. A value of true, 1, or yes turns one on.
| What you want | Header |
|---|---|
| More text | Strike-Danger-Zone-Long-Context: true |
| Images and a box | Strike-Danger-Zone-Images: true |
If a TypeSafe client already sends TypeSafe-Danger-Zone-Long-Context or TypeSafe-Danger-Zone-Images, Strike accepts those names as the same switches.
Set model to strike-preview. It is the same public model as strike-1. The headers are what change the request.
A longer window
Without the long-context header, a request is limited to 8,192 tokens. That is about 32,000 characters of state plus the question text. With the header, the limit rises to 32,768 tokens and 128,000 characters.
That is the window we can score on one GPU. It is not an unlimited context, and it is not 262,000 tokens. Past the long window the API returns 400 with max_tokens_exceeded. Over the default window, without the header, the code is danger_zone_required.
Text-only calls to strike-1 do not need this header. Leave it off unless the state is actually longer than the default window.
Images
Send each picture once, under assets, and mention that reference in state, instructions, or criteria. PNG or JPEG, still images only. Each side must be between 280 and 1024 pixels. At most four images, and 4 MiB each. Strike does not resize a file that is outside those limits. It rejects it.
{
"model": "strike-preview",
"state": { "photo": "6e1d0b7c-door" },
"assets": {
"6e1d0b7c-door": { "type": "image", "format": "jpg", "data_base64": "..." }
},
"questions": {
"person": {
"type": "noul",
"instructions": "Is there a person in `photo`?"
}
}
}
Send Strike-Danger-Zone-Images: true with that body. Without the header, the API returns danger_zone_required. A file that is not a still PNG or JPEG returns invalid_image.
You can also post multipart: a request part with the JSON, and a file part named by assets.*.part. The Python client does that when you pass Image(...):
from strike import Box, Client, Image
client = Client()
result = client.system_one(
model="strike-preview",
state={"door": Image("door.jpg")},
questions={
"person": {"type": "noul", "instructions": "Is there a person in `door`?"},
"where": Box("the person in `door`"),
},
)
Image(...) sets the images header. Pass long_context=True when you also need the longer window.
One box
A box question returns one rectangle. The edges are fractions of the image width and height, measured from the top-left. left is less than right, and top is less than bottom.
"where": { "type": "box", "instructions": "the person in `photo`" }
{
"type": "box",
"box": { "top": 0.25, "bottom": 0.82, "left": 0.44, "right": 0.84 },
"confidence": 0.92
}
There is no "not found". The answer is always a box, including when the thing you named is absent. If absence matters, ask a yes/no question in the same request and ignore the box when that probability is low. The example above does both: person says whether anyone is there, and where says which region the model picked.
Strike does not emit four free numbers. It splits the current crop into a 4 by 4 grid of tiles, picks one tile, and repeats that three times. confidence is the product of those three picks. Small targets get missed. Crop the image first if the object is only a few dozen pixels wide.
A box question needs the images header, the same as an assets map.
Try it
The playground has a Danger zone switch. Turn it on and the Box type, an image field, and strike-preview show up. The prompt limit on that screen rises with the switch. Leave the switch off and the playground stays on the text questions.