Metadata-Version: 2.4
Name: memorycore-ai
Version: 0.4.0
Summary: Universal memory engine for AI bots. 3 layers: Redis (Hot) + Qdrant (Warm) + Neo4j (Cold). FZ-152 compliant.
Author-email: Otel Group <info@otelgroup.ru>
License: MIT
Project-URL: Homepage, https://memorycore.ru
Project-URL: Documentation, https://api.memorycore.ru/docs
Project-URL: Repository, https://github.com/aleksandrboss3090-code/memory-core-sdk
Project-URL: Dashboard, https://memorycore.ru/dashboard
Keywords: ai,memory,bots,telegram,qdrant,redis,neo4j,embeddings,semantic-search
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: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.28.0
Provides-Extra: async
Requires-Dist: httpx>=0.24.0; extra == "async"
Provides-Extra: all
Requires-Dist: requests>=2.28.0; extra == "all"
Requires-Dist: httpx>=0.24.0; extra == "all"

# Memory Core SDK

Universal memory engine for AI bots. 3 layers: Redis (Hot) + Qdrant (Warm) + Neo4j (Cold).

## Quick Start

```bash
pip install memory-core
```

```python
from memory_core import MemoryClient

memory = MemoryClient("mc_live_...")

# Bot remembers
memory.upsert(user_id="user_42", content="Люблю итальянскую кухню")

# Bot recalls
ctx = memory.context(user_id="user_42", query="что заказать на ужин?")
# → Hot: fresh messages
# → Warm: "итальянская кухня" (score: 0.82)
# → Cold: user knowledge graph
```

## Async (for aiogram, FastAPI)

```bash
pip install memory-core[async]
```

```python
from memory_core import AsyncMemoryClient

memory = AsyncMemoryClient("mc_live_...", bot_id="my_bot")

await memory.upsert(user_id="user_42", content="Предпочитает SPA")
ctx = await memory.context(user_id="user_42", query="что предложить?")
```

## API

| Method | Description |
|--------|-------------|
| `upsert(user_id, content)` | Save to memory (Hot+Warm+Cold) |
| `context(user_id, query)` | Retrieve relevant context |
| `remember(user_id, fact)` | Shortcut: save a fact |
| `recall(user_id, query)` | Shortcut: semantic search |
| `summarize(user_id)` | Summarize session into episode |
| `profile(user_id)` | Full user profile |
| `health()` | API health check |

## Links

- **Landing**: https://memorycore.ru
- **API Docs**: https://api.memorycore.ru/docs
- **Dashboard**: https://memorycore.ru/dashboard

## License

MIT - (c) 2025-2026 Otel Group
