toChatModel property

ChatModel get toChatModel

Implementation

ChatModel get toChatModel => ChatModel(
  id: id,
  cost: ChatModelCost(
    input:
        (Decimal.parse(pricing.prompt) * Decimal.fromInt(1_000_000))
            .toDouble() *
        1.06,
    output:
        (Decimal.parse(pricing.completion) * Decimal.fromInt(1_000_000))
            .toDouble() *
        1.06,
  ),
  capabilities: ChatModelCapabilities(
    tools:
        supported_parameters.contains("tools") &&
        supported_parameters.contains("tool_choice"),
    ultraCompatibleMode: false,
    systemMode: ChatModelSystemMode.supported,
    contextWindow: context_length,
    maxTokenOutput: 16384,
    inputModalities:
        architecture.input_modalities
            .map(
              (i) => Modality.values.select(
                (v) => v.name.toLowerCase() == i.toLowerCase(),
              ),
            )
            .whereType<Modality>()
            .toList(),
    outputModalities:
        architecture.output_modalities
            .map(
              (i) => Modality.values.select(
                (v) => v.name.toLowerCase() == i.toLowerCase(),
              ),
            )
            .whereType<Modality>()
            .toList(),
    reasoning: supported_parameters.contains("reasoning"),
    structuredOutput: supported_parameters.contains("response_format"),
    streaming: true,
    seesToolMessages:
        supported_parameters.contains("tools") &&
        supported_parameters.contains("tool_choice"),
  ),
);