pyloom


Namepyloom JSON
Version 0.0.3 PyPI version JSON
download
home_page
SummaryA event sourcing framework for building large language model applications
upload_time2023-08-14 01:48:41
maintainer
docs_urlNone
authorTeng "Niel" Hu
requires_python>=3.9,<4.0
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🧶 Pyloom

🪡 A event sourcing framework for building large language model applications 🪡

Pyloom is a framework designed to streamline the development of intricate LLM applications. Drawing inspiration from [event sourcing](https://martinfowler.com/eaaDev/EventSourcing.html), Pyloom applies this concept to the LLM agent development, offering a range of powerful features that enables better dev experience.

Developing intricate and non-deterministic LLM agents involves making multiple LLM calls and intricate control structures, similar to constructing a Marble 
Machine (🔮). If an error arises, developers are frequently compelled to rerun the entire agent workflow. Developers care not only the agent's final outcome but also the steps it takes to arrive there. At times, We want to see how tweaks like extra tools or adjusted prompts in-between can affect the final outcome.

Pyloom is crafted to address these challenges.

Features
- **"Git for Agent":** Pyloom tracks state changes and the evolution of the agent at each step.
- **Agent Replay:** With Pyloom, developers can replay and navigate through the agent's flow. Once encouter an error in the agent flow, you can fix the issue and restart from the exact point of failure.
- **Event Sourcing:** Pyloom employs event sourcing, representing agent actions as events. By replaying the event stream, the agent's state can be reconstructed. Furthermore, developer can apply the same event streams to different agents and compare performance.
- **Reproduce Production Issues:** Leveraging event sourcing, Pyloom facilitates the reproducing of production errors by replaying the identical event streams in development environment.


Pyloom can be used with other LLM frameworks like langchain and guidance.

## Installation
You can install Pyloom using pip:

```python
pip install pyloom
```

## Quick Start
- [tutorial](notebooks/tutorial.ipynb)

## Contributing
We are extremely open to contributions in various forms: bug fixes, new features, improved documentation, and pull requests. Your input is valuable to us!

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "pyloom",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9,<4.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "Teng \"Niel\" Hu",
    "author_email": "hu.niel92@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/d4/25/c11c005ef647afe1ad01983a8b51230ef43186cdb0a304ec2c2007382b1b/pyloom-0.0.3.tar.gz",
    "platform": null,
    "description": "# \ud83e\uddf6 Pyloom\n\n\ud83e\udea1 A event sourcing framework for building large language model applications \ud83e\udea1\n\nPyloom is a framework designed to streamline the development of intricate LLM applications. Drawing inspiration from [event sourcing](https://martinfowler.com/eaaDev/EventSourcing.html), Pyloom applies this concept to the LLM agent development, offering a range of powerful features that enables better dev experience.\n\nDeveloping intricate and non-deterministic LLM agents involves making multiple LLM calls and intricate control structures, similar to constructing a Marble \nMachine (\ud83d\udd2e). If an error arises, developers are frequently compelled to rerun the entire agent workflow. Developers care not only the agent's final outcome but also the steps it takes to arrive there. At times, We want to see how tweaks like extra tools or adjusted prompts in-between can affect the final outcome.\n\nPyloom is crafted to address these challenges.\n\nFeatures\n- **\"Git for Agent\":** Pyloom tracks state changes and the evolution of the agent at each step.\n- **Agent Replay:** With Pyloom, developers can replay and navigate through the agent's flow. Once encouter an error in the agent flow, you can fix the issue and restart from the exact point of failure.\n- **Event Sourcing:** Pyloom employs event sourcing, representing agent actions as events. By replaying the event stream, the agent's state can be reconstructed. Furthermore, developer can apply the same event streams to different agents and compare performance.\n- **Reproduce Production Issues:** Leveraging event sourcing, Pyloom facilitates the reproducing of production errors by replaying the identical event streams in development environment.\n\n\nPyloom can be used with other LLM frameworks like langchain and guidance.\n\n## Installation\nYou can install Pyloom using pip:\n\n```python\npip install pyloom\n```\n\n## Quick Start\n- [tutorial](notebooks/tutorial.ipynb)\n\n## Contributing\nWe are extremely open to contributions in various forms: bug fixes, new features, improved documentation, and pull requests. Your input is valuable to us!\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "A event sourcing framework for building large language model applications",
    "version": "0.0.3",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "93085cfb4d3cf3e091f805a0791a2f43af3846acd458a1011086cece76e432fb",
                "md5": "d3942e192399b421ca7a7d7b4e92eb16",
                "sha256": "8e96e83712607473a1d94b217ee32c8192a708fad242f41f69d396677623e5f2"
            },
            "downloads": -1,
            "filename": "pyloom-0.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d3942e192399b421ca7a7d7b4e92eb16",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<4.0",
            "size": 13940,
            "upload_time": "2023-08-14T01:48:40",
            "upload_time_iso_8601": "2023-08-14T01:48:40.489946Z",
            "url": "https://files.pythonhosted.org/packages/93/08/5cfb4d3cf3e091f805a0791a2f43af3846acd458a1011086cece76e432fb/pyloom-0.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d425c11c005ef647afe1ad01983a8b51230ef43186cdb0a304ec2c2007382b1b",
                "md5": "e779f52e277493dac275a0f577a76258",
                "sha256": "4c3e05ffcbe59ebaad4e65c85958fa8711b198763712e54ae863e9c43859dad5"
            },
            "downloads": -1,
            "filename": "pyloom-0.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "e779f52e277493dac275a0f577a76258",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<4.0",
            "size": 13253,
            "upload_time": "2023-08-14T01:48:41",
            "upload_time_iso_8601": "2023-08-14T01:48:41.890012Z",
            "url": "https://files.pythonhosted.org/packages/d4/25/c11c005ef647afe1ad01983a8b51230ef43186cdb0a304ec2c2007382b1b/pyloom-0.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-14 01:48:41",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "pyloom"
}
        
Elapsed time: 0.10338s