Multi-turn chat

The API is stateless: every request carries the whole conversation. To continue a dialogue, append the assistant's reply to your messages array and send it back with the next user turn.

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 pattern

Python
import osfrom openai import OpenAI client = OpenAI(api_key=os.environ["ACTAVA_API_KEY"], base_url="https://inference.actava.ai/v1") history = [    {"role": "system", "content": "You are a clinical decision-support assistant."},] def ask(user_text: str) -> str:    history.append({"role": "user", "content": user_text})    response = client.chat.completions.create(        model="actava/cura-soar",        messages=history,    )    reply = response.choices[0].message.content    # Append the assistant turn so the next call sees the full conversation.    history.append({"role": "assistant", "content": reply})    return reply print(ask("55-year-old male, 2 days of pleuritic chest pain. Differential?"))print(ask("D-dimer is 2.1. What next?"))

Interactive diagnosis works exactly this way — Cura 1T's AgentClinic results come from methodical multi-turn evidence-gathering, so let it ask follow-ups instead of front-loading everything into one prompt.

Context budget

The window is 256K tokens shared by history + new generation. For long encounters, truncate oldest turns first but keep the system prompt and any standing clinical context; summarize dropped history into a single assistant note when continuity matters.

History and prompt caching

Resending the same growing prefix is the textbook prompt-cache case: earlier turns are served from cache instead of reprocessed. Keep the prefix byte-stable — don't re-order or re-serialize old turns between calls. See prompt caching.