Skip to main content

Tactus

Standard Library / Retriever Modules

Retriever Modules

  • 5 classes

Tactus exposes Biblicus-backed retrievers as Lua modules so you can select a retriever explicitly at the top of your `.tac` file.

Tactus exposes Biblicus-backed retrievers as Lua modules so you can select a retriever explicitly at the top of your .tac file.

Embedding index (file-backed)

local FilesystemCorpus = require("tactus.corpora.filesystem")
local vector = require("tactus.retrievers.embedding_index_file")

support_notes = FilesystemCorpus.Corpus {
  root = "corpora/support-notes",
  configuration = {
    pipeline = {
      extract = {
        -- extraction steps (optional)
      }
    }
  }
}

support_search = vector.Retriever {
  corpus = support_notes,
  configuration = {
    pipeline = {
      index = {
        embedding_provider = { provider_id = "hash-embedding", dimensions = 64 }
      },
      query = {
        limit = 3,
        maximum_total_characters = 1200
      }
    }
  }
}

Embedding index (in-memory)

local FilesystemCorpus = require("tactus.corpora.filesystem")
local vector = require("tactus.retrievers.embedding_index_inmemory")

notes = FilesystemCorpus.Corpus {
  root = "corpora/notes",
  configuration = {
    pipeline = {
      extract = {
        -- extraction steps (optional)
      }
    }
  }
}

search = vector.Retriever {
  corpus = notes,
  configuration = {
    pipeline = {
      index = {
        embedding_provider = { provider_id = "hash-embedding", dimensions = 64 },
        maximum_cache_total_items = 5000
      },
      query = {
        limit = 2
      }
    }
  }
}
local FilesystemCorpus = require("tactus.corpora.filesystem")
local vector = require("tactus.retrievers.sqlite_full_text_search")

notes = FilesystemCorpus.Corpus {
  root = "corpora/notes",
  configuration = {
    pipeline = {
      extract = {
        -- extraction steps (optional)
      }
    }
  }
}

search = vector.Retriever {
  corpus = notes,
  configuration = {
    pipeline = {
      index = {
        snippet_characters = 400,
        chunk_size = 800,
        chunk_overlap = 200
      },
      query = {
        limit = 2,
        maximum_total_characters = 1200
      }
    }
  }
}

TF vector (term-frequency)

local FilesystemCorpus = require("tactus.corpora.filesystem")
local vector = require("tactus.retrievers.tf_vector")

notes = FilesystemCorpus.Corpus {
  root = "corpora/notes",
  configuration = {
    pipeline = {
      extract = {
        -- extraction steps (optional)
      }
    }
  }
}

search = vector.Retriever {
  corpus = notes,
  configuration = {
    pipeline = {
      index = {
        -- optional index settings
      },
      query = {
        limit = 2,
        maximum_total_characters = 1200
      }
    }
  }
}

Classes

Quick Start

Load the module:

local retrievers = require("tactus.retrievers")

View source on GitHub →

Explore more modules

The standard library includes modules for classification, extraction, generation, and more.

View All Modules