Skip to main content

Validation for LLM prompts.

Project description

PyPrompt

Tests

Installation

pip install pyprompt

Usage

from pyprompt import *

prompt = PromptElement()

Properties

For pruning (removing text when you have more tokens than budgeted), the priority, pass_priority, and reserve fields are used.

  • priority: This determines the order that elements are pruned. The elements are pruned from the lowest priority to highest, and the default value is max priority.
  • pass_priority: Normally, priority is compared amongst sibling elements. If pass_priority is True, then that element's children are compared to its siblings. The default value is False.
  • reserve: This keyword, when set, reserves a specified number of tokens from the total budget of the prompt. It can be set as an int (e.g. 60, which would reserve 60 tokens) or a float (e.g. 1/3, which would reserve one-third of the total token budget). When pruning, this element can be pruned down to its reserve amount, but not past it. The default value is None.

For growing (adding more text when the budget allows it), the grow_ratio and grow_callback are used. For an element to grow into the unused budget, it must have a grow_callback.

  • grow_ratio: This determines what portion of the unused budget is given to this element. The portion of grow_ratio to the sum of all grow_ratios dictates how many tokens from the unused budget are allocated to this element. For example, if three elements have grow_ratios of 1, 2, and 3 and the unused token budget is 60 tokens, then they will get 10, 20, and 30 tokens to grow, respectively. The grow_ratio can be an int or float, and the default value is 1.
  • grow_callback: This is a function that creates a new TokenMap for a PromptElement that uses up more of the budget, if possible. The function's signature is as follows:
    • Inputs:
      • PromptElement: The element to grow.
      • encoding_func: The function to encode strings to tokens.
      • decoding_func: The function to decode tokens to strings.
      • Any | None: The state of the function (None the first time the function is called, then the output of the previous call).
    • Outputs:
      • TokenMap | None: The TokenMap of the PromptElement after growing, or None if it cannot grow anymore.
      • Any | None: The state of the function, used in the next grow call.
  • It is ill-advised to have elements with grow_callback as descendants of another element with grow_callback. grow_callback should only be set on leaf nodes.

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

pyprompt-0.3.5.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

pyprompt-0.3.5-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file pyprompt-0.3.5.tar.gz.

File metadata

  • Download URL: pyprompt-0.3.5.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for pyprompt-0.3.5.tar.gz
Algorithm Hash digest
SHA256 2df2d59f7a45dad5769e4d091e823020297d94d4d237a120d2a48b4b8185a3ed
MD5 ebe18123cbf4c954367571db9342d75b
BLAKE2b-256 72d093a8a87cdd4a0207157722b7f921b9d53bb62a0a4a04f3ea6abf9f56aff5

See more details on using hashes here.

File details

Details for the file pyprompt-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: pyprompt-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for pyprompt-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 7de583dcdc1437ccf545a9d2e58628a2e8f54d6b1d3f598f7246a3f89a9088eb
MD5 7e88c9d3dc24d59e96de8c06b05bd95d
BLAKE2b-256 186a7069548029d098ebd664f3c55e40f8c21dced6a5b847f8c5e9e685d2d793

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