Welcome to Banks
Banks is the linguist professor who will help you generate meaningful LLM prompts using a template language that makes sense.
Prompts are instrumental for the success of any LLM application, and Banks focuses around specific areas of their lifecycle:
- Templating: Banks provides tools and functions to build prompts text and chat messages from generic blueprints.
- Versioning and metadata: Banks supports attaching metadata to prompts to ease their management, and versioning is first-class citizen.
- Management: Banks provides ways to store prompts on disk along with their metadata.
Banks is fundamentally Jinja2 with additional functionalities specifically designed to work with Large Language Models prompts. Similar to other template languages, Banks takes in input a generic piece of text called template and gives you back its rendered version, where the generic bits are replaced by actual data provided by the user and returned in a form that's suitable for sending to an LLM, like plain text or chat messages.
Features
Banks currently supports all the features from Jinja2 along with some additions specifically designed to help developers with LLM prompts:
- Filters: useful to manipulate the prompt text during template rendering.
- Extensions: useful to support custom functions (e.g. text generation via LiteLLM).
- Macros: useful to implement complex logic in the template itself instead of Python code.
The library comes with its own set of features:
- Template registry: storage API for versioned prompts.
- Configuration: useful to integrate the library with existing applications.
Installation
Install the latest version of Banks using pip
:
Some functionalities require additional dependencies that need to be installed manually:
pip install simplemma
is required by thelemmatize
filter
Examples
If you like to jump straight to the code:
- See a showcase of basic examples here.
- Check out the Cookbook:
- In-prompt chat completion
- Prompt caching with Anthropic
- Prompt versioning
License
banks
is distributed under the terms of the MIT license.