Skip to main content

Plomp Python Module

Project description

Plomp

A small python module for managing and debugging agent contexts.

Just plomp it in and 'prompt' away

Overview

Plomp is a tiny library designed to easily integrate into python programs which invoke an LLM over multiple steps and provide some useful benefits such as visualizing progress and making context retrival easier.

Plomp has three main goals:

  1. Provide simple observability into execution multistep LLM prompts ("agents" if you must)
  2. Track and manage context retrieval
  3. Integrate easily into existing code in an unopinionated way

Example Usage

For a richer example look at the example project which simulates the game surivivor at https://michaelgiba.github.io/survivor/static/plomp.html with the repo here https://github.com/michaelgiba/survivor

A simpler example below:

import plomp

@plomp.wrap_prompt_fn()
def prompt_llm(prompt: str) -> str:
    return "<EXAMPLE LLM RESPONSE>"

llm_response = prompt_llm("What's the weather today?")

for i in range(4):
    plomp.record_event(
        {
            "plomp_display_event_type": "weather_data_accessed",
            "plomp_display_text": f"accessed weather data from API: {i + 1}/10",
            "value": random.random(),
        },
        tags={"tool": "weather_api"},
    )

past_weather_events = plomp.buffer().filter(tags_filter={"tool": ["weather_api"]}).last(3)
past_weather_events.record(tags={"type": "recent_weather_queries"})

llm_response = prompt_llm(
    f"How has the temperature changed over the last three samples?: "
    + str(past_weather_events.to_dict())
)

plomp.write_html(plomp.buffer(), "progress.html")

This would produce a self-contained HTML page which looks like this:

Plomp UI Example

Structure

Plomp revolves around a centralized buffer which stores three different types of sequential records:

  1. "Events": Discrete events which happened that could useful future context for decision making
  2. "Queries": An expression which matches previous events based on user provided logic
  3. "Prompts": A record of a prompt to an LLM and the response recieved

Installation

pip install plomp

For development:

pip install plomp[dev]

Contributions

All contributions are welcome. There are a number of things that need to be added:

  1. Concurrency support
  2. More frontend features
  3. Better API documentation
  4. Optional live progress reloading instead of only static HTML files for realtime playback
    • anything else valuable

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

plomp-0.1.2.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

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

plomp-0.1.2-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file plomp-0.1.2.tar.gz.

File metadata

  • Download URL: plomp-0.1.2.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.13

File hashes

Hashes for plomp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b5d8034de0b062e3dfdab5099c61a84ff84dffe9785ccbff0d890f24454492cf
MD5 0fb4e379947e67bb8ded029a5d9d9722
BLAKE2b-256 545d4976b0d56947528314596ef970f275080cedb3820d31a7fbfffdd1d1cc78

See more details on using hashes here.

File details

Details for the file plomp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: plomp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 24.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.13

File hashes

Hashes for plomp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e344e9629820942da99a5b23850192e4bb4c1f5668ca990b689f745da9264fe5
MD5 0e1ab8d420d7a48c05b8785630ae10e6
BLAKE2b-256 7f6b78f0b2c0884e8c9d9ffa0348477645d52aff2a723e82847427b139a78030

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