packages feed

ollama-holes-plugin-0.1.6.0: src/GHC/Plugin/OllamaHoles/Backend/Ollama.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}

-- | The locally hosted ollama backend
module GHC.Plugin.OllamaHoles.Backend.Ollama (ollamaBackend) where

import Ollama (GenerateOps (..))
import Ollama qualified

import GHC.Plugin.OllamaHoles.Backend

-- | The locally hosted ollama backend
ollamaBackend :: Backend
ollamaBackend = Backend{..}
  where
    listModels = fmap getMs <$> Ollama.list
    getMs (Ollama.Models models) = fmap Ollama.name models
    generateFits prompt modelName options = do
        fmap Ollama.response_ <$> Ollama.generate Ollama.defaultGenerateOps{prompt = prompt,
                                                                            modelName = modelName,
                                                                            options = options}