Documentation

Client synchrone

Utilise TypeSafeClient pour poser des questions, lister les modèles et configurer des requêtes synchrones vers l’API TypeSafe.

typesafe_sdk.TypeSafeClient

TypeSafeClient(
    *,
    api_key: str | None = None,
    model: str | None = None,
    retry: RetryPolicy | None = None,
    timeout: float
    | httpx2.Timeout
    | None = None,
    headers: Mapping[str, str] | None = None,
    transport: httpx2.BaseTransport
    | None = None,
    http_client: httpx2.Client | None = None,
    base_url: str | None = None,
)

Crée un client HTTP pour l’API de TypeSafe AI.

Les options explicites ont priorité sur les variables d’environnement ; les valeurs d’environnement vides ou composées uniquement d’espaces sont ignorées.

Paramètres :

  • api_key (str | None, valeur par défaut : None ) –

    Clé d’API obligatoire ; peut être définie via la variable d’environnement TYPESAFE_API_KEY. Les espaces de début et de fin sont supprimés. Les clés vides, les espaces internes, les caractères de contrôle et les caractères non ASCII sont rejetés.

  • model (str | None, valeur par défaut : None ) –

    Nom du modèle ; peut être défini via la variable d’environnement TYPESAFE_DEFAULT_MODEL.

  • retry (RetryPolicy | None, valeur par défaut : None ) –

    Un RetryPolicy qui contrôle le comportement de réessai ; consulte RetryPolicy pour les options disponibles et leurs valeurs par défaut. Passe RetryPolicy(max_retries=0) pour désactiver les nouvelles tentatives.

  • timeout (float | httpx2.Timeout | None, valeur par défaut : None ) –

    Délai d’expiration des opérations HTTP. Hérite de http_client.timeout lorsqu’il est fourni, sinon de la valeur par défaut du SDK.

  • headers (Mapping[str, str] | None, valeur par défaut : None ) –

    En-têtes de requête supplémentaires à définir.

  • transport (httpx2.BaseTransport | None, valeur par défaut : None ) –

    Transport HTTP personnalisé facultatif, fermé lorsque ce client du SDK se ferme.

  • http_client (httpx2.Client | None, valeur par défaut : None ) –

    httpx2.Client facultatif ; mutuellement exclusif avec transport. Fermé lorsque ce client du SDK se ferme.

  • base_url (str | None, valeur par défaut : None ) –

    Racine de l’API ; peut être définie via la variable d’environnement TYPESAFE_BASE_URL.

Exceptions :

  • TypeSafeError –

    La clé d’API est manquante ou invalide, ou le délai d’expiration est invalide.

  • ValueError –

    transport et http_client sont tous les deux fournis.

Exemples :

from typesafe_sdk import Choice, Noul, TypeSafeClient

with TypeSafeClient() as client:
    result = client.system_one(
        state="I was charged twice. Please help.",
        questions={
            "billing": Noul(instructions="Is this about billing?"),
            "tone": Choice(
                instructions="What is the tone?",
                criteria={"calm": None, "angry": None},
            ),
        },
    )
    assert 0 <= result.nouls["billing"].noul <= 1
    assert result.choices["tone"].choice in {"calm", "angry"}

models

cached property

models: Models

Un accesseur pour la ressource API Models.

Exemples :

with TypeSafeClient() as client:
    models = client.models.list()

system_one

system_one(
    state: JSONContent,
    questions: Mapping[str, Question],
    *,
    model: str | None = None,
    retry: RetryPolicy | None = None,
    timeout: float
    | httpx2.Timeout
    | None = None,
    extra_headers: Mapping[str, str]
    | None = None,
    extra_body: Mapping[str, JSONValue | None]
    | None = None,
    response_model: type[ResponseT]
    | None = None,
) -> SystemOneResponse | ResponseT
system_one(
    state: JSONContent,
    questions: Mapping[str, Question],
    *,
    model: str | None = None,
    retry: RetryPolicy | None = None,
    timeout: float
    | httpx2.Timeout
    | None = None,
    extra_headers: Mapping[str, str]
    | None = None,
    extra_body: Mapping[str, JSONValue | None]
    | None = None,
    response_model: None = None,
) -> SystemOneResponse
system_one(
    state: JSONContent,
    questions: Mapping[str, Question],
    *,
    model: str | None = None,
    retry: RetryPolicy | None = None,
    timeout: float
    | httpx2.Timeout
    | None = None,
    extra_headers: Mapping[str, str]
    | None = None,
    extra_body: Mapping[str, JSONValue | None]
    | None = None,
    response_model: type[ResponseT],
) -> ResponseT

Réponds à des questions nommées sur du texte ou un état structuré.

Consulte System One pour plus de détails.

Paramètres :

  • state (JSONContent) –

    Du texte, un objet JSON ou un tableau à évaluer. Consulte state pour plus de détails.

  • questions (Mapping[str, Question]) –

    Mapping non vide de noms vers des objets question ou des dictionnaires bruts.

  • model (str | None, valeur par défaut : None ) –

    Remplacement du modèle ; None hérite de la valeur par défaut du client.

  • retry (RetryPolicy | None, valeur par défaut : None ) –

    Une politique de réessai facultative pour remplacer la valeur définie au niveau du client pour ce seul appel.

  • timeout (float | httpx2.Timeout | None, valeur par défaut : None ) –

    Un délai d’expiration facultatif pour les opérations HTTP, afin de remplacer la valeur définie au niveau du client pour ce seul appel, en secondes.

  • extra_headers (Mapping[str, str] | None, valeur par défaut : None ) –

    En-têtes de requête supplémentaires à définir.

  • extra_body (Mapping[str, JSONValue | None] | None, valeur par défaut : None ) –

    Champs supplémentaires de premier niveau du corps de requête, fusionnés superficiellement sur le corps après définition de state, model et questions. La fusion applique la règle du dernier écrit : une clé qui entre en collision avec state, model ou questions les remplace, et les valeurs objets sont remplacées plutôt que fusionnées en profondeur.

  • response_model (type[ResponseT] | None, valeur par défaut : None ) –

    Type Pydantic BaseModel facultatif décrivant le corps JSON de la réponse, y compris les éventuels modèles de réponse imbriqués.

Valeur de retour :

  • SystemOneResponse | ResponseT –

    Une instance de response_model, ou SystemOneResponse avec les réponses indexées par nom de question

  • SystemOneResponse | ResponseT –

    ainsi que le modèle et les détails d’usage des jetons lorsqu’aucun modèle personnalisé n’est fourni.

Exceptions :

Exemples :

Crée des questions avec des arguments nommés :

with TypeSafeClient() as client:
    result = client.system_one(
        state="I was charged twice. Please help.",
        questions={
            "billing": Noul(instructions="Is this about billing?"),
            "tone": Choice(
                instructions="What is the tone?",
                criteria={"calm": None, "angry": None},
            ),
        },
    )
    assert 0 <= result.nouls["billing"].noul <= 1
    assert result.choices["tone"].choice in {"calm", "angry"}

Passe les questions sous forme de dictionnaires :

with TypeSafeClient() as client:
    result = client.system_one(
        state={"message": "I was charged twice. Please help."},
        questions={
            "billing": {"type": "noul", "instructions": "Is this about billing?"},
            "tone": {
                "type": "choice",
                "instructions": "What is the tone?",
                "criteria": {"calm": None, "angry": None},
            },
        },
    )
    assert 0 <= result.nouls["billing"].noul <= 1
    assert result.choices["tone"].choice in {"calm", "angry"}

close

close() -> None

Libère les ressources réseau et ferme le client HTTP sous-jacent, y compris un client fourni.

Ressource Models

Accessible via TypeSafeClient.models.

typesafe_sdk.Models

Accès aux modèles disponibles pour le compte, via TypeSafeClient.models.

list

list(
    *,
    retry: RetryPolicy | None = None,
    timeout: float
    | httpx2.Timeout
    | None = None,
    extra_headers: Mapping[str, str]
    | None = None,
) -> ListModelsResponse

Liste les modèles disponibles pour le compte.

Paramètres :

  • retry (RetryPolicy | None, valeur par défaut : None ) –

    Une politique de réessai facultative pour remplacer la valeur définie au niveau du client pour ce seul appel.

  • timeout (float | httpx2.Timeout | None, valeur par défaut : None ) –

    Remplacement du délai d’expiration par opération ; None hérite du réglage du client.

  • extra_headers (Mapping[str, str] | None, valeur par défaut : None ) –

    Remplacements pour les en-têtes de requête supplémentaires ; l’authentification, l’identification du SDK et Accept restent protégés.

Valeur de retour :

Exceptions :

  • TypeSafeAPIError –

    Le serveur renvoie une réponse HTTP infructueuse après les nouvelles tentatives.

  • TypeSafeAPIConnectionError –

    La requête ne peut pas se connecter ou expire après les nouvelles tentatives.

Exemples :

from typesafe_sdk import TypeSafeClient

with TypeSafeClient() as client:
    models = client.models.list()