ДокументацияTypeSafe Python SDKОтветы и расход токенов

Ответы и расход токенов

Read answers, confidence scores, token usage, and available models returned by the TypeSafe API.

Чтение ответов, оценок уверенности, расхода токенов и доступных моделей, возвращаемых TypeSafe API.

export function SdkSignature({children}) {
async function copy(event) {
const button = event.currentTarget;
const code = button.parentElement.querySelector("pre code");
try {
await navigator.clipboard.writeText(code.textContent);
button.setAttribute("aria-label", "Signature copied");
button.dataset.copied = "true";
} catch {
button.setAttribute("aria-label", "Copy failed; select the signature to copy");
}
setTimeout(() => {
button.setAttribute("aria-label", "Copy signature");
delete button.dataset.copied;
}, 2000);
}
return



{children}

;
}

Ответ (Response)

typesafe\_sdk.SystemOneResponse

pydantic-model

Базовые классы: Response

Ответы, сгруппированные по типу вопроса, с метаданными о модели и расходе токенов.

Подробнее см. System One.

**Показать JSON-схему:** ```json theme={null} { "$defs": { "ChoiceAnswer": { "description": "A selected label and its probabilities.\n\nSee the [choice primitive](https://docs.typesafe.ai/primitives/choice) for details.", "properties": { "type": { "const": "choice", "default": "choice", "title": "Type", "type": "string" }, "choice": { "description": "Имя варианта выбора с наибольшей вероятностью среди критериев вопроса.", "examples": [ "angry" ], "title": "Choice", "type": "string" }, "confidence": { "description": "Уверенность в выбранном варианте, от 0 до 1. Более высокие значения означают большую определенность; низкие значения можно использовать для отправки сомнительных решений на ручную проверку.", "examples": [ 0.9 ], "title": "Confidence", "type": "number" }, "probabilities": { "additionalProperties": { "type": "number" }, "description": "Вероятность каждого варианта в критериях, сгруппированная по имени варианта, от 0 до 1. Показывает правдоподобие альтернатив; сумма значений приблизительно равна 1.", "examples": [ { "angry": 0.8, "calm": 0.1, "excited": 0.1 } ], "title": "Probabilities", "type": "object" } }, "required": [ "choice", "confidence", "probabilities" ], "title": "ChoiceAnswer", "type": "object" }, "NoulAnswer": { "description": "A yes/no answer.\n\nSee the [noul primitive](https://docs.typesafe.ai/primitives/noul) for details.", "properties": { "type": { "const": "noul", "default": "noul", "title": "Type", "type": "string" }, "noul": { "description": "Вероятность ответа «да» или истинности утверждения, от 0 до 1. Значения, близкие к 1, указывают на «да» или истину, близкие к 0 — на «нет» или ложь, а значения около 0.5 свидетельствуют о неопределенности.", "examples": [ 0.98 ], "title": "Noul", "type": "number" } }, "required": [ "noul" ], "title": "NoulAnswer", "type": "object" }, "ScoreAnswer": { "description": "An expected score with its rubric and probabilities.\n\nSee the [score primitive](https://docs.typesafe.ai/primitives/score) for details.", "properties": { "type": { "const": "score", "default": "score", "title": "Type", "type": "string" }, "score": { "description": "Ожидаемый балл: средневзвешенное по вероятностям значение уровней шкалы. Может принимать дробные значения между целочисленными уровнями.", "examples": [ 1.7 ], "title": "Score", "type": "number" }, "confidence": { "description": "Уверенность в оценке (балле), от 0 до 1. Более высокие значения означают большую определенность; низкие значения можно использовать для отправки сомнительных оценок на ручную проверку.", "examples": [ 0.9 ], "title": "Confidence", "type": "number" }, "legend": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "items": {}, "type": "array" } ] }, "title": "Legend", "type": "object" }, "probabilities": { "additionalProperties": { "type": "number" }, "title": "Probabilities", "type": "object" } }, "required": [ "score", "confidence", "legend", "probabilities" ], "title": "ScoreAnswer", "type": "object" }, "Usage": { "description": "Token counts for a request, when reported by the API.", "properties": { "input_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Input Tokens" }, "output_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Output Tokens" } }, "title": "Usage", "type": "object" } }, "description": "Answers grouped by question type with model and usage metadata.\n\nSee [System One](https://docs.typesafe.ai/concepts/system-one) for details.", "properties": { "model": { "title": "Model", "type": "string" }, "usage": { "$ref": "#/$defs/Usage" }, "answers": { "additionalProperties": { "discriminator": { "mapping": { "choice": "#/$defs/ChoiceAnswer", "noul": "#/$defs/NoulAnswer", "score": "#/$defs/ScoreAnswer" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/NoulAnswer" }, { "$ref": "#/$defs/ChoiceAnswer" }, { "$ref": "#/$defs/ScoreAnswer" } ] }, "title": "Answers", "type": "object" } }, "required": [ "model", "usage" ], "title": "SystemOneResponse", "type": "object" } ```

Конфигурация:

  • extra: ignore
  • frozen: True
  • strict: True

Поля:

request\_id

cached property

{"request_id"} {":"}

{" "}

{"str"}

{"\n"}

Заголовок ответа x-typesafe-request-id.

raw\_http\_response

property

PYTHON THEME={NULL} api.wedstack.ru/v1
raw_http_response: httpx2.Response

Базовый объект httpx2.Response, предоставляющий доступ к статусу, заголовкам и телу ответа.

model\_config

class-attribute instance-attribute

PYTHON THEME={NULL} api.wedstack.ru/v1
model_config = ConfigDict(
    extra="ignore", frozen=True, strict=True
)

model

pydantic-field

{"model"} {":"}

{" "}

{"str"}

{"\n"}

Модель, использованная для обработки запроса.

usage

pydantic-field

{"usage"} {":"}

{" "}

{"Usage"}

{"\n"}

Расход токенов на выполнение запроса.

answers

pydantic-field

{"answers"} {":"}

{" "}

{"dict"} {"["} {"str"} {","}

{" "}

{"Answer"} {"]"}

{"\n"}

Все объекты ответов, сгруппированные по имени вопроса.

nouls

cached property

{"nouls"} {":"}

{" "}

{"dict"} {"["} {"str"} {","}

{" "}

{"NoulAnswer"} {"]"}

{"\n"}

Бинарные ответы («да/нет»), сгруппированные по имени вопроса.

choices

cached property

{"choices"} {":"}

{" "}

{"dict"} {"["} {"str"} {","}

{" "}

{"ChoiceAnswer"} {"]"}

{"\n"}

Категориальные ответы (с выбором вариантов), сгруппированные по имени вопроса.

scores

cached property

{"scores"} {":"}

{" "}

{"dict"} {"["} {"str"} {","}

{" "}

{"ScoreAnswer"} {"]"}

{"\n"}

Оценочные ответы (баллы), сгруппированные по имени вопроса.

typesafe\_sdk.Usage

pydantic-model

Базовые классы: wire.Usage

Количество токенов для запроса, если передано API.

**Показать JSON-схему:** ```json theme={null} { "description": "Token counts for a request, when reported by the API.", "properties": { "input_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Input Tokens" }, "output_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Output Tokens" } }, "title": "Usage", "type": "object" } ```

Конфигурация:

  • extra: ignore
  • frozen: True
  • strict: True

Поля:

model\_config

class-attribute instance-attribute

PYTHON THEME={NULL} api.wedstack.ru/v1
model_config = ConfigDict(
    extra="ignore", frozen=True, strict=True
)

input\_tokens

pydantic-field

{"input_tokens"} {":"}

{" "}

{"int"}

{" "}

{"|"}

{" "}

{"None"}

{" "}

{"="}

{" "}

{"None"}

{"\n"}

Количество использованных входных токенов или None, если API не передал это значение.

output\_tokens

pydantic-field

{"output_tokens"} {":"}

{" "}

{"int"}

{" "}

{"|"}

{" "}

{"None"}

{" "}

{"="}

{" "}

{"None"}

{"\n"}

Количество использованных выходных токенов или None, если API не передал это значение.

Ответы (Answers)

typesafe\_sdk.NoulAnswer

pydantic-model

Базовые классы: wire.NoulAnswer

Ответ на вопрос типа «да/нет».

Подробнее см. примитив Noul.

**Показать JSON-схему:** ```json theme={null} { "description": "A yes/no answer.\n\nSee the [noul primitive](https://docs.typesafe.ai/primitives/noul) for details.", "properties": { "type": { "const": "noul", "default": "noul", "title": "Type", "type": "string" }, "noul": { "description": "Вероятность ответа «да» или истинности утверждения, от 0 до 1. Значения, близкие к 1, указывают на «да» или истину, близкие к 0 — на «нет» или ложь, а значения около 0.5 свидетельствуют о неопределенности.", "examples": [ 0.98 ], "title": "Noul", "type": "number" } }, "required": [ "noul" ], "title": "NoulAnswer", "type": "object" } ```

Конфигурация:

  • extra: ignore
  • frozen: True
  • strict: True

Поля:

noul

pydantic-field

{"noul"} {":"}

{" "}

{"float"}

{"\n"}

Вероятность ответа «да» или истинности утверждения, от 0 до 1. Значения, близкие к 1, указывают на «да» или истину, близкие к 0 — на «нет» или ложь, а значения около 0.5 свидетельствуют о неопределенности.

model\_config

class-attribute instance-attribute

PYTHON THEME={NULL} api.wedstack.ru/v1
model_config = ConfigDict(
    extra="ignore", frozen=True, strict=True
)

typesafe\_sdk.ChoiceAnswer

pydantic-model

Базовые классы: wire.ChoiceAnswer

Выбранный вариант (метка) и его вероятности.

Подробнее см. примитив Choice.

**Показать JSON-схему:** ```json theme={null} { "description": "A selected label and its probabilities.\n\nSee the [choice primitive](https://docs.typesafe.ai/primitives/choice) for details.", "properties": { "type": { "const": "choice", "default": "choice", "title": "Type", "type": "string" }, "choice": { "description": "Имя варианта выбора с наибольшей вероятностью среди критериев вопроса.", "examples": [ "angry" ], "title": "Choice", "type": "string" }, "confidence": { "description": "Уверенность в выбранном варианте, от 0 до 1. Более высокие значения означают большую определенность; низкие значения можно использовать для отправки сомнительных решений на ручную проверку.", "examples": [ 0.9 ], "title": "Confidence", "type": "number" }, "probabilities": { "additionalProperties": { "type": "number" }, "description": "Вероятность каждого варианта в критериях, сгруппированная по имени варианта, от 0 до 1. Показывает правдоподобие альтернатив; сумма значений приблизительно равна 1.", "examples": [ { "angry": 0.8, "calm": 0.1, "excited": 0.1 } ], "title": "Probabilities", "type": "object" } }, "required": [ "choice", "confidence", "probabilities" ], "title": "ChoiceAnswer", "type": "object" } ```

Конфигурация:

  • extra: ignore
  • frozen: True
  • strict: True

Поля:

choice

pydantic-field

{"choice"} {":"}

{" "}

{"str"}

{"\n"}

Имя варианта выбора с наибольшей вероятностью среди критериев вопроса.

confidence

pydantic-field

{"confidence"} {":"}

{" "}

{"float"}

{"\n"}

Уверенность в выбранном варианте, от 0 до 1. Более высокие значения означают большую определенность; низкие значения можно использовать для отправки сомнительных решений на ручную проверку.

probabilities

pydantic-field

{"probabilities"} {":"}

{" "}

{"dict"} {"["} {"str"} {","}

{" "}

{"float"} {"]"}

{"\n"}

Вероятность каждого варианта в критериях, сгруппированная по имени варианта, от 0 до 1. Показывает правдоподобие альтернатив; сумма значений приблизительно равна 1.

model\_config

class-attribute instance-attribute

PYTHON THEME={NULL} api.wedstack.ru/v1
model_config = ConfigDict(
    extra="ignore", frozen=True, strict=True
)

typesafe\_sdk.ScoreAnswer

pydantic-model

Базовые классы: wire.ScoreAnswer

Ожидаемый балл с соответствующей рубрикой (шкалой) и вероятностями.

Подробнее см. примитив Score.

**Показать JSON-схему:** ```json theme={null} { "description": "An expected score with its rubric and probabilities.\n\nSee the [score primitive](https://docs.typesafe.ai/primitives/score) for details.", "properties": { "type": { "const": "score", "default": "score", "title": "Type", "type": "string" }, "score": { "description": "Ожидаемый балл: средневзвешенное по вероятностям значение уровней шкалы. Может принимать дробные значения между целочисленными уровнями.", "examples": [ 1.7 ], "title": "Score", "type": "number" }, "confidence": { "description": "Уверенность в оценке (балле), от 0 до 1. Более высокие значения означают большую определенность; низкие значения можно использовать для отправки сомнительных оценок на ручную проверку.", "examples": [ 0.9 ], "title": "Confidence", "type": "number" }, "legend": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "items": {}, "type": "array" } ] }, "title": "Legend", "type": "object" }, "probabilities": { "additionalProperties": { "type": "number" }, "title": "Probabilities", "type": "object" } }, "required": [ "score", "confidence", "legend", "probabilities" ], "title": "ScoreAnswer", "type": "object" } ```

Конфигурация:

  • extra: ignore
  • frozen: True
  • strict: True

Поля:

score

pydantic-field

{"score"} {":"}

{" "}

{"float"}

{"\n"}

Ожидаемый балл: средневзвешенное по вероятностям значение уровней шкалы. Может принимать дробные значения между целочисленными уровнями.

confidence

pydantic-field

{"confidence"} {":"}

{" "}

{"float"}

{"\n"}

Уверенность в оценке (балле), от 0 до 1. Более высокие значения означают большую определенность; низкие значения можно использовать для отправки сомнительных оценок на ручную проверку.

model\_config

class-attribute instance-attribute

PYTHON THEME={NULL} api.wedstack.ru/v1
model_config = ConfigDict(
    extra="ignore", frozen=True, strict=True
)

legend

pydantic-field

{"legend"}{":"}{" "}{"dict"}{"["}{"\n"}{" "}{"int"}{","}{" "}{"str"}{" "}{"|"}{" "}{"dict"}{"["}{"str"}{","}{" "}{"Any"}{"]"}{" "}{"|"}{" "}{"list"}{"["}{"Any"}{"]"}{"\n"}{"]"}{"\n"}

Описания шкалы (рубрики), сгруппированные по целочисленному значению балла.

probabilities

pydantic-field

{"probabilities"} {":"}

{" "}

{"dict"} {"["} {"int"} {","}

{" "}

{"float"} {"]"}

{"\n"}

Вероятности, сгруппированные по целочисленному значению балла.

typesafe\_sdk.Answer

module-attribute

{"Answer"}{":"}{" "}{"TypeAlias"}{" "}{"="}{" "}{"Annotated"}{"["}{"\n"}{" "}{"NoulAnswer"}{" "}{"|"}{" "}{"ChoiceAnswer"}{" "}{"|"}{" "}{"ScoreAnswer"}{","}{"\n"}{" "}{"Field"}{"("}{"discriminator"}{"="}{"\"type\""}{"),"}{"\n"}{"]"}{"\n"}

Ответ на отдельный вопрос, идентифицируемый по полю type.

Доступные модели (Available models)

typesafe\_sdk.ListModelsResponse

pydantic-model

Базовые классы: Response

Модели, доступные для учетной записи.

**Показать JSON-схему:** ```json theme={null} { "$defs": { "ModelMetadata": { "description": "Metadata describing a single available model.", "properties": { "name": { "title": "Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "release_date": { "title": "Release Date", "type": "string" } }, "required": [ "name", "description", "release_date" ], "title": "ModelMetadata", "type": "object" } }, "description": "The models available to the account.", "properties": { "models": { "items": { "$ref": "#/$defs/ModelMetadata" }, "title": "Models", "type": "array" } }, "required": [ "models" ], "title": "ListModelsResponse", "type": "object" } ```

Поля:

request\_id

cached property

{"request_id"} {":"}

{" "}

{"str"}

{"\n"}

Заголовок ответа x-typesafe-request-id.

raw\_http\_response

property

PYTHON THEME={NULL} api.wedstack.ru/v1
raw_http_response: httpx2.Response

Базовый объект httpx2.Response, предоставляющий доступ к статусу, заголовкам и телу ответа.

model\_config

class-attribute instance-attribute

PYTHON THEME={NULL} api.wedstack.ru/v1
model_config = ConfigDict(
    extra="ignore", frozen=True, strict=True
)

models

pydantic-field

{"models"} {":"}

{" "}

{"tuple"} {"["} {"ModelMetadata"} {","}

{" "}

{"..."} {"]"}

{"\n"}

Список доступных моделей.

typesafe\_sdk.ModelMetadata

pydantic-model

Базовые классы: Schema

Метаданные, описывающие отдельную доступную модель.

**Показать JSON-схему:** ```json theme={null} { "description": "Metadata describing a single available model.", "properties": { "name": { "title": "Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "release_date": { "title": "Release Date", "type": "string" } }, "required": [ "name", "description", "release_date" ], "title": "ModelMetadata", "type": "object" } ```

Поля:

name

pydantic-field

{"name"} {":"}

{" "}

{"str"}

{"\n"}

Имя модели или псевдоним (alias), принимаемый в поле model запроса.

description

pydantic-field

{"description"} {":"}

{" "}

{"str"}

{"\n"}

Понятное человеку описание модели и ее возможностей.

release\_date

pydantic-field

{"release_date"} {":"}

{" "}

{"str"}

{"\n"}

Дата выпуска модели в формате ГГГГ-ММ-ДД (YYYY-MM-DD).