PromptWeaver streamlines prompt development and management in Generative AI workflows
Project description
PromptWeaver is a Python library that streamlines prompt development and management in Generative AI workflows. It decouples prompts from Python scripts, enhancing portability, maintainability, and scalability for developers working with multiple LLMs or complex prompting workflows.
This project is currently under active development and may undergo significant changes. We welcome your feedback and contributions!
Features
- Separate prompts from code for better modularity.
- Supports multimodal input (text, images, audio, video).
- Integration with large language models such as Gemini.
- YAML-based prompt configuration with sample and default values.
- Extensible to support other LLM APIs.
Installation
PromptWeaver can be easily installed using pip:
pip install promptweaver
Note: PromptWeaver requires Python 3.8 or higher.
Usage
First, you need to start by creating a .yml.j2
promptweaver template.
You will find template examples in our promptweaver gallery.
name: Hello World
description: A quickstart prompt showcasing how to answer a simple user message using gemini.
model:
model_name: gemini-1.5-flash-001
generation_config:
temperature: 0.3
max_output_tokens: 250
system_instruction: You are an AI model trained to answer questions. Be kind and objective in your answers.
# ---
variables:
user_message:
sample: Hi!
# ---
user:
- text: {{ user_message }}
Now you can call one of the supported LLM clients using the promptweaver template.
from promptweaver.core.prompt_template import PromptConfig
from promptweaver.clients.gemini.gemini_client import GeminiClient
# Initialize the Gemini client
gemini_client = GeminiClient(project="project_id", location="project_location")
# Load the prompt configuration
example_prompt = PromptConfig.from_file_with_sample_values("samples/example.yml.j2")
# Generate content
generate_content = gemini_client.generate_content(example_prompt)
print(generate_content.text)
Contributing
We welcome contributions! Please read our contributing guide for details on how to get started. The project can be found on GitHub.
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
Built Distribution
File details
Details for the file promptweaver-0.1.15.tar.gz
.
File metadata
- Download URL: promptweaver-0.1.15.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.19.3 CPython/3.10.12 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df3f80887358c0eaa00bb06c1e96c4a49cb922947ac34309037e8aab87722eb2 |
|
MD5 | d1fc3452651459fad0672e6ceaa098f4 |
|
BLAKE2b-256 | e863dd71d36b83361e424fdea945a980f813a6c417a407f24a9709fc3d840539 |
File details
Details for the file promptweaver-0.1.15-py3-none-any.whl
.
File metadata
- Download URL: promptweaver-0.1.15-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.19.3 CPython/3.10.12 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66d4b409265a7d38c1f2ae8f2569b7a2ffe1fc35f5bbb2687d0a03137de17d26 |
|
MD5 | 7102754973019be2adaddac2f934d7d0 |
|
BLAKE2b-256 | 0a16198acd128e9048ff0701117f17fc2cacee0b9137ba43401208ca9e200da0 |