문서

빠른 시작

일단 바로 시작하고 싶다면, 즉시 시작하는 데 필요한 모든 것을 여기에 모았습니다.

사용해 보기: Playground

  1. Playground를 열고 로그인하십시오.
  2. 아무 텍스트나 상태로 붙여 넣으십시오.

샘플 상태

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.
  1. 질문을 추가하십시오. Noul 질문을 시도해 보십시오: "Does this message express urgency?"
{
  "urgency": {
    "type": "noul",
    "instructions": "Does this message express urgency?"
  }
}
  1. 질문을 더 추가하십시오. 한 번의 호출에 Noul, Choice, Score를 섞어 모든 결과를 한꺼번에 보십시오.

호출하기: API

  1. dashboard에서 API 키를 받습니다.
  2. API 엔드포인트로 POST 요청을 보냅니다.
  3. 모든 세부 사항은 API 레퍼런스를 확인하십시오.
POST https://api.typesafe.ai/v1/systemone
Authorization: Bearer <API_KEY>
Content-Type: application/json

샘플 cURL 명령

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

요청 본문

{
  "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"
    }
  }
}

응답 본문

{
  "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
  }
}

모든 세부 사항은 API 레퍼런스를 참조하십시오.

코드로 쓰기: Python SDK

  1. SDK를 설치하십시오 (Python >= 3.10 필요).

pip 사용

pip install typesafe-sdk

uv 사용

uv add typesafe-sdk
  1. SDK를 사용하십시오. 클라이언트는 환경에서 TYPESAFE_API_KEY를 읽고 기본적으로 jev-latest를 호출합니다.
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

설치 옵션과 자세한 사용법은 클라이언트 SDK를 참조하십시오.

바이브로 쓰기: 에이전트 스킬

  1. Claude Code 플러그인이나 npx skills add typesafe-ai/skills --skill typesafe-ai로 TypeSafe 스킬을 설치하십시오. GitHub에서 SKILL.md를 읽어 볼 수도 있습니다.

터미널에서 다음 두 명령을 실행하십시오.

claude plugin marketplace add typesafe-ai/skills
claude plugin install typesafe@typesafe-ai
npx skills add typesafe-ai/skills --skill typesafe-ai

메시지가 나오면 에이전트를 선택하십시오. 설치는 기본적으로 프로젝트 로컬입니다. 전역으로 설치하려면 -g를 추가하십시오.

다음 프롬프트를 코딩 에이전트에 붙여 넣으십시오.

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.
  1. 코딩 에이전트에게 구축하면서 TypeSafe 스킬을 사용하라고 알려 주십시오!

코딩 에이전트 프롬프트

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.

자세한 내용은 에이전트 스킬 페이지를 참조하십시오.