packages feed

baikai-0.1.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_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 = False
    , input = [InputText, InputImage]
    , cost = ModelCost
        { inputCost = 4 % 5
        , outputCost = 4 % 1
        , cacheReadCost = 2 % 25
        , cacheWriteCost = 1 % 1
        }
    , contextWindow = 200000
    , maxOutputTokens = 8192
    , headers = Map.empty
    , compat = CompatNone
    }

anthropic_claude_haiku_4_5_20251001 :: Model
anthropic_claude_haiku_4_5_20251001 =
  Model
    { modelId = "claude-haiku-4-5-20251001"
    , name = "Claude Haiku 4.5 (2025-10-01)"
    , api = AnthropicMessages
    , provider = "anthropic"
    , baseUrl = "https://api.anthropic.com"
    , reasoning = False
    , input = [InputText, InputImage]
    , cost = ModelCost
        { inputCost = 4 % 5
        , outputCost = 4 % 1
        , cacheReadCost = 2 % 25
        , cacheWriteCost = 1 % 1
        }
    , contextWindow = 200000
    , maxOutputTokens = 8192
    , 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 = 15 % 1
        , outputCost = 75 % 1
        , cacheReadCost = 3 % 2
        , cacheWriteCost = 75 % 4
        }
    , contextWindow = 200000
    , maxOutputTokens = 8192
    , 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 = 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
    }

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_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_o1 :: Model
openai_o1 =
  Model
    { modelId = "o1"
    , name = "OpenAI 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_o1_mini :: Model
openai_o1_mini =
  Model
    { modelId = "o1-mini"
    , name = "OpenAI o1-mini"
    , api = OpenAIChatCompletions
    , provider = "openai"
    , baseUrl = "https://api.openai.com"
    , reasoning = True
    , input = [InputText]
    , cost = ModelCost
        { inputCost = 3 % 1
        , outputCost = 12 % 1
        , cacheReadCost = 3 % 2
        , cacheWriteCost = 0 % 1
        }
    , contextWindow = 128000
    , maxOutputTokens = 65536
    , 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
    }