Documentación

Cliente síncrono

Usa TypeSafeClient para hacer preguntas, listar modelos y configurar solicitudes síncronas a la API de 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,
)

Crea un cliente HTTP para la API de TypeSafe AI.

Las opciones explícitas tienen prioridad sobre las variables de entorno; los valores de entorno vacíos o con solo espacios se ignoran.

Parámetros:

  • api_key (str | None, valor predeterminado: None ) –

    Clave de API obligatoria; se puede definir mediante la variable de entorno TYPESAFE_API_KEY. Se eliminan los espacios en blanco iniciales y finales. Se rechazan las claves vacías, los espacios internos, los caracteres de control y los caracteres no ASCII.

  • model (str | None, valor predeterminado: None ) –

    Nombre del modelo; se puede definir mediante la variable de entorno TYPESAFE_DEFAULT_MODEL.

  • retry (RetryPolicy | None, valor predeterminado: None ) –

    Un RetryPolicy que controla el comportamiento de los reintentos; consulta RetryPolicy para ver las opciones disponibles y sus valores predeterminados. Pasa RetryPolicy(max_retries=0) para desactivar los reintentos.

  • timeout (float | httpx2.Timeout | None, valor predeterminado: None ) –

    Tiempo de espera para las operaciones HTTP. Hereda http_client.timeout cuando se proporciona; de lo contrario, usa el valor predeterminado del SDK.

  • headers (Mapping[str, str] | None, valor predeterminado: None ) –

    Cabeceras de solicitud adicionales que se deben definir.

  • transport (httpx2.BaseTransport | None, valor predeterminado: None ) –

    Transporte HTTP personalizado opcional, que se cierra cuando se cierra este cliente del SDK.

  • http_client (httpx2.Client | None, valor predeterminado: None ) –

    httpx2.Client opcional; mutuamente excluyente con transport. Se cierra cuando se cierra este cliente del SDK.

  • base_url (str | None, valor predeterminado: None ) –

    Raíz de la API; se puede definir mediante la variable de entorno TYPESAFE_BASE_URL.

Lanza:

  • TypeSafeError –

    Falta la clave de API o no es válida, o el tiempo de espera no es válido.

  • ValueError –

    Se proporcionan tanto transport como http_client.

Ejemplos:

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 descriptor de acceso al recurso Models de la API.

Ejemplos:

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

Responde a preguntas con nombre sobre texto o estado estructurado.

Consulta System One para obtener más detalles.

Parámetros:

  • state (JSONContent) –

    Texto, un objeto JSON o un array que se va a evaluar. Consulta state para obtener más detalles.

  • questions (Mapping[str, Question]) –

    Mapeo no vacío de nombres a objetos de pregunta o diccionarios sin procesar.

  • model (str | None, valor predeterminado: None ) –

    Anulación del modelo; None hereda el valor predeterminado del cliente.

  • retry (RetryPolicy | None, valor predeterminado: None ) –

    Una política de reintentos opcional para anular el valor del cliente solo en esta llamada.

  • timeout (float | httpx2.Timeout | None, valor predeterminado: None ) –

    Un tiempo de espera opcional para las operaciones HTTP que anula el valor del cliente solo en esta llamada, en segundos.

  • extra_headers (Mapping[str, str] | None, valor predeterminado: None ) –

    Cabeceras de solicitud adicionales que se deben definir.

  • extra_body (Mapping[str, JSONValue | None] | None, valor predeterminado: None ) –

    Campos adicionales de nivel superior del cuerpo de la solicitud, combinados de forma superficial sobre el cuerpo después de establecer state, model y questions. La combinación sigue la regla de que gana la última escritura: una clave que entre en conflicto con state, model o questions la anula, y los valores de objeto se reemplazan en lugar de combinarse en profundidad.

  • response_model (type[ResponseT] | None, valor predeterminado: None ) –

    Tipo BaseModel de Pydantic opcional que describe el cuerpo JSON de la respuesta, incluidos los modelos de respuesta anidados.

Devuelve:

  • SystemOneResponse | ResponseT –

    Una instancia de response_model, o SystemOneResponse con las respuestas indexadas por el nombre de la pregunta

  • SystemOneResponse | ResponseT –

    y el modelo y los detalles de uso de tokens cuando no se proporciona un modelo personalizado.

Lanza:

Ejemplos:

Crea preguntas con argumentos con nombre:

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

Pasa las preguntas como diccionarios:

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

Libera los recursos de red y cierra el cliente HTTP subyacente, incluido uno proporcionado.

Recurso Models

Se accede a través de TypeSafeClient.models.

typesafe_sdk.Models

Acceso a los modelos disponibles para la cuenta, al que se llega a través de TypeSafeClient.models.

list

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

Lista los modelos disponibles para la cuenta.

Parámetros:

  • retry (RetryPolicy | None, valor predeterminado: None ) –

    Una política de reintentos opcional para anular el valor del cliente solo en esta llamada.

  • timeout (float | httpx2.Timeout | None, valor predeterminado: None ) –

    Anulación del tiempo de espera por operación; None hereda la configuración del cliente.

  • extra_headers (Mapping[str, str] | None, valor predeterminado: None ) –

    Anulaciones de cabeceras de solicitud adicionales; la autenticación, la identificación del SDK y Accept permanecen protegidos.

Devuelve:

Lanza:

  • TypeSafeAPIError –

    El servidor devuelve una respuesta HTTP fallida después de los reintentos.

  • TypeSafeAPIConnectionError –

    La solicitud no puede conectarse o agota el tiempo de espera después de los reintentos.

Ejemplos:

from typesafe_sdk import TypeSafeClient

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