from typing import Literal

from ..base import BaseModel
from .sample_sequence import SampleSequence


class SampleResponse(BaseModel):
    sequences: list[SampleSequence]
    """生成的序列列表"""

    prompt_logprobs: list[float]
    """prompt 中每个 token 对应的 logprobs 列表"""

    topk_prompt_logprobs: list[list[tuple[int, float]]]
    """prompt 中每个 token 对应的 topk logprobs 列表"""

    output_tokens: int
    """生成的 token 数量"""

    type: Literal["sample"] = "sample"
    """响应类型, 固定为 "sample" """

    elapsed_time: float
    """事件处理耗时, 毫秒"""
