Metadata-Version: 2.4
Name: zerolatency
Version: 0.2.0
Summary: Python SDK for the 0Latency agent memory API with drop-in wrappers for Anthropic, OpenAI, and Gemini
Home-page: https://github.com/0latency/python-sdk
Author: 0Latency
Author-email: 0Latency <justin@0latency.ai>
License: MIT
Project-URL: Homepage, https://0latency.ai
Project-URL: Documentation, https://docs.0latency.ai
Project-URL: Repository, https://github.com/0latency/python-sdk
Keywords: ai,memory,agents,llm,machine-learning,anthropic,openai,gemini,claude,gpt
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
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
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.25.0
Requires-Dist: anthropic>=0.18.0
Requires-Dist: openai>=1.0.0
Requires-Dist: google-generativeai>=0.3.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: black>=22.0.0; extra == "dev"
Requires-Dist: mypy>=0.950; extra == "dev"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# 0Latency Python SDK

A lightweight Python client for the [0Latency](https://0latency.ai) agent memory API.

## Installation

```bash
pip install zero-latency
```

## Quick Start

```python
from zero_latency import ZeroLatencyClient

# Initialize the client
client = ZeroLatencyClient(api_key="your_api_key_here")

# Extract memories from a conversation
result = client.extract(
    agent_id="my-agent",
    human_message="I love hiking in the mountains",
    agent_message="That's great! Mountain hiking is wonderful exercise."
)

# Recall relevant memories
memories = client.recall(
    agent_id="my-agent",
    query="What outdoor activities does the user enjoy?",
    limit=5
)

for memory in memories:
    print(f"- {memory['content']} (confidence: {memory['confidence']})")
```

## Features

- **Extract**: Automatically extract and store memories from conversations
- **Recall**: Semantic search to find relevant memories
- **Search**: Keyword-based text search
- **Seed**: Bulk import existing facts or notes
- **Graph**: Explore memory relationships and connections
- **Entities**: Extract and track people, places, concepts
- **Sentiment**: Analyze emotional tone across memories
- **Consolidate**: Merge and deduplicate similar memories

## Usage

### Context Manager (Recommended)

```python
with ZeroLatencyClient(api_key="your_api_key") as client:
    memories = client.recall(agent_id="my-agent", query="user preferences")
```

### Direct Instantiation

```python
client = ZeroLatencyClient(api_key="your_api_key")
try:
    memories = client.recall(agent_id="my-agent", query="user preferences")
finally:
    client.close()
```

### Error Handling

```python
from zero_latency import ZeroLatencyClient, AuthenticationError, ValidationError

client = ZeroLatencyClient(api_key="your_api_key")

try:
    result = client.extract(
        agent_id="my-agent",
        human_message="Hello!",
        agent_message="Hi there!"
    )
except AuthenticationError:
    print("Invalid API key")
except ValidationError as e:
    print(f"Invalid request: {e}")
```

## API Methods

### `extract(agent_id, human_message, agent_message)`
Extract and store memories from a conversation turn.

### `recall(agent_id, query, limit=10)`
Recall relevant memories using semantic search.

### `search(agent_id, q, limit=20)`
Search memories by keyword.

### `list_memories(agent_id, limit=50)`
List all memories for an agent.

### `seed(agent_id, facts)`
Bulk import a list of facts.

### `get_graph(agent_id, memory_id, depth=2)`
Get memory graph traversal.

### `get_entities(agent_id, limit=50)`
List extracted entities.

### `get_sentiment_summary(agent_id)`
Get sentiment breakdown.

### `consolidate(agent_id, auto_merge=False)`
Run consolidation to merge similar memories.

### `delete_memory(memory_id)`
Delete a specific memory.

## Documentation

Full documentation available at [docs.0latency.ai](https://docs.0latency.ai)

## License

MIT License - see LICENSE file for details.

## Support

- Email: justin@0latency.ai
- Issues: [GitHub Issues](https://github.com/0latency/python-sdk/issues)
