Metadata-Version: 2.4
Name: eigenlake
Version: 0.2.2
Summary: Python SDK for EigenLake Cloud
Project-URL: Homepage, https://eigenlake.dev
Project-URL: Documentation, https://docs.eigenlake.dev
Project-URL: Repository, https://github.com/EigenLake-Org/eigenlake-client
Project-URL: Issues, https://github.com/EigenLake-Org/eigenlake-client/issues
Author: EigenLake
Keywords: agent,clustering,eigenlake,embeddings,vector-search
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27.0
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.5.0; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.25.0; extra == 'docs'
Requires-Dist: pymdown-extensions>=10.0.0; extra == 'docs'
Description-Content-Type: text/markdown

# EigenLake Python Client

Python SDK for EigenLake Cloud.

## Install

```bash
pip install eigenlake
```

## Quickstart

```python
import eigenlake
from eigenlake import schema as s

with eigenlake.connect(
    url="https://api.eigenlake.dev",
    api_key="<sk_sbx_your_api_key_here>",
) as client:
    schema, index_options = (
        s.SchemaBuilder(additional_properties=False)
        .add("document_id", s.string(required=True, filterable=True))
        .add("text", s.string(filterable=False))
        .add("created_at", s.datetime(filterable=True))
        .build()
    )

    idx = client.indexes.create_or_get(
        namespace="demo-namespace",
        index="demo-index",
        dimensions=128,
        schema=schema,
        index_options=index_options,
    )

    record_id = idx.records.add(
        properties={"document_id": "doc-1", "text": "hello"},
        vector=[0.1] * 128,
    )

    result = idx.search.nearest(
        vector=[0.1] * 128,
        limit=3,
    )
    print(record_id, result)
```

## Agent Query

```python
import eigenlake

with eigenlake.connect(url="https://api.eigenlake.dev", api_key="<sk_sbx_your_api_key_here>") as client:
    idx = client.indexes.open(namespace="demo-automotive", index="automotive-fault-clustering")
    result = idx.agent.query("show me recent battery failures")
    print(result["filter"])
```

## Docs

- Documentation source: `docs/`
- Docs site config: `mkdocs.yml`

```bash
pip install -e ".[docs]"
mkdocs serve
```

Docs will be available at `http://127.0.0.1:8000`.
