# Grizabella
A tri-layer memory framework for LLM solutions.
[](https://pwilkin.github.io/grizabella/)
[](LICENSE)
## Overview
Grizabella is a sophisticated memory layer designed for Large Language Model (LLM) solutions. It provides a unified interface to manage and query data across relational, vector, and graph databases, enabling complex memory and knowledge retrieval for AI applications.
## Key Features
* **Tri-layer Storage:** Integrates SQLite (relational), LanceDB (vector), and Kuzu (graph) for comprehensive data management.
* **Unified Python API:** Offers a simple and consistent Python interface to interact with all three database layers.
* **Complex Query Engine:** Allows for sophisticated queries that can span across the different data storage paradigms.
* **PySide6 UI:** Includes an optional desktop application for visualizing and managing data.
* **MCP Server:** Can operate as a Model Context Protocol (MCP) server, allowing other tools to leverage its memory capabilities.
## Quick Links
* [User Guide](./docs/user_guide/)
* [API Reference](./docs/api_reference/build/html/)
* [Examples](./examples/)
* [MCP Server Startup](./scripts/README.md)
## Quick Installation
For production use (once published):
```bash
pip install grizabella
```
For development:
```bash
git clone https://github.com/pwilkin/grizabella.git
cd grizabella
poetry install
```
## Basic Usage Snippet
```python
from grizabella import Grizabella
# Initialize Grizabella (connects to default in-memory databases)
gz = Grizabella()
# Define an object type (implicitly creates a table/node type)
gz.create_object_type("document", {"text": str, "source": str})
# Add an object
doc1 = gz.add_object(
object_type="document",
data={"text": "This is the first document.", "source": "manual"},
vector_data={"text": "This is the first document."} # Data for embedding
)
print(f"Added document with ID: {doc1.id}")
# Further operations (querying, adding relations, etc.) would go here.
```
## Contributing
Contributions are welcome! Please see `CONTRIBUTING.md` (to be added) for guidelines on how to contribute to Grizabella.
## License
Grizabella is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
Raw data
{
"_id": null,
"home_page": "https://github.com/pwilkin/grizabella",
"name": "grizabella",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.12",
"maintainer_email": null,
"keywords": "python, llm, memory, vector-database, graph-database, sqlite, lancedb, kuzu, pyside6, sentence-transformers, fastmcp, ai, multi-modal",
"author": "Grizabella Project Contributors",
"author_email": "contributors@example.com",
"download_url": "https://files.pythonhosted.org/packages/c3/16/4ac5bd79801c3c8add829352c46b80cd512b508ba888c1b7657453d368d5/grizabella-0.2.5.tar.gz",
"platform": null,
"description": "# Grizabella\n\nA tri-layer memory framework for LLM solutions.\n\n[](https://pwilkin.github.io/grizabella/)\n[](LICENSE)\n\n## Overview\n\nGrizabella is a sophisticated memory layer designed for Large Language Model (LLM) solutions. It provides a unified interface to manage and query data across relational, vector, and graph databases, enabling complex memory and knowledge retrieval for AI applications.\n\n## Key Features\n\n* **Tri-layer Storage:** Integrates SQLite (relational), LanceDB (vector), and Kuzu (graph) for comprehensive data management.\n* **Unified Python API:** Offers a simple and consistent Python interface to interact with all three database layers.\n* **Complex Query Engine:** Allows for sophisticated queries that can span across the different data storage paradigms.\n* **PySide6 UI:** Includes an optional desktop application for visualizing and managing data.\n* **MCP Server:** Can operate as a Model Context Protocol (MCP) server, allowing other tools to leverage its memory capabilities.\n\n## Quick Links\n\n* [User Guide](./docs/user_guide/)\n* [API Reference](./docs/api_reference/build/html/)\n* [Examples](./examples/)\n* [MCP Server Startup](./scripts/README.md)\n\n## Quick Installation\n\nFor production use (once published):\n\n```bash\npip install grizabella\n```\n\nFor development:\n\n```bash\ngit clone https://github.com/pwilkin/grizabella.git\ncd grizabella\npoetry install\n```\n\n## Basic Usage Snippet\n\n```python\nfrom grizabella import Grizabella\n\n# Initialize Grizabella (connects to default in-memory databases)\ngz = Grizabella()\n\n# Define an object type (implicitly creates a table/node type)\ngz.create_object_type(\"document\", {\"text\": str, \"source\": str})\n\n# Add an object\ndoc1 = gz.add_object(\n object_type=\"document\",\n data={\"text\": \"This is the first document.\", \"source\": \"manual\"},\n vector_data={\"text\": \"This is the first document.\"} # Data for embedding\n)\n\nprint(f\"Added document with ID: {doc1.id}\")\n\n# Further operations (querying, adding relations, etc.) would go here.\n```\n\n## Contributing\n\nContributions are welcome! Please see `CONTRIBUTING.md` (to be added) for guidelines on how to contribute to Grizabella.\n\n## License\n\nGrizabella is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A tri-layer memory framework for LLM solutions.",
"version": "0.2.5",
"project_urls": {
"Documentation": "https://pwilkin.github.io/grizabella",
"Homepage": "https://github.com/pwilkin/grizabella",
"Repository": "https://github.com/pwilkin/grizabella"
},
"split_keywords": [
"python",
" llm",
" memory",
" vector-database",
" graph-database",
" sqlite",
" lancedb",
" kuzu",
" pyside6",
" sentence-transformers",
" fastmcp",
" ai",
" multi-modal"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "be9f9e0700a0ef48991b817294466704232f208ce13eac0f13b61c7d6a985261",
"md5": "5512494a0b9ce284090abce0d8f30d4c",
"sha256": "33f4a0cb3048c2486eb436d8da5805b93e2779573589f6a86d3de4551ba2d8c7"
},
"downloads": -1,
"filename": "grizabella-0.2.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5512494a0b9ce284090abce0d8f30d4c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.12",
"size": 163162,
"upload_time": "2025-07-23T15:34:07",
"upload_time_iso_8601": "2025-07-23T15:34:07.298920Z",
"url": "https://files.pythonhosted.org/packages/be/9f/9e0700a0ef48991b817294466704232f208ce13eac0f13b61c7d6a985261/grizabella-0.2.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c3164ac5bd79801c3c8add829352c46b80cd512b508ba888c1b7657453d368d5",
"md5": "0f5eae1850e047d4c70cda540227abb4",
"sha256": "0b1edb7ad37eed14af85707fe9842b0b9b0ee1bb17e6f3a854b28c54cf6b0ab1"
},
"downloads": -1,
"filename": "grizabella-0.2.5.tar.gz",
"has_sig": false,
"md5_digest": "0f5eae1850e047d4c70cda540227abb4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.12",
"size": 133194,
"upload_time": "2025-07-23T15:34:08",
"upload_time_iso_8601": "2025-07-23T15:34:08.745410Z",
"url": "https://files.pythonhosted.org/packages/c3/16/4ac5bd79801c3c8add829352c46b80cd512b508ba888c1b7657453d368d5/grizabella-0.2.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-23 15:34:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pwilkin",
"github_project": "grizabella",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "grizabella"
}