{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
module Data.Ollama.Common.Config
(
OllamaConfig (..)
, defaultOllamaConfig
, withOnModelStart
, withOnModelFinish
, withOnModelError
) where
import Data.Text (Text)
import GHC.Generics
import Network.HTTP.Client
data OllamaConfig = OllamaConfig
{ OllamaConfig -> Text
hostUrl :: Text
, OllamaConfig -> Int
timeout :: Int
, OllamaConfig -> Maybe (IO ())
onModelStart :: Maybe (IO ())
, OllamaConfig -> Maybe (IO ())
onModelError :: Maybe (IO ())
, OllamaConfig -> Maybe (IO ())
onModelFinish :: Maybe (IO ())
, OllamaConfig -> Maybe Int
retryCount :: Maybe Int
, OllamaConfig -> Maybe Int
retryDelay :: Maybe Int
, OllamaConfig -> Maybe Manager
commonManager :: Maybe Manager
}
deriving ((forall x. OllamaConfig -> Rep OllamaConfig x)
-> (forall x. Rep OllamaConfig x -> OllamaConfig)
-> Generic OllamaConfig
forall x. Rep OllamaConfig x -> OllamaConfig
forall x. OllamaConfig -> Rep OllamaConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. OllamaConfig -> Rep OllamaConfig x
from :: forall x. OllamaConfig -> Rep OllamaConfig x
$cto :: forall x. Rep OllamaConfig x -> OllamaConfig
to :: forall x. Rep OllamaConfig x -> OllamaConfig
Generic)
defaultOllamaConfig :: OllamaConfig
defaultOllamaConfig :: OllamaConfig
defaultOllamaConfig =
OllamaConfig
{ hostUrl :: Text
hostUrl = Text
"http://127.0.0.1:11434"
, timeout :: Int
timeout = Int
90
, onModelStart :: Maybe (IO ())
onModelStart = Maybe (IO ())
forall a. Maybe a
Nothing
, onModelError :: Maybe (IO ())
onModelError = Maybe (IO ())
forall a. Maybe a
Nothing
, onModelFinish :: Maybe (IO ())
onModelFinish = Maybe (IO ())
forall a. Maybe a
Nothing
, retryCount :: Maybe Int
retryCount = Maybe Int
forall a. Maybe a
Nothing
, retryDelay :: Maybe Int
retryDelay = Maybe Int
forall a. Maybe a
Nothing
, commonManager :: Maybe Manager
commonManager = Maybe Manager
forall a. Maybe a
Nothing
}
withOnModelStart :: IO () -> OllamaConfig -> OllamaConfig
withOnModelStart :: IO () -> OllamaConfig -> OllamaConfig
withOnModelStart IO ()
f OllamaConfig
cfg = OllamaConfig
cfg {onModelStart = Just f}
withOnModelError :: IO () -> OllamaConfig -> OllamaConfig
withOnModelError :: IO () -> OllamaConfig -> OllamaConfig
withOnModelError IO ()
f OllamaConfig
cfg = OllamaConfig
cfg {onModelError = Just f}
withOnModelFinish :: IO () -> OllamaConfig -> OllamaConfig
withOnModelFinish :: IO () -> OllamaConfig -> OllamaConfig
withOnModelFinish IO ()
f OllamaConfig
cfg = OllamaConfig
cfg {onModelFinish = Just f}