Dokumentation

Asynchroner Client

Verwende AsyncTypeSafeClient, um Fragen zu stellen, Modelle aufzulisten und asynchrone TypeSafe API-Anfragen zu konfigurieren.

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,
)

Erstelle einen asynchronen HTTP-Client für die TypeSafe AI-API.

Explizite Optionen haben Vorrang vor Umgebungsvariablen; leere oder nur aus Leerzeichen bestehende Umgebungswerte werden ignoriert.

Parameter:

  • api_key (str | None, Standardwert: None ) –

    Erforderlicher API-Schlüssel; kann über die Umgebungsvariable TYPESAFE_API_KEY gesetzt werden. Führende und abschließende Leerzeichen werden entfernt. Leere Schlüssel, interne Leerzeichen, Steuerzeichen und Nicht-ASCII-Zeichen werden abgelehnt.

  • model (str | None, Standardwert: None ) –

    Modellname; kann über die Umgebungsvariable TYPESAFE_DEFAULT_MODEL gesetzt werden.

  • retry (RetryPolicy | None, Standardwert: None ) –

    Eine RetryPolicy, die das Wiederholungsverhalten steuert; siehe RetryPolicy für die verfügbaren Optionen und ihre Standardwerte. Übergib RetryPolicy(max_retries=0), um Wiederholungen zu deaktivieren.

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

    Zeitlimit für HTTP-Operationen. Erbt http_client.timeout, wenn angegeben, andernfalls den SDK-Standard.

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

    Zusätzliche Anfrageheader, die gesetzt werden sollen.

  • transport (httpx2.AsyncBaseTransport | None, Standardwert: None ) –

    Optionales benutzerdefiniertes HTTP-Transportmittel, das geschlossen wird, wenn dieser SDK-Client geschlossen wird.

  • http_client (httpx2.AsyncClient | None, Standardwert: None ) –

    Optionales httpx2.AsyncClient; schließt sich gegenseitig mit transport aus. Wird geschlossen, wenn dieser SDK-Client geschlossen wird.

  • base_url (str | None, Standardwert: None ) –

    API-Wurzel; kann über die Umgebungsvariable TYPESAFE_BASE_URL gesetzt werden.

Ausnahmen:

  • TypeSafeError –

    Der API-Schlüssel fehlt oder ist ungültig, oder das Zeitlimit ist ungültig.

  • ValueError –

    Es werden sowohl transport als auch http_client angegeben.

Beispiele:

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

Ein Zugriff auf die Ressource Models der API.

Beispiele:

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

Beantworte benannte Fragen zu Text oder strukturiertem Zustand.

Siehe System One für Details.

Parameter:

  • state (JSONContent) –

    Text, ein JSON-Objekt oder ein Array, das ausgewertet werden soll. Siehe state für Details.

  • questions (Mapping[str, Question]) –

    Nicht leeres Mapping von Namen auf Frageobjekte oder rohe Wörterbücher.

  • model (str | None, Standardwert: None ) –

    Modellüberschreibung; None erbt den Client-Standard.

  • retry (RetryPolicy | None, Standardwert: None ) –

    Eine optionale Wiederholungsrichtlinie, die den Wert auf Client-Ebene nur für diesen Aufruf überschreibt.

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

    Ein optionales Zeitlimit für HTTP-Operationen, das den Wert auf Client-Ebene nur für diesen Aufruf überschreibt, in Sekunden.

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

    Zusätzliche Anfrageheader, die gesetzt werden sollen.

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

    Zusätzliche Felder auf oberster Ebene des Anfrage-Bodys, die nach dem Setzen von state, model und questions flach über den Body gelegt werden. Beim Zusammenführen gewinnt der letzte Schreibvorgang: Ein Schlüssel, der mit state, model oder questions kollidiert, überschreibt diesen, und Objektwerte werden ersetzt statt tief zusammengeführt.

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

    Optionaler Pydantic-BaseModel-Typ, der den JSON-Antwort-Body beschreibt, einschließlich aller verschachtelten Antwortmodelle.

Rückgabewert:

  • SystemOneResponse | ResponseT –

    Eine Instanz von response_model oder SystemOneResponse mit Antworten, indiziert nach der Frage

  • SystemOneResponse | ResponseT –

    Name sowie Modell- und Token-Nutzungsdetails, wenn kein benutzerdefiniertes Modell angegeben wird.

Ausnahmen:

Beispiele:

Erstelle Fragen mit benannten Argumenten:

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

Übergib Fragen als Wörterbücher:

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

Gibt Netzwerkressourcen frei und schließt den zugrunde liegenden HTTP-Client, auch einen bereitgestellten.

Models-Ressource

Erreichbar über AsyncTypeSafeClient.models.

typesafe_sdk.AsyncModels

Zugriff auf die für das Konto verfügbaren Modelle, erreichbar über AsyncTypeSafeClient.models.

list

async

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

Listet die für das Konto verfügbaren Modelle.

Parameter:

  • retry (RetryPolicy | None, Standardwert: None ) –

    Eine optionale Wiederholungsrichtlinie, die den Wert auf Client-Ebene für diesen Aufruf überschreibt.

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

    Zeitlimitüberschreibung pro Operation; None erbt die Einstellung des Clients.

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

    Überschreibungen für zusätzliche Anfrageheader; Authentifizierung, SDK-Identifikation und Accept bleiben geschützt.

Rückgabewert:

Ausnahmen:

  • TypeSafeAPIError –

    Der Server gibt nach allen Wiederholungen eine erfolglose HTTP-Antwort zurück.

  • TypeSafeAPIConnectionError –

    Die Anfrage kann nach allen Wiederholungen keine Verbindung herstellen oder läuft in ein Zeitlimit.

Beispiele:

from typesafe_sdk import AsyncTypeSafeClient

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