An open API service indexing awesome lists of open source software.

https://github.com/edlontech/mnemosyne_zvex

A Mnemosyne Adapter backed by ZVEC
https://github.com/edlontech/mnemosyne_zvex

agents ai vector-search zvec

Last synced: 2 days ago
JSON representation

A Mnemosyne Adapter backed by ZVEC

Awesome Lists containing this project

README

          

# MnemosyneZvex

A [Mnemosyne](https://github.com/edlontech/mnemosyne) `GraphBackend` backed by
[Zvex](https://github.com/edlontech/zvex), an in-process vector database, plus
a DETS sidecar for typed links and mutable per-node metadata.

## Installation

```elixir
def deps do
[
{:mnemosyne_zvex, "~> 0.1.0"} # x-release-please-version
]
end
```

## Usage

```elixir
# Configure Mnemosyne's shared adapters once in your supervisor
children = [
{Mnemosyne.Supervisor,
config: %Mnemosyne.Config{
llm: %{model: "gpt-4o", opts: %{}},
embedding: %{model: "text-embedding-3-small", opts: %{}}
},
llm: MyApp.LLMAdapter,
embedding: MyApp.EmbeddingAdapter}
]

# Then open a repo backed by MnemosyneZvex
{:ok, _pid} =
Mnemosyne.open_repo("my-project",
backend: {MnemosyneZvex.Backend,
path: "/var/data/mnemosyne/my-project",
dimension: 1536}
)

# Use Mnemosyne normally
{:ok, session} = Mnemosyne.start_session("Help user plan a trip", repo: "my-project")
:ok = Mnemosyne.append(session, "User says they want to visit Tokyo", "Asking dates")
:ok = Mnemosyne.close_and_commit(session)

{:ok, memories} = Mnemosyne.recall("my-project", "What does the user want?")
```

## Options

| Option | Required | Default | Description |
|---|---|---|---|
| `:path` | yes | — | Directory under which `zvex/` and `sidecar.dets` will live |
| `:dimension` | yes | — | Embedding dimension (must match your `embedding` adapter) |
| `:index` | no | `:hnsw` | Vector index type: `:hnsw`, `:ivf`, or `:flat` |
| `:metric` | no | `:cosine` | Distance metric: `:cosine`, `:l2`, or `:ip` |
| `:index_opts` | no | `[m: 16, ef_construction: 200]` | Index-specific parameters |
| `:fetch_multiplier` | no | `3` | Over-fetch factor for value function reranking |