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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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