Skip to content

v0.2.0

Release Date: 2026-08-02

Adds the first production core.Embedder implementation, making semantic search work out of the box. Embeddings are produced by omnillm-core providers, so OmniMemory does not maintain its own per-vendor embedding integrations.

Highlights

  • Production embedder: embedder.NewFromConfig constructs a core.Embedder from configuration — no more hand-rolled embedders for common cases
  • omnillm-core backed: any embedding provider omnillm-core registers (OpenAI today) is selectable by name, with no OmniMemory code changes
  • Non-breaking: purely additive; existing APIs are unchanged

Features

Embeddings

  • embedder.NewFromConfig(core.EmbedderConfig) factory that selects an embedding provider by name (Provider), with Model, Dimension, and Endpoint (base URL) options
  • Adapter over omnillm-core's EmbeddingProvider, mapping Embed/EmbedBatch/Dimension onto CreateEmbedding
  • An explicit Dimension is forwarded to the provider only when set, so models without the dimensions parameter (e.g. text-embedding-ada-002) keep working

Installation

go get github.com/plexusone/omnimemory@v0.2.0

Quick Start

import (
    "github.com/plexusone/omnimemory"
    "github.com/plexusone/omnimemory/core"
    "github.com/plexusone/omnimemory/embedder"
    _ "github.com/plexusone/omnimemory/provider/memory"
)

// Build an embedder from configuration.
emb, err := embedder.NewFromConfig(core.EmbedderConfig{
    Provider: "openai",
    APIKey:   os.Getenv("OPENAI_API_KEY"),
    Model:    "text-embedding-3-small",
})
if err != nil {
    log.Fatal(err)
}

// Pass it to the client for semantic search.
client, _ := omnimemory.NewClient(core.ClientConfig{
    Providers: []core.ProviderConfig{
        {Name: core.ProviderNameMemory},
    },
    Embedder: emb,
})
defer client.Close()

For an OpenAI-compatible endpoint (e.g. a local Ollama server), set Endpoint:

emb, _ := embedder.NewFromConfig(core.EmbedderConfig{
    Provider: "openai",
    Model:    "nomic-embed-text",
    APIKey:   "ollama",
    Endpoint: "http://localhost:11434/v1",
})

Breaking Changes

None. This release is additive.

Dependencies

Dependency Version Purpose
github.com/plexusone/omnillm-core v0.18.0 Embedding providers

Documentation