Skip to main content

Promptrix. A prompt layout manager for LLMs

Project description

promptrix-py

Promptrix is a prompt layout engine for Large Language Models.

Here is a first trivial example:

from promptrix import promptrixTypes, VolatileMemory, FunctionRegistry, GPT3Tokenizer
from promptrix.Prompt import Prompt
from promptrix.SystemMessage import SystemMessage
from promptrix.UserMessage import UserMessage
from promptrix.AssistantMessage import AssistantMessage
from promptrix.ConversationHistory import ConversationHistory

functions = FunctionRegistry()
tokenizer = GPT3Tokenizer()
memory = VolatileMemory({'input':'', 'history':[]})
max_tokens = 2000

prompt_text = 'You are helpful, creative, clever, and very friendly. '
PROMPT = Prompt([
    UserMessage(prompt_text),
    ConversationHistory('history', .5),    # allow history to use up 1/2 the remaining token budget left after the prompt and input 
    UserMessage('{{$input}}')
])

async def render_messages_completion():
    as_msgs = await PROMPT.renderAsMessages(memory, functions, tokenizer, max_tokens)
    msgs = []
    if not as_msgs.tooLong:
        msgs = as_msgs.output
    return msgs

### basic chat loop
while True:
    memory.set('input', query)
    msgs = asyncio.run(render_messages_completion())
    response = ... your favorite llm api (model, msgs, ...)
    print(response)
    history = memory.get('history')
    history.append({'role':USER_PREFIX, 'content': query})
    history.append({'role': ASSISTANT_PREFIX, 'content': response})
    memory.set('history', history)

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

promptrix-0.3.1.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

promptrix-0.3.1-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file promptrix-0.3.1.tar.gz.

File metadata

  • Download URL: promptrix-0.3.1.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for promptrix-0.3.1.tar.gz
Algorithm Hash digest
SHA256 e515b5e10e17c2d11bb5f9a2775107214428f7ca827e2fc9b085228a5edaf6cf
MD5 d84c79964bdd02b389e66c6e07941e14
BLAKE2b-256 21759c7f9637eb6a8054a2f6c46f68fb4c087db59f895a1ce03036cc98d4d23f

See more details on using hashes here.

File details

Details for the file promptrix-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: promptrix-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for promptrix-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 013b1502570140f3f300336537947881c7625357fceb9a025c6effea4ed43b82
MD5 fa4244ea7c175cc1d188c124f844600f
BLAKE2b-256 2137f5544e026d288e6c14917eafc7dcbce08a0a88ef776d61e1133002ca839e

See more details on using hashes here.

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