Чтение ответов, оценок уверенности, расхода токенов и доступных моделей, возвращаемых 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
;
}
Ответ (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
)
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"}
Список доступных моделей.
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"
}
```
Поля:
pydantic-field
{"name"}
{":"}
{" "}
{"str"}
{"\n"}
Имя модели или псевдоним (alias), принимаемый в поле model запроса.
pydantic-field
{"description"}
{":"}
{" "}
{"str"}
{"\n"}
Понятное человеку описание модели и ее возможностей.
pydantic-field
{"release_date"}
{":"}
{" "}
{"str"}
{"\n"}
Дата выпуска модели в формате ГГГГ-ММ-ДД (YYYY-MM-DD).