Metadata-Version: 2.1
Name: gearsllm
Version: 0.1.21
Summary: Lightweight library for building LLM-based control flow.
License: MIT
Author: Shreya Shankar
Author-email: ss.shankar505@gmail.com
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
Requires-Dist: openai (>=0.27.8,<0.28.0)
Requires-Dist: pydantic (>=1.8)
Requires-Dist: tenacity (>=8.2.2,<9.0.0)
Description-Content-Type: text/markdown

# Welcome to Gears

Gears is a lightweight tool for writing control flow with LLMs with **full control over your prompts**. It allows you to build complex chains of actions and conditions, and execute them in a single call.

## Why Gears?

Gears is so minimal; it is simply a wrapper around an LLM API call that:

- Allows you to specify your prompts as [Jinja templates](https://jinja.palletsprojects.com/en/3.1.x/) and inputs as [Pydantic models](https://docs.pydantic.dev/latest/)
- Automatically handles LLM API failures with [exponential backoff](https://tenacity.readthedocs.io/en/latest/)
- Allows you to specify control flow, based on LLM responses, in a simple, declarative way

But the real selling point is that _we are committed to **not** growing the codebase beyond what is necessary to support the above features._ (We are not venture-backed and do not intend to be.)

## Installation

Gears is available on PyPI, and can be installed with pip:

```bash
pip install gearsllm
```

## Dependencies

Gears has the following dependencies:

- `python>=3.9`
- `pydantic`
- `jinja2`
- `tenacity`
- `openai`

## ToDos

- [ ] Add pre-commit hooks with black & isort

