Metadata-Version: 2.1
Name: simba-client
Version: 0.2.1
Summary: Python client for the Simba Knowledge management System
Home-page: https://github.com/GitHamza0206/simba-client
Author: Hamza Zerouali
Author-email: zeroualihamza0206@gmail.com
Requires-Python: >=3.8,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: pydantic (>=2.0.0,<3.0.0)
Requires-Dist: requests (>=2.28.0,<3.0.0)
Requires-Dist: urllib3 (>=2.0.0,<3.0.0)
Project-URL: Documentation, https://simba-client.readthedocs.io
Project-URL: Repository, https://github.com/GitHamza0206/simba-client
Description-Content-Type: text/markdown

# Simba Client (formerly simba_sdk)

A Python client for interacting with the Simba document processing API.

## Installation

### Using pip

```bash
pip install simba-client
```

### Development Installation

```bash
# Clone the repository
git clone https://github.com/GitHamza0206/simba.git
cd simba

# Install dependencies with Poetry
poetry install
```

## Quick Start

```python
from simba_sdk import SimbaClient

# Initialize the client
client = SimbaClient(
    api_url="https://your-api.example.com",
    api_key="your-api-key"
)

# Upload a document
with open("document.pdf", "rb") as f:
    result = client.documents.create_from_file(f, "document.pdf")
    document_id = result["document_id"]

# Parse a document synchronously
parsing_result = client.parser.parse_sync(document_id)

# Parse a document asynchronously
task = client.parser.parse(document_id)
task_id = task["task_id"]

# Check the status of a parsing task
task_status = client.parser.get_task(task_id)

# Generate an embedding for semantic search
embedding_result = client.embedding.embed_document(document_id)

# Perform a similarity search
search_results = client.embedding.get_similarity_search(
    document_id, 
    "financial projections for next quarter",
    limit=3
)
```

## Features

- **Document Management**: Upload, download, list, and delete documents
- **Document Parsing**: Extract structured data from documents, including tables, forms, and entities
- **Document Embeddings**: Generate vector embeddings for documents to enable semantic search
- **Authentication**: Secure API access with API keys
- **Error Handling**: Robust error handling for API requests

## Documentation

For more detailed information, check out the documentation:

- [SimbaClient API Reference](docs/api_reference.md)
- [DocumentManager API Reference](docs/api_reference.md#documentmanager)
- [ParserManager API Reference](docs/api_reference.md#parsermanager)
- [EmbeddingManager API Reference](docs/api_reference.md#embeddingmanager)

## Development

### Setup Development Environment

```bash
# Clone the repository
git clone https://github.com/yourusername/simba-client.git
cd simba-client

# Install dependencies with Poetry
poetry install
```

### Run Tests

```bash
poetry run pytest
```

### Build Documentation

```bash
poetry run sphinx-build docs/source docs/build
```

## License

This project is licensed under the MIT License.

