packages feed

intelli-monad-0.1.0.0: app/repl.hs

{-# 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