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
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.