Skip to main content

Installation

pip install eigen-client

Supported embedding models

If you desire to use a model that is not listed here, you can simply create the index with client.create_index(...) and provide the desired dimensions and similarity metric.
Model NameProviderDimensionsSimilarity Metric
text-embedding-3-smallOpenAI1536cosine
text-embedding-3-largeOpenAI3072cosine
text-embedding-ada-002OpenAI1536cosine
all-minilm:22mOllama384cosine
nomic-embed-text:v1.5Ollama768cosine
mxbai-embed-large:335mOllama1024cosine
snowflake-arctic-embed2:568mOllama1024cosine
snowflake-arctic-embed:335mOllama1024cosine
bge-m3:567mOllama1024cosine
bge-large:335mOllama1024cosine

Usage

Creating an index

python
import os
from eigen_client.client import Client
from eigen_client.data_types import Document

client = Client(
    url="http://localhost:8080",
    api_key="eigendb-***",
)

index = client.create_index_from_model(
    index_name="food-facts",
    model_name="text-embedding-3-small",
    model_provider="openai",
    model_provider_api_key="your openai api key..."
)

documents = [
    Document(id=1, data="Fresh herbs boost flavor.", metadata={"recipe_id": "123"}),
    Document(id=2, data="Slow simmer blends soup.", metadata={"recipe_id": "456"}),
    Document(id=3, data="Homemade bread smells great.", metadata={"recipe_id": "789"}),
    Document(id=4, data="Grilled veggies taste sweeter.", metadata={"recipe_id": "987"}),
    Document(id=5, data="Cast iron sears steak well.", metadata={"recipe_id": "654"})
]

index.upsert_docs(documents)

results = index.search_docs(
    string="Baking",
    k=3
)

print(results)

Using an existing index

python
import os
from eigen_client.index import Index
from eigen_client.data_types import Document

index = Index(
    url="http://localhost:8080",
    api_key="eigendb-***",
    index_name="food-facts",
    model_name="text-embedding-3-small",
    model_provider="openai",
    model_provider_api_key="your openai api key..."
)

documents = [
    Document(id=1, data="Fresh herbs boost flavor.", metadata={"recipe_id": "123"}),
    Document(id=2, data="Slow simmer blends soup.", metadata={"recipe_id": "456"}),
    Document(id=3, data="Homemade bread smells great.", metadata={"recipe_id": "789"}),
    Document(id=4, data="Grilled veggies taste sweeter.", metadata={"recipe_id": "987"}),
    Document(id=5, data="Cast iron sears steak well.", metadata={"recipe_id": "654"})
]

index.upsert_docs(documents)

results = index.search_docs(
    string="Baking",
    k=3
)

print(results)
I