simonw / simonw/llm

Support for plugins that implement vector indexes

Open
#216 9 comments 16 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

design embeddings plugins
Dominant language
Python
Stars
12.5k
Forks
998
Avg merge
3d 13h
Merged PRs (30d)
10

Description

The llm similar and collection.similar() methods currently implement the slowest brute-force approach.

I want to support faster approaches for this, like sqlite-vss and FAISS and and Pinecone and suchlike... but I'd like to do so through plugins.

Many vector indexes need to be rebuilt periodically, so I need an abstraction that supports that.

I added a modified column to the embeddings table in:

  • #211

With the aim of supporting this feature. I want indexes to be able to scan that table to see which items have been added or modified since they last ran, then re-index just those records.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the llm similar and collection.similar() entry points and reviewing the embeddings table change from #211. Define the plugin index abstraction around scanning modified records and rebuilding or incrementally updating indexes; done means supported plugins can re-index records added or changed since their last run.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, cli, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.