{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeApplications #-}
module Main where
import qualified Data.Text as T
import Database.Persist.Sqlite (SqliteConf)
import IntelliMonad.CustomInstructions
import IntelliMonad.Repl
import IntelliMonad.Tools
import IntelliMonad.Types
import qualified OpenAI.Types as API
import System.Environment (lookupEnv)
main :: IO ()
main = do
model <- do
lookupEnv "OPENAI_MODEL" >>= \case
Just model -> return $ T.pack model
-- Nothing -> return "gpt-4-vision-preview"
Nothing -> return "gpt-4"
runRepl @SqliteConf
defaultTools
[]
"default"
defaultRequest
{ API.createChatCompletionRequestModel = API.CreateChatCompletionRequestModel model
}
mempty