Skip to main content

A high-level, stupid-simple Pythonic LiteLLM abstraction layer for implementing simple chat workflows, with tools.

Project description

Ploppie

A high-level, stupid-simple Pythonic LiteLLM abstraction layer for implementing simple chat workflows, with tools. Supports vision and audio models. Includes facilities for easy (de)serialization of chat histories.

So stupid that I couldn't come up with a better name.

Installation

pip install ploppie

Example Usage

Simple chat

from ploppie import Chat

chat = Chat()

response = chat.system("You are a helpful assistant.") \
    .user("What is the capital of France?") \
    .ready()

print(response)

Chat with tools

from ploppie import Chat

chat = Chat(model="gpt-4o-mini")

@chat.tool("Perform mathematical calculations")
def calculate(expression: "str: The expression to calculate"):
    return eval(expression)
    
print(chat.send("What is 2502 * 2502, and 2858 - 28592? Please tell me the results."))

Chat with vision

from ploppie import Chat
from ploppie.messages import Image

chat = Chat(model="gpt-4o-mini")

response = chat.system("You are a helpful assistant.") \
    .user(Image(file_handle=open("beautiful_landscape.png", "rb"))) \
    .ready()

print(response)

Utility

from ploppie import Utility
from datetime import datetime

utility = Utility(model="gpt-4o-mini")
time_of_day = datetime.now().strftime("%I:%M %p")

print(f"Time of day: {time_of_day}")

response = utility.selector(
    f"Pick a color that best matches the sky for this time of day: {time_of_day}",
    options=[
        "red",
        "blue",
        "green",
        "yellow",
        "purple",
        "orange",
        "pink",
    ]
)

print(response)

See the examples directory for more information.

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

ploppie-0.5.1.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ploppie-0.5.1-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file ploppie-0.5.1.tar.gz.

File metadata

  • Download URL: ploppie-0.5.1.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for ploppie-0.5.1.tar.gz
Algorithm Hash digest
SHA256 a966394a097b9c682aa38888ce90e8d44dec2013196c10999dc404ff4ffa5d4b
MD5 9c579ae0224be9fa676be751e38a650d
BLAKE2b-256 6bca041b7d636a45a5abd96cdf5823af06e3645f589c39cc3c15747537974df1

See more details on using hashes here.

File details

Details for the file ploppie-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: ploppie-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for ploppie-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a9bccd1869ea779a1e7b6ced8ad3d099ed430300abc319ec934cfbc636772290
MD5 407d8628d35fcb961b1817769c5320bc
BLAKE2b-256 ce21f4e29c9b897a336f27ac31d56a970d65d94d3afbf5e1ab1f6a49ebb14088

See more details on using hashes here.

Supported by

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