packages feed

baikai-0.2.0.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
  ( AnthropicMessagesCompat (..)
  , CacheControlFormat (..)
  , MaxTokensField (..)
  , OpenAICompletionsCompat (..)
  , ThinkingFormat (..)
  )
import Baikai.Model
  ( Compat (..)
  , InputModality (..)
  , Model (..)
  , ModelCost (..)
  )
import Data.Map.Strict qualified as Map
import Data.Ratio ((%))

anthropic_claude_fable_5 :: Model
anthropic_claude_fable_5 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 = 200000
    , maxOutputTokens = 64000
    , headers = Map.empty
    , compat = CompatNone
    }

anthropic_claude_sonnet_4_6 :: Model
anthropic_claude_sonnet_4_6 =
  Model
    { 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 = 64000
    , headers = Map.empty
    , compat = CompatNone
    }

deepseek_deepseek_chat :: Model
deepseek_deepseek_chat =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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_mini :: Model
openai_gpt_5_mini =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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 =
  Model
    { 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
    }