Thinking mode
Cura 1T is a thinking model: it reasons before answering and returns the trace in message.reasoning_content. Thinking is on by default; the thinking parameter controls it.
Cura 1T is a research model, not a medical service, and not a substitute for a clinician. Benchmark scores do not establish safety for unsupervised clinical use.
The thinking parameter
| Field | Values | Behavior |
|---|---|---|
| thinking.type | "enabled" (default) · "disabled" | Turns reasoning on or off for the request. |
| thinking.keep | null (default) · "all" | Preserved Thinking: with "all", prior turns' reasoning stays in context — required for coherent multi-step tool use and long clinical workups. |
Read the reasoning
Python
from openai import OpenAIimport os client = OpenAI(api_key=os.environ["ACTAVA_API_KEY"], base_url="https://inference.actava.ai/v1") response = client.chat.completions.create( model="actava/cura-soar", # Thinking is ON by default; shown here for clarity. Pass "disabled" to turn it off. extra_body={"thinking": {"type": "enabled"}}, messages=[ {"role": "user", "content": "A 62-year-old on warfarin reports dark stools. What should happen next?"}, ],)msg = response.choices[0].messageprint(msg.reasoning_content) # the chain of thoughtprint(msg.content) # the final answerPreserved Thinking across turns
With keep: "all", send each assistant message back exactly as you received it — do not strip or edit reasoning_content:
Python
# Multi-turn with Preserved Thinking: pass thinking.keep="all" and send every# historical assistant message back UNCHANGED, including its reasoning_content.messages = [ {"role": "user", "content": "Summarize this patient's anticoagulation risk."},]first = client.chat.completions.create( model="actava/cura-soar", extra_body={"thinking": {"type": "enabled", "keep": "all"}}, messages=messages,)messages.append(first.choices[0].message) # keeps reasoning_content intactmessages.append({"role": "user", "content": "Now draft the handoff note."}) second = client.chat.completions.create( model="actava/cura-soar", extra_body={"thinking": {"type": "enabled", "keep": "all"}}, messages=messages,)Notes
- Reasoning tokens are billed as output. Budget max_tokens for the trace plus the answer.
- Truncation leaks the trace into content. If max_tokens cuts generation off mid-reasoning (finish_reason: "length"), the partial trace comes back in content and reasoning_content is absent — check finish_reason before displaying content.
- Streaming: deltas carry reasoning_content first, then content.