Metadata-Version: 2.4
Name: cognify-sdk
Version: 0.1.0
Summary: Python SDK for Cognify AI platform
Project-URL: Homepage, https://github.com/cognify-ai/cognify-py-sdk
Project-URL: Documentation, https://cognify-py-sdk.readthedocs.io
Project-URL: Repository, https://github.com/cognify-ai/cognify-py-sdk
Project-URL: Issues, https://github.com/cognify-ai/cognify-py-sdk/issues
Author-email: Cognify Team <support@cognify.ai>
License-Expression: MIT
License-File: LICENSE
Keywords: ai,api,cognify,documents,rag,sdk
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: aiofiles>=23.2.0
Requires-Dist: cryptography>=41.0.0
Requires-Dist: httpx>=0.25.0
Requires-Dist: pydantic-settings>=2.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pyjwt>=2.8.0
Requires-Dist: python-dateutil>=2.8.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: python-multipart>=0.0.6
Requires-Dist: typing-extensions>=4.0.0
Provides-Extra: dev
Requires-Dist: bandit>=1.7.0; extra == 'dev'
Requires-Dist: black>=23.0.0; extra == 'dev'
Requires-Dist: build>=0.10.0; extra == 'dev'
Requires-Dist: flake8>=6.0.0; extra == 'dev'
Requires-Dist: httpx-mock>=0.10.0; extra == 'dev'
Requires-Dist: isort>=5.12.0; extra == 'dev'
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: pre-commit>=3.0.0; extra == 'dev'
Requires-Dist: pylint>=2.17.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest-mock>=3.10.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Requires-Dist: safety>=2.3.0; extra == 'dev'
Requires-Dist: twine>=4.0.0; extra == 'dev'
Requires-Dist: types-python-dateutil>=2.8.0; extra == 'dev'
Requires-Dist: types-requests>=2.31.0; extra == 'dev'
Requires-Dist: wheel>=0.40.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.20.0; extra == 'docs'
Description-Content-Type: text/markdown

# Cognify Python SDK

[![PyPI version](https://badge.fury.io/py/cognify-sdk.svg)](https://badge.fury.io/py/cognify-sdk)
[![Python Support](https://img.shields.io/pypi/pyversions/cognify-sdk.svg)](https://pypi.org/project/cognify-sdk/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A comprehensive Python SDK for the Cognify AI platform, providing easy access to document management, search, RAG (Retrieval-Augmented Generation), and conversation capabilities.

## 🚀 Features

- **📄 Document Management**: Upload, process, and manage documents with metadata
- **🔍 Search & Query**: Semantic, keyword, and hybrid search capabilities
- **🤖 RAG Operations**: Retrieval-Augmented Generation for intelligent Q&A
- **💬 Conversations**: Chat and conversation management with context
- **📁 Collections**: Organize documents into collections with permissions
- **🏢 Multi-tenant Support**: Organization-level isolation and workspaces
- **🔐 Authentication**: Secure API key and JWT token support
- **⚡ Async/Sync Support**: Both asynchronous and synchronous API methods
- **🎯 Type Safety**: Full type hints and Pydantic models
- **🛡️ Error Handling**: Comprehensive exception hierarchy

## Installation

```bash
pip install cognify-sdk
```

## Quick Start

```python
from cognify_sdk import CognifyClient

# Initialize the client
client = CognifyClient(api_key="your_api_key")

# Upload a document
with open("document.pdf", "rb") as f:
    document = client.documents.upload(
        name="My Document",
        file=f,
        metadata={"category": "research"}
    )

# Search documents
results = client.query.search(
    query="artificial intelligence",
    limit=10
)

# Start a conversation
conversation = client.conversations.create(
    title="AI Discussion",
    initial_message="What is artificial intelligence?"
)
```

## Async Support

The SDK supports both synchronous and asynchronous operations:

```python
import asyncio
from cognify_sdk import CognifyClient

async def main():
    async with CognifyClient(api_key="your_api_key") as client:
        # Async operations
        documents = await client.documents.alist()
        results = await client.query.asearch("machine learning")

asyncio.run(main())
```

## Configuration

Configure the SDK using environment variables or direct parameters:

```bash
# Environment variables
export COGNIFY_API_KEY="your_api_key"
export COGNIFY_BASE_URL="https://api.cognify.ai"
export COGNIFY_TIMEOUT=30
```

```python
# Direct configuration
client = CognifyClient(
    api_key="your_api_key",
    base_url="https://api.cognify.ai",
    timeout=60,
    max_retries=3,
    debug=True
)
```

## Development Status

This SDK is currently in active development. The following modules are planned:

- [x] Core Client Architecture
- [ ] Authentication Module
- [ ] Documents Module
- [ ] Query/Search Module
- [ ] RAG/Agents Module
- [ ] Conversations Module
- [ ] Collections/Organizations Module

## Requirements

- Python 3.11+
- httpx >= 0.25.0
- pydantic >= 2.0.0

## License

MIT License - see LICENSE file for details.

## Support

For support and questions, please contact support@cognify.ai or visit our documentation at https://docs.cognify.ai
