packages feed

baikai-0.3.1.0: src/Baikai/Models/Generated.hs

-- AUTO-GENERATED by baikai-gen-models. Do not edit by hand.
-- Regenerate with: cabal run baikai-gen-models
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -Wno-missing-export-lists #-}
{-# OPTIONS_GHC -Wno-unused-imports #-}

module Baikai.Models.Generated where

import Baikai.Api (Api (..))
import Baikai.Compat
  ( AnthropicThinkingStyle (..),
    CacheControlFormat (..),
    MaxTokensField (..),
    ThinkingFormat (..),
    defaultAnthropicMessagesCompat,
    defaultOpenAICompletionsCompat,
  )
import Baikai.Model
  ( Compat (..),
    InputModality (..),
    Model,
    ModelCost (..),
    api,
    baseUrl,
    compat,
    contextWindow,
    cost,
    emptyModel,
    headers,
    input,
    maxOutputTokens,
    modelId,
    name,
    provider,
    reasoning,
  )
import Data.Map.Strict qualified as Map
import Data.Ratio ((%))

anthropic_claude_fable_5 :: Model
anthropic_claude_fable_5 =
  emptyModel
    { modelId = "claude-fable-5",
      name = "Claude Fable 5",
      api = AnthropicMessages,
      provider = "anthropic",
      baseUrl = "https://api.anthropic.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 10 % 1,
            outputCost = 50 % 1,
            cacheReadCost = 1 % 1,
            cacheWriteCost = 25 % 2
          },
      contextWindow = 1000000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

anthropic_claude_haiku_4_5 :: Model
anthropic_claude_haiku_4_5 =
  emptyModel
    { modelId = "claude-haiku-4-5",
      name = "Claude Haiku 4.5",
      api = AnthropicMessages,
      provider = "anthropic",
      baseUrl = "https://api.anthropic.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 1 % 1,
            outputCost = 5 % 1,
            cacheReadCost = 1 % 10,
            cacheWriteCost = 5 % 4
          },
      contextWindow = 200000,
      maxOutputTokens = 64000,
      headers = Map.empty,
      compat = CompatNone
    }

anthropic_claude_opus_4_5 :: Model
anthropic_claude_opus_4_5 =
  emptyModel
    { modelId = "claude-opus-4-5",
      name = "Claude Opus 4.5",
      api = AnthropicMessages,
      provider = "anthropic",
      baseUrl = "https://api.anthropic.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 5 % 1,
            outputCost = 25 % 1,
            cacheReadCost = 1 % 2,
            cacheWriteCost = 25 % 4
          },
      contextWindow = 200000,
      maxOutputTokens = 64000,
      headers = Map.empty,
      compat = CompatNone
    }

anthropic_claude_opus_4_6 :: Model
anthropic_claude_opus_4_6 =
  emptyModel
    { modelId = "claude-opus-4-6",
      name = "Claude Opus 4.6",
      api = AnthropicMessages,
      provider = "anthropic",
      baseUrl = "https://api.anthropic.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 5 % 1,
            outputCost = 25 % 1,
            cacheReadCost = 1 % 2,
            cacheWriteCost = 25 % 4
          },
      contextWindow = 1000000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

anthropic_claude_opus_4_7 :: Model
anthropic_claude_opus_4_7 =
  emptyModel
    { modelId = "claude-opus-4-7",
      name = "Claude Opus 4.7",
      api = AnthropicMessages,
      provider = "anthropic",
      baseUrl = "https://api.anthropic.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 5 % 1,
            outputCost = 25 % 1,
            cacheReadCost = 1 % 2,
            cacheWriteCost = 25 % 4
          },
      contextWindow = 1000000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

anthropic_claude_opus_4_8 :: Model
anthropic_claude_opus_4_8 =
  emptyModel
    { modelId = "claude-opus-4-8",
      name = "Claude Opus 4.8",
      api = AnthropicMessages,
      provider = "anthropic",
      baseUrl = "https://api.anthropic.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 5 % 1,
            outputCost = 25 % 1,
            cacheReadCost = 1 % 2,
            cacheWriteCost = 25 % 4
          },
      contextWindow = 1000000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

anthropic_claude_sonnet_4_5 :: Model
anthropic_claude_sonnet_4_5 =
  emptyModel
    { modelId = "claude-sonnet-4-5",
      name = "Claude Sonnet 4.5",
      api = AnthropicMessages,
      provider = "anthropic",
      baseUrl = "https://api.anthropic.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 3 % 1,
            outputCost = 15 % 1,
            cacheReadCost = 3 % 10,
            cacheWriteCost = 15 % 4
          },
      contextWindow = 1000000,
      maxOutputTokens = 64000,
      headers = Map.empty,
      compat = CompatNone
    }

anthropic_claude_sonnet_4_6 :: Model
anthropic_claude_sonnet_4_6 =
  emptyModel
    { modelId = "claude-sonnet-4-6",
      name = "Claude Sonnet 4.6",
      api = AnthropicMessages,
      provider = "anthropic",
      baseUrl = "https://api.anthropic.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 3 % 1,
            outputCost = 15 % 1,
            cacheReadCost = 3 % 10,
            cacheWriteCost = 15 % 4
          },
      contextWindow = 1000000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

anthropic_claude_sonnet_5 :: Model
anthropic_claude_sonnet_5 =
  emptyModel
    { modelId = "claude-sonnet-5",
      name = "Claude Sonnet 5",
      api = AnthropicMessages,
      provider = "anthropic",
      baseUrl = "https://api.anthropic.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 2 % 1,
            outputCost = 10 % 1,
            cacheReadCost = 1 % 5,
            cacheWriteCost = 5 % 2
          },
      contextWindow = 1000000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

deepseek_deepseek_chat :: Model
deepseek_deepseek_chat =
  emptyModel
    { modelId = "deepseek-chat",
      name = "DeepSeek Chat",
      api = OpenAIChatCompletions,
      provider = "deepseek",
      baseUrl = "https://api.deepseek.com",
      reasoning = False,
      input = [InputText],
      cost =
        ModelCost
          { inputCost = 27 % 100,
            outputCost = 11 % 10,
            cacheReadCost = 7 % 100,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 64000,
      maxOutputTokens = 8192,
      headers = Map.empty,
      compat = CompatNone
    }

deepseek_deepseek_reasoner :: Model
deepseek_deepseek_reasoner =
  emptyModel
    { modelId = "deepseek-reasoner",
      name = "DeepSeek Reasoner",
      api = OpenAIChatCompletions,
      provider = "deepseek",
      baseUrl = "https://api.deepseek.com",
      reasoning = True,
      input = [InputText],
      cost =
        ModelCost
          { inputCost = 11 % 20,
            outputCost = 219 % 100,
            cacheReadCost = 7 % 50,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 64000,
      maxOutputTokens = 8192,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_4_1 :: Model
openai_gpt_4_1 =
  emptyModel
    { modelId = "gpt-4.1",
      name = "GPT-4.1",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = False,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 2 % 1,
            outputCost = 8 % 1,
            cacheReadCost = 1 % 2,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 1047576,
      maxOutputTokens = 32768,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_4_1_mini :: Model
openai_gpt_4_1_mini =
  emptyModel
    { modelId = "gpt-4.1-mini",
      name = "GPT-4.1 mini",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = False,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 2 % 5,
            outputCost = 8 % 5,
            cacheReadCost = 1 % 10,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 1047576,
      maxOutputTokens = 32768,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_4_1_nano :: Model
openai_gpt_4_1_nano =
  emptyModel
    { modelId = "gpt-4.1-nano",
      name = "GPT-4.1 nano",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = False,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 1 % 10,
            outputCost = 2 % 5,
            cacheReadCost = 1 % 40,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 1047576,
      maxOutputTokens = 32768,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_4o :: Model
openai_gpt_4o =
  emptyModel
    { modelId = "gpt-4o",
      name = "GPT-4o",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = False,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 5 % 2,
            outputCost = 10 % 1,
            cacheReadCost = 5 % 4,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 128000,
      maxOutputTokens = 16384,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_4o_mini :: Model
openai_gpt_4o_mini =
  emptyModel
    { modelId = "gpt-4o-mini",
      name = "GPT-4o mini",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = False,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 3 % 20,
            outputCost = 3 % 5,
            cacheReadCost = 3 % 40,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 128000,
      maxOutputTokens = 16384,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_5 :: Model
openai_gpt_5 =
  emptyModel
    { modelId = "gpt-5",
      name = "GPT-5",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 5 % 4,
            outputCost = 10 % 1,
            cacheReadCost = 1 % 8,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 400000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_5_1 :: Model
openai_gpt_5_1 =
  emptyModel
    { modelId = "gpt-5.1",
      name = "GPT-5.1",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 5 % 4,
            outputCost = 10 % 1,
            cacheReadCost = 1 % 8,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 400000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_5_2 :: Model
openai_gpt_5_2 =
  emptyModel
    { modelId = "gpt-5.2",
      name = "GPT-5.2",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 7 % 4,
            outputCost = 14 % 1,
            cacheReadCost = 7 % 40,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 400000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_5_4 :: Model
openai_gpt_5_4 =
  emptyModel
    { modelId = "gpt-5.4",
      name = "GPT-5.4",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 5 % 2,
            outputCost = 15 % 1,
            cacheReadCost = 1 % 4,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 1050000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_5_4_mini :: Model
openai_gpt_5_4_mini =
  emptyModel
    { modelId = "gpt-5.4-mini",
      name = "GPT-5.4 mini",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 3 % 4,
            outputCost = 9 % 2,
            cacheReadCost = 3 % 40,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 400000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_5_4_nano :: Model
openai_gpt_5_4_nano =
  emptyModel
    { modelId = "gpt-5.4-nano",
      name = "GPT-5.4 nano",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 1 % 5,
            outputCost = 5 % 4,
            cacheReadCost = 1 % 50,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 400000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_5_5 :: Model
openai_gpt_5_5 =
  emptyModel
    { modelId = "gpt-5.5",
      name = "GPT-5.5",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 5 % 1,
            outputCost = 30 % 1,
            cacheReadCost = 1 % 2,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 1050000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_5_6 :: Model
openai_gpt_5_6 =
  emptyModel
    { modelId = "gpt-5.6",
      name = "GPT-5.6",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 5 % 1,
            outputCost = 30 % 1,
            cacheReadCost = 1 % 2,
            cacheWriteCost = 25 % 4
          },
      contextWindow = 1050000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_5_6_luna :: Model
openai_gpt_5_6_luna =
  emptyModel
    { modelId = "gpt-5.6-luna",
      name = "GPT-5.6 Luna",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 1 % 1,
            outputCost = 6 % 1,
            cacheReadCost = 1 % 10,
            cacheWriteCost = 5 % 4
          },
      contextWindow = 1050000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_5_6_sol :: Model
openai_gpt_5_6_sol =
  emptyModel
    { modelId = "gpt-5.6-sol",
      name = "GPT-5.6 Sol",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 5 % 1,
            outputCost = 30 % 1,
            cacheReadCost = 1 % 2,
            cacheWriteCost = 25 % 4
          },
      contextWindow = 1050000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_5_6_terra :: Model
openai_gpt_5_6_terra =
  emptyModel
    { modelId = "gpt-5.6-terra",
      name = "GPT-5.6 Terra",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 5 % 2,
            outputCost = 15 % 1,
            cacheReadCost = 1 % 4,
            cacheWriteCost = 25 % 8
          },
      contextWindow = 1050000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_5_mini :: Model
openai_gpt_5_mini =
  emptyModel
    { modelId = "gpt-5-mini",
      name = "GPT-5 Mini",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 1 % 4,
            outputCost = 2 % 1,
            cacheReadCost = 1 % 40,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 400000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_gpt_5_nano :: Model
openai_gpt_5_nano =
  emptyModel
    { modelId = "gpt-5-nano",
      name = "GPT-5 Nano",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 1 % 20,
            outputCost = 2 % 5,
            cacheReadCost = 1 % 200,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 400000,
      maxOutputTokens = 128000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_o1 :: Model
openai_o1 =
  emptyModel
    { modelId = "o1",
      name = "o1",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 15 % 1,
            outputCost = 60 % 1,
            cacheReadCost = 15 % 2,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 200000,
      maxOutputTokens = 100000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_o3 :: Model
openai_o3 =
  emptyModel
    { modelId = "o3",
      name = "o3",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 2 % 1,
            outputCost = 8 % 1,
            cacheReadCost = 1 % 2,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 200000,
      maxOutputTokens = 100000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_o3_mini :: Model
openai_o3_mini =
  emptyModel
    { modelId = "o3-mini",
      name = "o3-mini",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText],
      cost =
        ModelCost
          { inputCost = 11 % 10,
            outputCost = 22 % 5,
            cacheReadCost = 11 % 20,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 200000,
      maxOutputTokens = 100000,
      headers = Map.empty,
      compat = CompatNone
    }

openai_o4_mini :: Model
openai_o4_mini =
  emptyModel
    { modelId = "o4-mini",
      name = "o4-mini",
      api = OpenAIChatCompletions,
      provider = "openai",
      baseUrl = "https://api.openai.com",
      reasoning = True,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 11 % 10,
            outputCost = 22 % 5,
            cacheReadCost = 11 % 40,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 200000,
      maxOutputTokens = 100000,
      headers = Map.empty,
      compat = CompatNone
    }

openrouter_anthropic_claude_sonnet_4 :: Model
openrouter_anthropic_claude_sonnet_4 =
  emptyModel
    { modelId = "anthropic/claude-sonnet-4",
      name = "Claude Sonnet 4 via OpenRouter",
      api = OpenAIChatCompletions,
      provider = "openrouter",
      baseUrl = "https://openrouter.ai/api",
      reasoning = False,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 3 % 1,
            outputCost = 15 % 1,
            cacheReadCost = 3 % 10,
            cacheWriteCost = 15 % 4
          },
      contextWindow = 200000,
      maxOutputTokens = 8192,
      headers = Map.empty,
      compat = CompatNone
    }

openrouter_openai_gpt_4o_mini :: Model
openrouter_openai_gpt_4o_mini =
  emptyModel
    { modelId = "openai/gpt-4o-mini",
      name = "GPT-4o mini via OpenRouter",
      api = OpenAIChatCompletions,
      provider = "openrouter",
      baseUrl = "https://openrouter.ai/api",
      reasoning = False,
      input = [InputText, InputImage],
      cost =
        ModelCost
          { inputCost = 3 % 20,
            outputCost = 3 % 5,
            cacheReadCost = 3 % 40,
            cacheWriteCost = 0 % 1
          },
      contextWindow = 128000,
      maxOutputTokens = 16384,
      headers = Map.empty,
      compat = CompatNone
    }