Copyright | (c) 2025 Tushar Adhatrao |
---|---|
License | MIT |
Maintainer | Tushar Adhatrao <[email protected]> |
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 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 OllamaConfig -> m (Either OllamaError EmbeddingResp)
- defaultEmbeddingOps :: EmbeddingOps
- data EmbeddingOps = EmbeddingOps {
- model :: !Text
- input :: ![Text]
- truncateInput :: !(Maybe Bool)
- keepAliveEmbed :: !(Maybe Int)
- modelOptions :: !(Maybe ModelOptions)
- 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 OllamaConfig | Optional |
-> 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 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 }