Início rápido
Preferes simplesmente começar? Aqui tens tudo o que precisas para arrancar de imediato.
Experimenta: o Playground
- Abre o Playground e inicia sessão.
- Cola qualquer texto como estado.
Estado de exemplo
Hi, I've been trying to connect my Stripe account for 3 days and the integration keeps failing. I'm losing sales. Please help ASAP.
- Adiciona uma pergunta. Experimenta uma pergunta Noul:
"Does this message express urgency?"
{
"urgency": {
"type": "noul",
"instructions": "Does this message express urgency?"
}
}
- Adiciona mais perguntas. Mistura Noul, Choice e Score numa única chamada e vê todos os resultados ao mesmo tempo.
Chama: a API
- Obtém a tua chave de API no painel
- Faz um pedido POST ao endpoint da API
- Consulta a Referência da API para todos os detalhes.
POST https://api.typesafe.ai/v1/systemone
Authorization: Bearer <API_KEY>
Content-Type: application/json
Comando cURL de exemplo
curl -X POST https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d @- <<'EOF'
{
"state": "Hi, I've been trying to connect my Stripe account for 3 days and the integration keeps failing. I'm losing sales. Please help ASAP.",
"model": "jev-latest",
"questions": {
"urgency": {
"type": "noul",
"instructions": "Does this message express urgency?"
}
}
}
EOF
Corpo do pedido
{
"state": "Hi, I've been trying to connect my Stripe account for 3 days and the integration keeps failing. I'm losing sales. Please help ASAP.",
"model": "jev-latest",
"questions": {
"department": {
"type": "choice",
"instructions": "Which team should handle this",
"criteria": {
"billing": "Payment or subscription issues",
"technical": "Bugs or integration problems",
"sales": "Pricing or account questions"
}
},
"frustration": {
"type": "score",
"instructions": "How frustrated the customer appears",
"criteria": [
"Calm, just stating facts",
"Frustrated but civil",
"Very angry, strong language"
]
},
"is_urgent": {
"type": "noul",
"instructions": "The message conveys urgency or time-sensitivity"
}
}
}
Corpo da resposta
{
"model": "jev-1.13.0",
"answers": {
"department": {
"type": "choice",
"choice": "technical",
"confidence": 0.78,
"probabilities": {
"technical": 0.85,
"sales": 0.0,
"billing": 0.15
}
},
"frustration": {
"type": "score",
"score": 1.0,
"confidence": 1.0,
"legend": {
"0": "Calm, just stating facts",
"1": "Frustrated but civil",
"2": "Very angry, strong language"
},
"probabilities": {
"0": 0.0,
"1": 1.0,
"2": 0.0
}
},
"is_urgent": {
"type": "noul",
"noul": 1.0
}
},
"usage": {
"input_tokens": 392,
"output_tokens": 65
}
}
Consulta a Referência da API para todos os detalhes.
Programa: o SDK de Python
- Instala o SDK (requer Python >= 3.10).
Com pip
pip install typesafe-sdk
Com uv
uv add typesafe-sdk
- Usa o SDK. O cliente lê
TYPESAFE_API_KEYdo ambiente e chamajev-latestpor predefinição.
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient
client = TypeSafeClient()
ticket = "Hi, I've been trying to connect my Stripe account for 3 days and the integration keeps failing. I'm losing sales. Please help ASAP."
response = client.system_one(
state=ticket,
questions={
"department": Choice(
instructions="Which team should handle this",
criteria={
"billing": "Payment or subscription issues",
"technical": "Bugs or integration problems",
"sales": "Pricing or account questions",
},
),
"frustration": Score(
instructions="How frustrated the customer appears",
criteria=[
"Calm, just stating facts",
"Frustrated but civil",
"Very angry, strong language",
],
),
"is_urgent": Noul(
instructions="The message conveys urgency or time-sensitivity",
),
},
)
print(response.answers["department"].choice) # "technical"
print(response.answers["frustration"].score) # 1.0
print(response.answers["is_urgent"].noul) # 1.0
Vê os SDK de cliente para opções de instalação e utilização detalhada.
Vibe: a skill de agente
- Instala a skill da TypeSafe com o plugin do Claude Code ou
npx skills add typesafe-ai/skills --skill typesafe-ai. Também podes ler o SKILL.md no GitHub.
Executa estes dois comandos no teu terminal:
claude plugin marketplace add typesafe-ai/skills
claude plugin install typesafe@typesafe-ainpx skills add typesafe-ai/skills --skill typesafe-aiEscolhe o teu agente quando te for pedido. A instalação é local ao projeto por predefinição; adiciona -g para instalar globalmente.
Cola este prompt no teu agente de código:
Install the TypeSafe skill. If you're in Claude Code, run `claude plugin marketplace add typesafe-ai/skills`, then `claude plugin install typesafe@typesafe-ai`. If you're in another agent, run `npx skills add typesafe-ai/skills --skill typesafe-ai` and select your agent. Use one installation method. You can read the skill directly at https://github.com/typesafe-ai/skills/blob/main/skills/typesafe-ai/SKILL.md (raw: https://raw.githubusercontent.com/typesafe-ai/skills/main/skills/typesafe-ai/SKILL.md). Then use the TypeSafe skill when working on this project.- Diz ao teu agente de código para usar a skill da TypeSafe enquanto constróis!
Prompt para o agente de código
Let's build a simple CLI that uses the TypeSafe API to evaluate a set of supplied documents on multiple dimensions. Use the TypeSafe skill to understand how to use the TypeSafe API and how to structure the system. Ask me questions about what kinds of documents I want to evaluate and on what dimensions.
Vê a página Skill de agente para mais detalhes.