Skip to main content

ell - the language model programming library

Project description

ell logo that inverts based on color scheme

Documentation Status Install Discord X (formerly Twitter) Follow

pip install -U "ell-ai[all]"

ell is a lightweight, functional prompt engineering framework built on a few core principles:

1. Prompts are programs, not strings.

Prompts aren't just strings; they are all the code that leads to strings being sent to a language model. In ell we think of one particular way of using a language model as a discrete subroutine called a language model program.

import ell

@ell.simple(model="gpt-4o")
def hello(world : str):
    """You are a helpful assistant that writes in lower case.""" # System Message
    return f"Say hello to {world[::-1]} with a poem."    # User Message

hello("sama")

alt text

2. Prompts are actually parameters of a machine learning model.

The process of prompt engineering involves many iterations, similar to the optimization processes in machine learning. Because LMPs are just functions, ell provides rich tooling for this process.

ell demonstration

ell provides automatic versioning and serialization of prompts through static and dynamic analysis and gpt-4o-mini autogenerated commit messages directly to a local store. This process is similar to checkpointing in a machine learning training loop, but it doesn't require any special IDE or editor - it's all done with regular Python code.

3. Tools for monitoring, versioning, and visualization

Prompt engineering goes from a dark art to a science with the right tools. Ell Studio is a local, open source tool for prompt version control, monitoring, visualization. With Ell Studio you can empiricize your prompt optimization process over time and catch regressions before it's too late.

ell studio demonstration
ell-studio --storage ./logdir 

4. Multimodality should be first class

LLMs can process and generate various types of content, including text, images, audio, and video. Prompt engineering with these data types should be as easy as it is with text.

from PIL import Image
import ell


@ell.simple(model="gpt-4o", temperature=0.1)
def describe_activity(image: Image.Image):
    return [
        ell.system("You are VisionGPT. Answer <5 words all lower case."),
        ell.user(["Describe what the person in the image is doing:", image])
    ]

# Capture an image from the webcam
describe_activity(capture_webcam_image()) # "they are holding a book"

ell demonstration

ell supports rich type coercion for multimodal inputs and outputs. You can use PIL images, audio, and other multimodal inputs inline in Message objects returned by LMPs.

...and much more!

Read more in the docs!

Installation

To install ell and ell studio, you can use pip. Follow these steps:

  1. Open your terminal or command prompt.

  2. Run the following command to install the ell-ai package from PyPI:

    pip install ell-ai[all]
    
  3. Verify the installation by checking the version of ell:

    python -c "import ell; print(ell.__version__)"
    

This will install both ell and ell studio on your system, allowing you to start using the tools for prompt engineering and visualization.

Next Steps

Explore the documentation to learn more about ell and its features. Follow the Getting Started guide to create your first Language Model Program. Join our Discord community to connect with other users and get support.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ell_ai-0.0.15.tar.gz (3.6 MB view details)

Uploaded Source

Built Distribution

ell_ai-0.0.15-py3-none-any.whl (3.6 MB view details)

Uploaded Python 3

File details

Details for the file ell_ai-0.0.15.tar.gz.

File metadata

  • Download URL: ell_ai-0.0.15.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Darwin/24.1.0

File hashes

Hashes for ell_ai-0.0.15.tar.gz
Algorithm Hash digest
SHA256 b8ae0948263126ccca33a0bc66fba0af41918d616928f2d9362c947af2d6478c
MD5 a362d90ea3aa3690899dc452cce21440
BLAKE2b-256 37e7c5b9d878126bdae0d39966ba842ea85e9fdda8d9337ed32479acd7c22e4c

See more details on using hashes here.

File details

Details for the file ell_ai-0.0.15-py3-none-any.whl.

File metadata

  • Download URL: ell_ai-0.0.15-py3-none-any.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Darwin/24.1.0

File hashes

Hashes for ell_ai-0.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 93a1f4a5af47e4ef28512533ae58fbb5037bb529c5b9e9a7bb0b1094c0986963
MD5 751b2add12f958aced7ca7e4be1476c2
BLAKE2b-256 ea9e5be13d0a632a0c1195e011bcb5499488861f5109cf96d9052eae0a7e490e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page