Skip to main content

Light weight prompting and parsing library for LLM models

Project description

Limeprompt 🍋

PyPI version

Lightweight prompting and parsing library for LLM models.

What is Limeprompt?

Limeprompt is an opinionated and lightweight prompting and parsing library for LLM models. It aims to make it easy to generate structured outputs from language models. The library is designed to be simple to use, with a single use-case in mind: generating structured outputs from language models. There wont be any support for multi-agent or complex prompting use-cases.

Installation

pip install limeprompt

Example Usage

Here's a simple example using Anthropic's Claude:

import logging
from anthropic import Anthropic
from pydantic import BaseModel
from limeprompt import Limeprompt

# Define your output structure
class Email(BaseModel):
    subject: str
    message: str

# Set up your Anthropic client
anthropic_client = Anthropic(api_key='your-api-key')

# Create a Limeprompt instance
lp = Limeprompt(
    model_client=anthropic_client,
    model_name='claude-3-5-sonnet-20240620',
    prompt="Write an email to <name> about <topic>",
    variables={"name": "Alice", "topic": "limes"},
    output_model=Email,
    max_tokens=1024,
    include_chain_of_thought=True,  # Set to False to disable chain of thought
    log_level=logging.INFO  # Set the desired log level
)

# Run and get your results
result = lp.run()

print(f"Subject: {result.output.subject}")
print(f"Message: {result.output.message}")
if result.chain_of_thought:
    print(f"\nChain of Thought:\n{result.chain_of_thought}")

Here's an example using OpenAI:

import logging
from openai import OpenAI
from pydantic import BaseModel
from limeprompt import Limeprompt

# Define your output structure
class Email(BaseModel):
    subject: str
    message: str

# Set up your OpenAI client
openai_client = OpenAI(api_key='your-api-key')

# Create a Limeprompt instance
lp = Limeprompt(
    model_client=openai_client,
    model_name='gpt-3.5-turbo',
    prompt="Write an email to <name> about <topic>",
    variables={"name": "Bob", "topic": "lemons"},
    output_model=Email,
    max_tokens=1024,
    include_chain_of_thought=False,  # Disable chain of thought
    log_level=logging.WARNING  # Set log level to WARNING
)

# Run and get your results
result = lp.run()

print(f"Subject: {result.output.subject}")
print(f"Message: {result.output.message}")

Contributing

You are welcome to open issues or submit PRs. Here's my todo list for the library:

  • Add support for OpenAI
  • Add logging options
  • Add ability to disable chain of thought
  • Modularize the prompting techniques
  • Add support for few-shot prompting

License

Limeprompt is released under the MIT License. Feel free to use it in your projects.

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

limeprompt-0.2.3.tar.gz (4.9 kB view hashes)

Uploaded Source

Built Distribution

limeprompt-0.2.3-py3-none-any.whl (6.3 kB view hashes)

Uploaded Python 3

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