| Copyright | (c) 2025 Tushar Adhatrao |
|---|---|
| License | MIT |
| Maintainer | Tushar Adhatrao <tusharadhatrao@gmail.com> |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Ollama.Embeddings
Description
This module provides functions to generate text embeddings from an Ollama model. It includes both high-level (embedding, embeddingM) and low-level (embeddingOps, embeddingOpsM) APIs for generating embeddings, with support for customizing model options, truncation, and keep-alive settings. The embeddings are returned as a list of float vectors, suitable for tasks like semantic search or text similarity analysis.
The EmbeddingOps type configures the embedding request, and EmbeddingResp represents the response containing the model name and the generated embeddings. The defaultEmbeddingOps provides a default configuration for convenience.
Example:
>>>embedding "llama3.2" ["Hello, world!"]Right (EmbeddingResp "llama3.2" [[0.1, 0.2, ...]])
Synopsis
- embedding :: Text -> [Text] -> IO (Either OllamaError EmbeddingResp)
- embeddingOps :: Text -> [Text] -> Maybe Bool -> Maybe Int -> Maybe ModelOptions -> Maybe Int -> Maybe OllamaConfig -> IO (Either OllamaError EmbeddingResp)
- embeddingM :: MonadIO m => Text -> [Text] -> m (Either OllamaError EmbeddingResp)
- embeddingOpsM :: MonadIO m => Text -> [Text] -> Maybe Bool -> Maybe Int -> Maybe ModelOptions -> Maybe Int -> Maybe OllamaConfig -> m (Either OllamaError EmbeddingResp)
- defaultEmbeddingOps :: EmbeddingOps
- data EmbeddingOps = EmbeddingOps {
- modelName :: !Text
- input :: ![Text]
- truncateInput :: !(Maybe Bool)
- keepAlive :: !(Maybe Int)
- modelOptions :: !(Maybe ModelOptions)
- dimensions :: !(Maybe Int)
- data EmbeddingResp = EmbeddingResp {
- respondedModel :: !Text
- respondedEmbeddings :: ![[Float]]
- data ModelOptions = ModelOptions {
- numKeep :: Maybe Int
- seed :: Maybe Int
- numPredict :: Maybe Int
- topK :: Maybe Int
- topP :: Maybe Double
- minP :: Maybe Double
- typicalP :: Maybe Double
- repeatLastN :: Maybe Int
- temperature :: Maybe Double
- repeatPenalty :: Maybe Double
- presencePenalty :: Maybe Double
- frequencyPenalty :: Maybe Double
- penalizeNewline :: Maybe Bool
- stop :: Maybe [Text]
- numa :: Maybe Bool
- numCtx :: Maybe Int
- numBatch :: Maybe Int
- numGpu :: Maybe Int
- mainGpu :: Maybe Int
- useMmap :: Maybe Bool
- numThread :: Maybe Int
- defaultModelOptions :: ModelOptions
Embedding API
Arguments
| :: Text | Model name |
| -> [Text] | List of input texts |
| -> IO (Either OllamaError EmbeddingResp) |
Simplified API for generating embeddings.
A higher-level function that generates embeddings using default settings for truncation, keep-alive, model options, and Ollama configuration. Suitable for basic use cases.
Arguments
| :: Text | Model name |
| -> [Text] | List of input texts |
| -> Maybe Bool | Optional truncation flag |
| -> Maybe Int | Optional keep-alive timeout in minutes |
| -> Maybe ModelOptions | Optional model options |
| -> Maybe Int | Optional |
| -> Maybe OllamaConfig | |
| -> IO (Either OllamaError EmbeddingResp) |
Generates embeddings for a list of input texts with full configuration.
Sends a POST request to the /api/embed endpoint to generate embeddings for the provided inputs. Allows customization of truncation, keep-alive settings, model options, and Ollama configuration. Returns Right with an EmbeddingResp on success or Left with an OllamaError on failure.
embeddingM :: MonadIO m => Text -> [Text] -> m (Either OllamaError EmbeddingResp) Source #
embeddingOpsM :: MonadIO m => Text -> [Text] -> Maybe Bool -> Maybe Int -> Maybe ModelOptions -> Maybe Int -> Maybe OllamaConfig -> m (Either OllamaError EmbeddingResp) Source #
MonadIO version of embeddingOps for use in monadic contexts.
Lifts the embeddingOps function into a MonadIO context, allowing it to be used in monadic computations with full configuration options.
Configuration and Response Types
defaultEmbeddingOps :: EmbeddingOps Source #
Default configuration for embedding requests.
Provides a default EmbeddingOps with the "llama3.2" model, an empty input list, and no additional options. Can be customized by modifying fields as needed.
data EmbeddingOps Source #
Configuration for an embedding request.
Constructors
| EmbeddingOps | |
Fields
| |
Instances
| ToJSON EmbeddingOps Source # | |
Defined in Data.Ollama.Embeddings Methods toJSON :: EmbeddingOps -> Value # toEncoding :: EmbeddingOps -> Encoding # toJSONList :: [EmbeddingOps] -> Value # toEncodingList :: [EmbeddingOps] -> Encoding # omitField :: EmbeddingOps -> Bool # | |
| Show EmbeddingOps Source # | |
Defined in Data.Ollama.Embeddings Methods showsPrec :: Int -> EmbeddingOps -> ShowS # show :: EmbeddingOps -> String # showList :: [EmbeddingOps] -> ShowS # | |
| Eq EmbeddingOps Source # | |
Defined in Data.Ollama.Embeddings | |
data EmbeddingResp Source #
Response type for an embedding request.
Constructors
| EmbeddingResp | |
Fields
| |
Instances
| FromJSON EmbeddingResp Source # | |
Defined in Data.Ollama.Embeddings Methods parseJSON :: Value -> Parser EmbeddingResp # parseJSONList :: Value -> Parser [EmbeddingResp] # | |
| Show EmbeddingResp Source # | |
Defined in Data.Ollama.Embeddings Methods showsPrec :: Int -> EmbeddingResp -> ShowS # show :: EmbeddingResp -> String # showList :: [EmbeddingResp] -> ShowS # | |
| Eq EmbeddingResp Source # | |
Defined in Data.Ollama.Embeddings Methods (==) :: EmbeddingResp -> EmbeddingResp -> Bool # (/=) :: EmbeddingResp -> EmbeddingResp -> Bool # | |
Model Options
data ModelOptions Source #
Optional model tuning parameters that influence generation behavior.
Since: 0.2.0.0
Constructors
| ModelOptions | |
Fields
| |
Instances
| ToJSON ModelOptions Source # | Custom ToJSON instance for Options |
Defined in Data.Ollama.Common.Types Methods toJSON :: ModelOptions -> Value # toEncoding :: ModelOptions -> Encoding # toJSONList :: [ModelOptions] -> Value # toEncodingList :: [ModelOptions] -> Encoding # omitField :: ModelOptions -> Bool # | |
| Show ModelOptions Source # | |
Defined in Data.Ollama.Common.Types Methods showsPrec :: Int -> ModelOptions -> ShowS # show :: ModelOptions -> String # showList :: [ModelOptions] -> ShowS # | |
| Eq ModelOptions Source # | |
Defined in Data.Ollama.Common.Types | |
defaultModelOptions :: ModelOptions Source #
Default model options for API requests.
Provides a default ModelOptions configuration with all fields set to Nothing, suitable as a starting point for customizing model parameters like temperature or token limits.
Example:
>>>let opts = defaultModelOptions { temperature = Just 0.7 }