Metadata-Version: 2.1
Name: iotadb
Version: 0.0.15
Summary: Minimal implementation of a local embedding database
Home-page: https://github.com/timothyckl/iota
Author: timothyckl
Author-email: timothy.ckl@outlook.com
License: MIT
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy==1.25.2
Requires-Dist: sentence-transformers==2.6.1
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: twine; extra == "dev"

<p align="center">
    <b>iota - a minimal local embedding database</b>. <br />
</p>

## Motivation

WIP

> [!IMPORTANT]
> This project is by no means scalable, but should suffice for smaller projects.

## Installation

Install the package via PyPI:

```bash
pip install iotadb
```

## Usage

Here is a very simple example:

```python
from iotadb import IotaDB, Document

# Define a list of documents
docs = [
    Document(text="That is a happy dog"),
    Document(text="That is a very happy person"),
    Document(text="Today is a sunny day")
]

# Create a collection
db = IotaDB()
db.create_collection(name="my_collection", documents=docs)

# Query documents within your collection
results = db.search("That is a happy person", return_similarities=True)

for doc, score in results:
    print(f"Text: {doc.text}")
    print(f"similarity: {score:.3f}\n")
```

More examples can be found in the `/examples` directory.

## Features

- **Simple interface**: Easy-to-use API for database operations.
- **Lightweight implementation**: Minimal resource utilization.
- **Local storage**: Stores embeddings locally for fast and retrieval.
- **Fast Indexing**: Efficient embedding indexing for storage and retrieval.

## Use cases

- **Query with Natural Language**: Search for relevant documents using simple natural language queries.
- **Contextual Summarization**: Integrate documents into LLM contexts like GPT-3 for data-augmented tasks.
- **Similarity Search**: Find similar items/documents based on their embeddings.

## Contributing

Interested in contributing? Head over to the [Contribution Guide](CONTRIBUTING.md) for more details.
