## Quickstart

1. Install the SDK:

- uv
   - pip

```
   uv add typesafe-sdk
   ```
   
   ```
   pip install typesafe-sdk
   ```

2. Set `TYPESAFE_API_KEY` in your environment (create it [here](https://console.typesafe.ai/))

3. Call the System One API:

- Async
   - Sync

With [AsyncTypeSafeClient](https://docs.typesafe.ai/sdk/python/api/clients/async):
   
   ```
   from typesafe_sdk import AsyncTypeSafeClient, Choice, Noul, Score
   
   async def main() -> None:
       async with AsyncTypeSafeClient() as client:
           response = await client.system_one(
               state={"document": "I was charged twice. Please fix this ASAP."},
               questions={
                   "billing": Noul(instructions="Is this ticket about billing?"),
                   "tone": Choice(
                       instructions="What is the customer's tone?",
                       criteria={"calm": None, "frustrated": None, "angry": None},
                   ),
                   "urgency": Score(
                       instructions="How urgent is this ticket?",
                       criteria=["can wait", "this week", "today"],
                   ),
               },
           )
   
       print(response.nouls["billing"].noul)
       print(response.choices["tone"].choice)
       print(response.scores["urgency"].score)
   ```

With [TypeSafeClient](https://docs.typesafe.ai/sdk/python/api/clients/sync):
   
   ```
   from typesafe_sdk import Choice, Noul, Score, TypeSafeClient
   
   with TypeSafeClient() as client:
       response = client.system_one(
           state={"document": "I was charged twice. Please fix this ASAP."},
           questions={
               "billing": Noul(instructions="Is this ticket about billing?"),
               "tone": Choice(
                   instructions="What is the customer's tone?",
                   criteria={"calm": None, "frustrated": None, "angry": None},
               ),
               "urgency": Score(
                   instructions="How urgent is this ticket?",
                   criteria=["can wait", "this week", "today"],
               ),
           },
       )
   
   print(response.nouls["billing"].noul)
   print(response.choices["tone"].choice)
   print(response.scores["urgency"].score)
   ```

## Usage

Learn more in the [Usage guide](https://docs.typesafe.ai/sdk/python/usage).
