Name | elysia-ai JSON |
Version |
0.2.2
JSON |
| download |
home_page | None |
Summary | Elysia is an open-source agentic platform for searching data. It is built with customisation in mind, allowing you to build agents and tools that are tailored to your specific use case. It uses Weaviate as the default retrieval tools, and can interface with your data stored in a Weaviate cluster. |
upload_time | 2025-08-15 14:34:24 |
maintainer | None |
docs_url | None |
author | None |
requires_python | <3.13.0,>=3.10.0 |
license | None |
keywords |
agentic
ai
llm
retrieval
search
weaviate
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Elysia: Agentic Framework Powered by Decision Trees
> **⚠️ Elysia is in beta!**
>
> If you encounter any issues, please [open an issue on GitHub](https://github.com/weaviate/elysia/issues).
[](https://pepy.tech/projects/elysia-ai) [](https://elysia.weaviate.io/)
Elysia is an agentic platform designed to use tools in a decision tree. A decision agent decides which tools to use dynamically based on its environment and context. You can use custom tools or use the pre-built tools designed to retrieve your data in a Weaviate cluster.
[Read the docs!](https://weaviate.github.io/elysia/)
Installation is as simple as:
```bash
pip install elysia-ai
```
## Get started (App)
Run the app via
```bash
elysia start
```
Then navigate to the settings page, add your required API keys, Weaviate cloud cluster details and specify your models.
Don't forget to check out [the Github Repository for the Frontend](https://github.com/weaviate/elysia-frontend)!
Alternatively, we have created a demo version of Elysia (rate-limited, fixed datasets) to experiment with. Find it at: https://elysia.weaviate.io/
## Get Started (Python)
To use Elysia, you need to either set up your models and API keys in your `.env` file, or specify them in the config. [See the setup page to get started.](https://weaviate.github.io/elysia/setting_up/)
Elysia can be used very simply:
```python
from elysia import tool, Tree
tree = Tree()
@tool(tree=tree)
async def add(x: int, y: int) -> int:
return x + y
tree("What is the sum of 9009 and 6006?")
```
Elysia is pre-configured to be capable of connecting to and interacting with your [Weaviate](https://weaviate.io/deployment/serverless) clusters!
```python
import elysia
tree = elysia.Tree()
response, objects = tree(
"What are the 10 most expensive items in the Ecommerce collection?",
collection_names = ["Ecommerce"]
)
```
This will use the built-in open source _query_ tool or _aggregate_ tool to interact with your Weaviate collections. To get started connecting to Weaviate, [see the setting up page in the docs](https://weaviate.github.io/elysia/setting_up/).
## Installation (bash) (Linux/MacOS)
### PyPi (Recommended)
Elysia requires Python 3.12:
- [Installation via brew (macOS)](https://formulae.brew.sh/formula/python@3.12)
- [Installation via installer (Windows)](https://www.python.org/downloads/release/python-3120/)
- [Installation (Ubuntu)](https://ubuntuhandbook.org/index.php/2023/05/install-python-3-12-ubuntu/)
Optionally create a virtual environment via
```bash
python3.12 -m venv .venv
source .venv/bin/activate
```
Then simply run
```bash
pip install elysia-ai
```
to install straight away!
### GitHub
To get the latest development version, you can clone the github repo by running
```bash
git clone https://github.com/weaviate/elysia
```
move to the working directory via
```bash
cd elysia
```
Create a virtual environment with Python (version 3.10 - 3.12)
```bash
python3.12 -m venv .venv
source .venv/bin/activate
```
and then install Elysia via pip
```bash
pip install -e .
```
Done! You can now use the Elysia python package
### Configuring Settings
To use Elysia with Weaviate, i.e. for agentic searching and retrieval, you need a Weaviate cluster api key and URL. This can be specific in the app directly, or by creating a `.env` file with
```
WCD_URL=...
WCD_API_KEY=...
```
Elysia will automatically detect these when running locally, and this will be the default Weaviate cluster for all users logging into the Elysia app. But these can be configured on a user-by-user basis through the config.
Whichever vectoriser you use for your Weaviate collection you will need to specify your corresponding API key, e.g.
```
OPENAI_API_KEY=...
```
These will automatically be added to the headers for the Weaviate client.
Same for whichever model you choose for the LLM in Elysia, so if you are using GPT-4o, for example, specify an `OPENAI_API_KEY`.
Elysia's recommended config is to use [OpenRouter](https://openrouter.ai/) to give easy access to a variety of models. So this requires
```
OPENROUTER_API_KEY=...
```
## FAQ
<details>
<summary><b>How do I use Elysia with my own data?</b></summary>
You can connect to your own Weaviate cloud cluster, which will automatically identify any collections that exist in the cluster.
Collections require being _preprocessed_ for Elysia. In the app, you just click the 'analyze' button in the Data tab. In Python you can do:
```python
from elysia.preprocess.collection import preprocess
preprocess(collection_names=["YourCollectionName"])
```
</details>
<details>
<summary><b>Can I use a locally running version of Weaviate such as with Docker?</b></summary>
Locally running versions of Weaviate are currently not implemented in the current version of the app but this is planned for a future release. Stay tuned!
</details>
<details>
<summary><b>How do I clear all my Elysia data?</b></summary>
Everything Elysia doesn't store locally will be a collection in your Weaviate cluster. You can delete any collections that start with `ELYSIA_` to reset all your Elysia data.
For example, in Python:
```python
from elysia.util.client import ClientManager()
with ClientManager().connect_to_client() as client:
for collection_name in client.collections.list_all():
if collection_name.startswith("ELYSIA_"):
client.collections.delete(collection_name)
```
</details>
<details>
<summary><b>Can I contribute to Elysia?</b></summary>
Elysia is **fully open source**, so yes of course you can! Clone and create a new branch of Elysia via
```bash
git clone https://github.com/weaviate/elysia
git checkout -b <branch_name>
```
Make your changes, push them to your branch, go to GitHub and submit a pull request.
</details>
<details>
<summary><b>Where is the best place I can start contributing?</b></summary>
There are no 'huge' new features we are planning for Elysia (for the moment). You could start with creating a new tool, or multiple new tools to create a custom workflow for something specific. Look for pain points you experience from your user journey and find what exactly is causing these. Then try to fix them or create an alternative way of doing things!
</details>
Raw data
{
"_id": null,
"home_page": null,
"name": "elysia-ai",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13.0,>=3.10.0",
"maintainer_email": null,
"keywords": "agentic, ai, llm, retrieval, search, weaviate",
"author": null,
"author_email": "Danny <danny@weaviate.io>",
"download_url": "https://files.pythonhosted.org/packages/91/8b/a92d9c369c3f98271d19a83d544c6786de8db12cd662041ab8fcfcc7f9ad/elysia_ai-0.2.2.tar.gz",
"platform": null,
"description": "# Elysia: Agentic Framework Powered by Decision Trees\n\n> **\u26a0\ufe0f Elysia is in beta!**\n>\n> If you encounter any issues, please [open an issue on GitHub](https://github.com/weaviate/elysia/issues).\n\n[](https://pepy.tech/projects/elysia-ai) [](https://elysia.weaviate.io/)\n\nElysia is an agentic platform designed to use tools in a decision tree. A decision agent decides which tools to use dynamically based on its environment and context. You can use custom tools or use the pre-built tools designed to retrieve your data in a Weaviate cluster.\n\n[Read the docs!](https://weaviate.github.io/elysia/)\n\nInstallation is as simple as:\n```bash\npip install elysia-ai\n```\n\n## Get started (App)\n\nRun the app via\n\n```bash\nelysia start\n```\nThen navigate to the settings page, add your required API keys, Weaviate cloud cluster details and specify your models.\n\nDon't forget to check out [the Github Repository for the Frontend](https://github.com/weaviate/elysia-frontend)!\n\nAlternatively, we have created a demo version of Elysia (rate-limited, fixed datasets) to experiment with. Find it at: https://elysia.weaviate.io/\n\n## Get Started (Python)\n\nTo use Elysia, you need to either set up your models and API keys in your `.env` file, or specify them in the config. [See the setup page to get started.](https://weaviate.github.io/elysia/setting_up/)\n\nElysia can be used very simply:\n```python\nfrom elysia import tool, Tree\n\ntree = Tree()\n\n@tool(tree=tree)\nasync def add(x: int, y: int) -> int:\n return x + y\n\ntree(\"What is the sum of 9009 and 6006?\")\n```\n\nElysia is pre-configured to be capable of connecting to and interacting with your [Weaviate](https://weaviate.io/deployment/serverless) clusters!\n```python\nimport elysia\ntree = elysia.Tree()\nresponse, objects = tree(\n \"What are the 10 most expensive items in the Ecommerce collection?\",\n collection_names = [\"Ecommerce\"]\n)\n```\nThis will use the built-in open source _query_ tool or _aggregate_ tool to interact with your Weaviate collections. To get started connecting to Weaviate, [see the setting up page in the docs](https://weaviate.github.io/elysia/setting_up/).\n\n## Installation (bash) (Linux/MacOS)\n\n### PyPi (Recommended)\n\nElysia requires Python 3.12:\n- [Installation via brew (macOS)](https://formulae.brew.sh/formula/python@3.12)\n- [Installation via installer (Windows)](https://www.python.org/downloads/release/python-3120/)\n- [Installation (Ubuntu)](https://ubuntuhandbook.org/index.php/2023/05/install-python-3-12-ubuntu/)\n\nOptionally create a virtual environment via\n```bash\npython3.12 -m venv .venv\nsource .venv/bin/activate\n```\n\nThen simply run \n```bash\npip install elysia-ai\n```\nto install straight away!\n\n### GitHub\n\nTo get the latest development version, you can clone the github repo by running\n```bash\ngit clone https://github.com/weaviate/elysia\n```\nmove to the working directory via\n```bash\ncd elysia\n```\nCreate a virtual environment with Python (version 3.10 - 3.12)\n```bash\npython3.12 -m venv .venv\nsource .venv/bin/activate\n```\nand then install Elysia via pip\n```bash\npip install -e .\n```\nDone! You can now use the Elysia python package\n\n\n### Configuring Settings\n\nTo use Elysia with Weaviate, i.e. for agentic searching and retrieval, you need a Weaviate cluster api key and URL. This can be specific in the app directly, or by creating a `.env` file with\n```\nWCD_URL=...\nWCD_API_KEY=...\n```\nElysia will automatically detect these when running locally, and this will be the default Weaviate cluster for all users logging into the Elysia app. But these can be configured on a user-by-user basis through the config.\n\nWhichever vectoriser you use for your Weaviate collection you will need to specify your corresponding API key, e.g.\n```\nOPENAI_API_KEY=...\n```\nThese will automatically be added to the headers for the Weaviate client.\n\nSame for whichever model you choose for the LLM in Elysia, so if you are using GPT-4o, for example, specify an `OPENAI_API_KEY`.\n\nElysia's recommended config is to use [OpenRouter](https://openrouter.ai/) to give easy access to a variety of models. So this requires\n```\nOPENROUTER_API_KEY=...\n```\n\n## FAQ\n\n<details>\n<summary><b>How do I use Elysia with my own data?</b></summary>\n\nYou can connect to your own Weaviate cloud cluster, which will automatically identify any collections that exist in the cluster.\n\nCollections require being _preprocessed_ for Elysia. In the app, you just click the 'analyze' button in the Data tab. In Python you can do:\n\n```python\nfrom elysia.preprocess.collection import preprocess\n\npreprocess(collection_names=[\"YourCollectionName\"])\n```\n\n</details>\n\n<details>\n<summary><b>Can I use a locally running version of Weaviate such as with Docker?</b></summary>\nLocally running versions of Weaviate are currently not implemented in the current version of the app but this is planned for a future release. Stay tuned!\n</details>\n\n\n<details>\n<summary><b>How do I clear all my Elysia data?</b></summary>\n\nEverything Elysia doesn't store locally will be a collection in your Weaviate cluster. You can delete any collections that start with `ELYSIA_` to reset all your Elysia data.\n\nFor example, in Python:\n```python\nfrom elysia.util.client import ClientManager()\nwith ClientManager().connect_to_client() as client:\n for collection_name in client.collections.list_all():\n if collection_name.startswith(\"ELYSIA_\"):\n client.collections.delete(collection_name)\n```\n</details>\n\n\n<details>\n\n<summary><b>Can I contribute to Elysia?</b></summary>\n\nElysia is **fully open source**, so yes of course you can! Clone and create a new branch of Elysia via\n```bash\ngit clone https://github.com/weaviate/elysia\ngit checkout -b <branch_name>\n```\nMake your changes, push them to your branch, go to GitHub and submit a pull request.\n\n</details>\n\n\n<details>\n<summary><b>Where is the best place I can start contributing?</b></summary>\n\nThere are no 'huge' new features we are planning for Elysia (for the moment). You could start with creating a new tool, or multiple new tools to create a custom workflow for something specific. Look for pain points you experience from your user journey and find what exactly is causing these. Then try to fix them or create an alternative way of doing things!\n\n</details>\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Elysia is an open-source agentic platform for searching data. It is built with customisation in mind, allowing you to build agents and tools that are tailored to your specific use case. It uses Weaviate as the default retrieval tools, and can interface with your data stored in a Weaviate cluster.",
"version": "0.2.2",
"project_urls": {
"Documentation": "https://weaviate.github.io/elysia/",
"Homepage": "https://elysia.weaviate.io"
},
"split_keywords": [
"agentic",
" ai",
" llm",
" retrieval",
" search",
" weaviate"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "e61235bfc4e55fac9ef1d567486d45f37b9a660e83bed1609dcc23786e103f77",
"md5": "7948584c512d805766d1c45950a718e3",
"sha256": "14fdab9e2d8723dc8c5eb6c4d3ad8d1fb900f628d8e0afcb0f151d5205d41442"
},
"downloads": -1,
"filename": "elysia_ai-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7948584c512d805766d1c45950a718e3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13.0,>=3.10.0",
"size": 1565880,
"upload_time": "2025-08-15T14:34:22",
"upload_time_iso_8601": "2025-08-15T14:34:22.457941Z",
"url": "https://files.pythonhosted.org/packages/e6/12/35bfc4e55fac9ef1d567486d45f37b9a660e83bed1609dcc23786e103f77/elysia_ai-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "918ba92d9c369c3f98271d19a83d544c6786de8db12cd662041ab8fcfcc7f9ad",
"md5": "0de9284bca306db12a1d7cacce873190",
"sha256": "51de8bb4903ca3fc6c06c54a1f5ea145708f1cb60a18ec8612f2a108fcd22ecf"
},
"downloads": -1,
"filename": "elysia_ai-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "0de9284bca306db12a1d7cacce873190",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13.0,>=3.10.0",
"size": 1698799,
"upload_time": "2025-08-15T14:34:24",
"upload_time_iso_8601": "2025-08-15T14:34:24.040882Z",
"url": "https://files.pythonhosted.org/packages/91/8b/a92d9c369c3f98271d19a83d544c6786de8db12cd662041ab8fcfcc7f9ad/elysia_ai-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-15 14:34:24",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "elysia-ai"
}