packages feed

ollama-haskell-0.4.2.0: examples/Embeddings.hs

{-# OPTIONS_GHC -Wno-deprecations #-}
module Main (main) where

import Ollama

main :: IO ()
main = do
  client <- defaultClient
  putStrLn "=== Ollama Modern Embeddings API (/api/embed) ==="
  let req = embedRequest "nomic-embed-text" ["Hello world", "Haskell LLM integration"]
  res <- embed client req
  case res of
    Left err -> putStrLn $ "Error: " <> show err
    Right resp -> do
      let vectors = erEmbeddings resp
      putStrLn $ "Generated " <> show (length vectors) <> " embeddings."
      case vectors of
        (v : _) -> putStrLn $ "Embedding vector dimension: " <> show (length v)
        [] -> putStrLn "No vector generated"

  putStrLn "\n=== Ollama Legacy Embeddings API (/api/embeddings) ==="
  let legacyReq = EmbeddingsRequest (ModelName "nomic-embed-text") "Functional programming in Haskell" Nothing Nothing
  legacyRes <- embeddings client legacyReq
  case legacyRes of
    Left err -> putStrLn $ "Legacy Error: " <> show err
    Right resp ->
      putStrLn $ "Legacy embedding dimension: " <> show (length (ebrEmbedding resp))