Sessions
Agrupe requests da mesma conversa (chatbot, agente, fluxo multi-step) e veja custo total, tokens, modelos usados e duração no dashboard.
Por que usar Sessions
- Debug: uma session = uma conversa. Em vez de 20 linhas soltas em /usage, vê 1 entrada com tudo dentro.
- Atribuição de custo: "Quanto custou aquele atendimento do cliente X?" — abre a session correspondente.
- Comparação multi-modelo: session que usou
gpt-4o-miniem algumas mensagens eclaude-sonnet-46em outras aparece com ambos listados. - Integração natural com Prompts library: cada run do playground cria uma session com prefixo
prompt-<id>-<ts>.
Como funciona (3 passos)
- Gere um UUID por conversa no seu cliente (ou use o conversation_id que você já tem).
- Envie o header
x-tokia-session-id: <uuid>em cadaPOST /v1/chat/completionsdaquela conversa. - Abra /dashboard/sessions e veja os requests agrupados. Clique em uma session pra ver eventos cronológicos.
Exemplo Python
from openai import OpenAI
import uuid
tokia = OpenAI(
api_key="sk-...",
base_url="https://api.usetokia.com/v1",
)
session_id = str(uuid.uuid4()) # 1 UUID por conversa
# Mensagem 1 da conversa
resp1 = tokia.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Oi"}],
extra_headers={"x-tokia-session-id": session_id},
)
# Mensagem 2 da mesma conversa — REUSA o session_id
resp2 = tokia.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "user", "content": "Oi"},
{"role": "assistant", "content": resp1.choices[0].message.content},
{"role": "user", "content": "Pode resumir?"},
],
extra_headers={"x-tokia-session-id": session_id},
)
# /dashboard/sessions vai mostrar 1 session com 2 requestsExemplo JavaScript / Node
import OpenAI from "openai";
import { randomUUID } from "crypto";
const tokia = new OpenAI({
apiKey: process.env.TOKIA_API_KEY,
baseURL: "https://api.usetokia.com/v1",
});
const sessionId = randomUUID();
await tokia.chat.completions.create(
{ model: "claude-sonnet-46", messages: [{ role: "user", content: "Oi" }] },
{ headers: { "x-tokia-session-id": sessionId } },
);Exemplo curl
curl https://api.usetokia.com/v1/chat/completions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-H "x-tokia-session-id: $(uuidgen)" \
-d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Oi"}]}'Endpoints API
- GET /me/sessions?days=30&limit=100 — lista sessions (default últimos 30 dias)
- GET /me/sessions/<id> — eventos cronológicos da session
Limites
session_idaceita até 80 chars (uuid, slug, conversation_id do cliente — qualquer string)- Histórico exibido: últimos 90 dias (configurável via ?days=N)
- Máximo 500 sessions por chamada GET /me/sessions
- Máximo 500 eventos por session no GET /me/sessions/:id
Veja também
- Prompts library — playground integra automaticamente com Sessions
- Referência API completa
- Painel /dashboard/sessions (precisa estar logado)