Documentação

Cliente assíncrono

Use AsyncTypeSafeClient para fazer perguntas, listar modelos e configurar requisições assíncronas à API do TypeSafe.

typesafe_sdk.AsyncTypeSafeClient

AsyncTypeSafeClient(
    *,
    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.AsyncBaseTransport
    | None = None,
    http_client: httpx2.AsyncClient
    | None = None,
    base_url: str | None = None,
)

Crie um cliente HTTP assíncrono para a API do TypeSafe AI.

Opções explícitas têm precedência sobre variáveis de ambiente; valores de ambiente vazios ou com apenas espaços são ignorados.

Parâmetros:

  • api_key (str | None, padrão: None ) –

    Chave de API obrigatória; pode ser definida pela variável de ambiente TYPESAFE_API_KEY. Espaços em branco no início e no fim são removidos. Chaves vazias, espaços internos, caracteres de controle e caracteres não ASCII são rejeitados.

  • model (str | None, padrão: None ) –

    Nome do modelo; pode ser definido pela variável de ambiente TYPESAFE_DEFAULT_MODEL.

  • retry (RetryPolicy | None, padrão: None ) –

    Um RetryPolicy que controla o comportamento de tentativas; consulte RetryPolicy para ver as opções disponíveis e seus padrões. Passe RetryPolicy(max_retries=0) para desabilitar as tentativas.

  • timeout (float | httpx2.Timeout | None, padrão: None ) –

    Tempo limite para operações HTTP. Herda http_client.timeout quando fornecido; caso contrário, usa o padrão do SDK.

  • headers (Mapping[str, str] | None, padrão: None ) –

    Cabeçalhos de requisição adicionais a definir.

  • transport (httpx2.AsyncBaseTransport | None, padrão: None ) –

    Transporte HTTP personalizado opcional, fechado quando este cliente do SDK é fechado.

  • http_client (httpx2.AsyncClient | None, padrão: None ) –

    httpx2.AsyncClient opcional; mutuamente exclusivo com transport. Fechado quando este cliente do SDK é fechado.

  • base_url (str | None, padrão: None ) –

    Raiz da API; pode ser definida pela variável de ambiente TYPESAFE_BASE_URL.

Exceções:

  • TypeSafeError –

    A chave de API está ausente ou é inválida, ou o tempo limite é inválido.

  • ValueError –

    Tanto transport quanto http_client são fornecidos.

Exemplos:

import asyncio

from typesafe_sdk import AsyncTypeSafeClient, Choice, Noul

async def main() -> None:
    async with AsyncTypeSafeClient() as client:
        result = await 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"}

asyncio.run(main())

models

cached property

models: AsyncModels

Um acessor para o recurso Models da API.

Exemplos:

async def main() -> None:
    async with AsyncTypeSafeClient() as client:
        models = await client.models.list()

system_one

async

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 perguntas nomeadas sobre texto ou estado estruturado.

Consulte System One para obter detalhes.

Parâmetros:

  • state (JSONContent) –

    Texto, um objeto JSON ou um array a avaliar. Consulte state para obter detalhes.

  • questions (Mapping[str, Question]) –

    Mapeamento não vazio de nomes para objetos de pergunta ou dicionários brutos.

  • model (str | None, padrão: None ) –

    Substituição do modelo; None herda o padrão do cliente.

  • retry (RetryPolicy | None, padrão: None ) –

    Uma política de tentativas opcional para substituir o valor do cliente apenas nesta chamada.

  • timeout (float | httpx2.Timeout | None, padrão: None ) –

    Um tempo limite opcional para operações HTTP para substituir o valor do cliente apenas nesta chamada, em segundos.

  • extra_headers (Mapping[str, str] | None, padrão: None ) –

    Cabeçalhos de requisição adicionais a definir.

  • extra_body (Mapping[str, JSONValue | None] | None, padrão: None ) –

    Campos adicionais de nível superior do corpo da requisição, combinados superficialmente sobre o corpo depois que state, model e questions são definidos. A combinação segue a regra de que a última gravação vence: uma chave que colida com state, model ou questions a substitui, e valores de objeto são substituídos em vez de combinados em profundidade.

  • response_model (type[ResponseT] | None, padrão: None ) –

    Tipo BaseModel do Pydantic opcional que descreve o corpo JSON da resposta, incluindo quaisquer modelos de resposta aninhados.

Retorno:

  • SystemOneResponse | ResponseT –

    Uma instância de response_model, ou SystemOneResponse com respostas indexadas pelo nome da pergunta

  • SystemOneResponse | ResponseT –

    e o modelo e os detalhes de uso de tokens quando nenhum modelo personalizado é fornecido.

Exceções:

Exemplos:

Crie perguntas com argumentos nomeados:

async def main() -> None:
    async with AsyncTypeSafeClient() as client:
        result = await 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 as perguntas como dicionários:

async def main() -> None:
    async with AsyncTypeSafeClient() as client:
        result = await 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"}

aclose

async

aclose() -> None

Libera recursos de rede e fecha o cliente HTTP subjacente, incluindo um fornecido.

Recurso Models

Acessado por meio de AsyncTypeSafeClient.models.

typesafe_sdk.AsyncModels

Acesso aos modelos disponíveis para a conta, acessado por meio de AsyncTypeSafeClient.models.

list

async

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

Lista os modelos disponíveis para a conta.

Parâmetros:

  • retry (RetryPolicy | None, padrão: None ) –

    Uma política de tentativas opcional para substituir o valor do cliente apenas nesta chamada.

  • timeout (float | httpx2.Timeout | None, padrão: None ) –

    Substituição do tempo limite por operação; None herda a configuração do cliente.

  • extra_headers (Mapping[str, str] | None, padrão: None ) –

    Substituições de cabeçalhos de requisição adicionais; autenticação, identificação do SDK e Accept permanecem protegidos.

Retorno:

Exceções:

Exemplos:

from typesafe_sdk import AsyncTypeSafeClient

async def main() -> None:
    async with AsyncTypeSafeClient() as client:
        models = await client.models.list()