AnalyNexus's picture
download
raw
1.8 kB
from pathlib import Path
from typing import Literal, NotRequired, TypedDict
from PIL import Image
type JSONValue = str | int | float | bool | None | list[JSONValue] | dict[str, JSONValue]
type Content = str | dict[str, JSONValue] | list[JSONValue]
type ImageInput = str | Path | Image.Image
type Label = str | int | bool
type Target = Label | float | list[float]
class QuestionBase(TypedDict):
instructions: NotRequired[Content | None]
class ChoiceQuestion(QuestionBase):
type: Literal["choice"]
criteria: dict[str, Content | None]
class NoulQuestion(QuestionBase):
type: Literal["noul"]
criteria: NotRequired[dict[Literal["true", "false"], Content | None] | None]
class ScoreQuestion(QuestionBase):
type: Literal["score"]
criteria: list[Content]
type Question = ChoiceQuestion | NoulQuestion | ScoreQuestion
class DecisionInput(TypedDict):
state: Content
question: Question
images: NotRequired[list[ImageInput]]
class Example(DecisionInput):
id: str
suite: str
family: str
label: Label
target: Target
source: dict[str, JSONValue]
class ChoiceAnswer(TypedDict):
type: Literal["choice"]
choice: str
probabilities: dict[str, float]
confidence: float
class NoulAnswer(TypedDict):
type: Literal["noul"]
noul: float
class ScoreAnswer(TypedDict):
type: Literal["score"]
score: float
legend: dict[str, Content | None]
probabilities: dict[str, float]
confidence: float
type Answer = ChoiceAnswer | NoulAnswer | ScoreAnswer
class Usage(TypedDict, total=False):
input_tokens: int
output_tokens: int
class DecisionResponse(TypedDict):
answers: dict[str, Answer]
usage: Usage
model: NotRequired[str]
id: NotRequired[str]
provider: NotRequired[str]

Xet Storage Details

Size:
1.8 kB
·
Xet hash:
0bf760ac236a12c1403d28d2b5681f56c3643e417a180d92040a39918ce32e67

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.