Skip to main content

Create LLM pipelines with ease!

Project description

J2pipeline

Installation

Create Python 3.12 virtual environment, activate it and run

pip install j2pipeline

Setup

J2pipeline requires an active TCP server listening on port 50027

Server:

  • Receives a prompt
  • Sends back AI response

Protocol:

  1. 16 bytes header (message length)
  2. Message (in UTF-8)

For example:

data: bytes = message.encode(encoding='UTF-8')
size: bytes = f'{len(data):16}'.encode(encoding='UTF-8')
server.send(size)
server.send(data)

Usage

Prompt

Prompt creates a function based on a single template file

Params

  • path: path to a template file
  • process: function that modifies LLM output
  • auto_upper: makes sure all arguments passed in the template are in upper case

Example

Suppose we have a translate.j2 file

Translate the following text into {% LANGUAGE %}:

{% TEXT %}

From this template we can than create translate function

from j2pipeline import Prompt

translate: Prompt[str] = Prompt[str](path='translate.j2')

text: str = 'Quelle heure est-il?'
translation: str = translate(language='English', text=text)
print(translation)

In the output we shall see

What time is it?

Pipeline

Pipeline creates a function based on a sequence of templates

Params

  • base_path: path to a folder with templates
  • reorder: function that takes a list of files and returns reordered one
  • process: a dict where keys are template names and values are respective modifiers
  • final_process: function that processes the final result
  • extension: common extension of the template files

Example

Suppose we have two template files in yoderize folder

  • yoda.j2:
You are Yoda from Star Wars, so you must speak like him
Rewrite this text in style of Yoda

{% PROMPT %}
  • translate.j2:
Translate the following text into German preserving the style of Yoda:

{% PROMPT %}

Your response must only contain the translation

From this template we can than create yoderize function

from j2pipeline import Pipeline

yoderize: Pipeline[str] = Pipeline[str](base_path='yoderize',
                                        reorder=lambda _: ['yoda', 'translate'],
                                        final_process=lambda text: f'German Yoda:\n{text}')
yoderized: str = yoderize(prompt='I give you an advice: you should be wise')
print(yoderized)

In the end we shall see

German Yoda:
Weise, sein solltest du. Rat, gebe ich dir.

License

J2pipeline is a free, open-source software distributed under the MIT License

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

j2pipeline-0.3.1.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

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

j2pipeline-0.3.1-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: j2pipeline-0.3.1.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for j2pipeline-0.3.1.tar.gz
Algorithm Hash digest
SHA256 d6887d3eb11f2d41e0de6c32d1bdadc88af46b77b6fb7276097117ca61578c72
MD5 906716e2b5938c9e4d86c25f6ad71c48
BLAKE2b-256 10489bee114f2b80fcbca349816aa04f5ccb694e42c88092c9ab3883f82c4178

See more details on using hashes here.

File details

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

File metadata

  • Download URL: j2pipeline-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for j2pipeline-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e4b279f8c855db8791a9d9d807ff84a8557f04f99f714cd336b453df2c35fefc
MD5 4269f56dd28a14b5de79c5f02b68e37b
BLAKE2b-256 fc59c8d81ceaacaf540223ec2c9524e3341c27e83c3434f4a60b1ceb9812e92a

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