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.tar.gz (12.7 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-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ploppie-0.5.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.0

File hashes

Hashes for ploppie-0.5.tar.gz
Algorithm Hash digest
SHA256 5ce0490c915631f0740b2c7387979001fdfc704280170a45c1704cf054d8077f
MD5 850f2080eb874532bb1c90424fdc8adf
BLAKE2b-256 ca81436efd87d1da59d9ba3055040fce176ba91936a8d85e9a3b01fd427d5bf4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ploppie-0.5-py3-none-any.whl
  • Upload date:
  • Size: 15.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.0

File hashes

Hashes for ploppie-0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 13a05a5aabac0261f5228e3889acefa68607f1fdb3a951424187c92f110e8eaf
MD5 399548894855df504f728572abead148
BLAKE2b-256 120e86977e2fd3a44c1274adf4c3200376aa65484086d399fd26ae332aac7460

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