Agents

Chat Completions API

Legacy-compatible endpoint for Calypso Agents with message-based streaming.

Overview

Use Chat Completions when you need a classic message-based interface that is compatible with older OpenAI client patterns.

To call this API you need an API key. Start a free 14-day trial: app.calypso.ms/signup
  • Endpoint: POST /chat/completions
  • Base URL: http://ai.calypso.day/v1

Basic request

{
  "model": "calypso-support-agent",
  "messages": [
    { "role": "user", "content": "Draft a calm refund update message for {{name}}." }
  ]
}

Python (non-streaming)

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_CALYPSO_API_KEY",
    base_url="http://ai.calypso.day/v1"
)

resp = client.chat.completions.create(
    model="calypso-support-agent",
    messages=[
        {"role": "user", "content": "Draft a calm refund update message for {{name}}."}
    ]
)

print(resp.choices[0].message.content)

Streaming

Set stream=True to receive incremental deltas (chunked).

Python (streaming)

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_CALYPSO_API_KEY",
    base_url="http://ai.calypso.day/v1"
)

stream = client.chat.completions.create(
    model="calypso-support-agent",
    messages=[
        {"role": "user", "content": "Draft a calm refund update message for {{name}}."}
    ],
    stream=True
)

for chunk in stream:
    delta = chunk.choices[0].delta
    if delta and getattr(delta, "content", None):
        print(delta.content, end="")

JavaScript (Node.js streaming)

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.CALYPSO_API_KEY,
  baseURL: "http://ai.calypso.day/v1",
});

const stream = await client.chat.completions.create({
  model: "calypso-support-agent",
  messages: [{ role: "user", content: "Draft a calm refund update message for {{name}}." }],
  stream: true,
});

for await (const chunk of stream) {
  const delta = chunk.choices?.[0]?.delta?.content;
  if (delta) process.stdout.write(delta);
}