Documentação

Cliente assíncrono

Use AsyncTypeSafeClient para fazer perguntas, listar modelos e configurar pedidos assíncronos à API 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 TypeSafe AI.

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

Parâmetros:

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

    Chave de API obrigatória; pode ser definida através da variável de ambiente TYPESAFE_API_KEY. Os espaços em branco iniciais e finais são removidos. As chaves vazias, os espaços internos, os caracteres de controlo e os caracteres não ASCII são rejeitados.

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

    Nome do modelo; pode ser definido através da variável de ambiente TYPESAFE_DEFAULT_MODEL.

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

    Um RetryPolicy que controla o comportamento dos reintentos; consulte RetryPolicy para as opções disponíveis e as respetivas predefinições. Passe RetryPolicy(max_retries=0) para desativar os reintentos.

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

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

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

    Cabeçalhos de pedido adicionais a definir.

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

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

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

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

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

    Raiz da API; pode ser definida através da variável de ambiente TYPESAFE_BASE_URL.

Exceções:

  • TypeSafeError –

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

  • ValueError –

    São fornecidos transport e http_client ao mesmo tempo.

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

Responda a perguntas nomeadas sobre texto ou estado estruturado.

Consulte System One para obter mais detalhes.

Parâmetros:

  • state (JSONContent) –

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

  • questions (Mapping[str, Question]) –

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

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

    Substituição do modelo; None herda a predefinição do cliente.

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

    Uma política de reintentos opcional para substituir o valor ao nível do cliente apenas nesta chamada.

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

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

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

    Cabeçalhos de pedido adicionais a definir.

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

    Campos adicionais de nível superior do corpo do pedido, fundidos superficialmente sobre o corpo depois de state, model e questions serem definidos. A fusão segue a regra «a última escrita prevalece»: uma chave que colida com state, model ou questions substitui-a, e os valores de objeto são substituídos em vez de fundidos em profundidade.

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

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

Devolve:

  • SystemOneResponse | ResponseT –

    Uma instância de response_model ou SystemOneResponse com as respostas indexadas por

  • SystemOneResponse | ResponseT –

    nome da pergunta, juntamente com o modelo e os detalhes de uso de tokens quando não é fornecido um modelo personalizado.

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

Liberta os recursos de rede e fecha o cliente HTTP subjacente, incluindo um fornecido externamente.

Recurso Models

Acedido através de AsyncTypeSafeClient.models.

typesafe_sdk.AsyncModels

Acesso aos modelos disponíveis para a conta, acedido através 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, predefinição: None ) –

    Uma política de reintentos opcional para substituir o valor ao nível do cliente apenas nesta chamada.

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

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

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

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

Devolve:

Exceções:

  • TypeSafeAPIError –

    O servidor devolve uma resposta HTTP malsucedida após todos os reintentos.

  • TypeSafeAPIConnectionError –

    O pedido não consegue ligar-se ou excede o tempo limite após todos os reintentos.

Exemplos:

from typesafe_sdk import AsyncTypeSafeClient

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