PAGANS - Prompt Optimization Framework
PAGANS (Prompts Aligned to Guidelines and Normalization System) is a prompt optimization framework for LLM applications. It adapts prompts to the target model family automatically so the same prompt can perform better across OpenAI, Anthropic, Google, and xAI model series.
Features
- Fast prompt optimization for production workflows
- Family-aware optimization for OpenAI, Anthropic, Google, and xAI models
- Automatic model-family detection from short and provider-prefixed names
- Async-first API for single, compare, and batch operations
- Built-in caching to reduce repeated optimization cost
- CLI support for optimize, compare, and batch workflows
- Optimizer provider support for OpenRouter, OpenAI, Google AI Studio, Anthropic, and Z.ai
Installation
pip install pagans
Quick Start
import asyncio
from pagans import PAGANSOptimizer, Provider
async def main() -> None:
async with PAGANSOptimizer(provider=Provider.OPENROUTER) as optimizer:
result = await optimizer.optimize(
prompt="Write a robust retry policy for external API calls.",
target_model="openai/gpt-4o",
)
print(result.optimized)
asyncio.run(main())
Provider Configuration
Set one provider key (or pass api_key and base_url explicitly).
# OpenRouter
export OPENROUTER_API_KEY="your-openrouter-api-key"
export OPENROUTER_BASE_URL="https://openrouter.ai/api/v1"
# OpenAI
export OPENAI_API_KEY="your-openai-api-key"
export OPENAI_BASE_URL="https://api.openai.com/v1"
# Google AI Studio (Gemini OpenAI-compatible endpoint)
export GOOGLE_API_KEY="your-gemini-api-key"
export GOOGLE_BASE_URL="https://generativelanguage.googleapis.com/v1beta/openai"
# Anthropic
export ANTHROPIC_API_KEY="your-anthropic-api-key"
export ANTHROPIC_BASE_URL="https://api.anthropic.com/v1"
# Z.ai
export ZAI_API_KEY="your-zai-api-key"
export ZAI_BASE_URL="https://api.z.ai/api/paas/v4"
# Optional global override for optimizer model
export PAGANS_OPTIMIZER_MODEL="openai/gpt-4o-mini"
Python Provider Examples
from pagans import PAGANSOptimizer, Provider
# OpenAI as optimizer provider
optimizer = PAGANSOptimizer(provider=Provider.OPENAI)
# Google AI Studio as optimizer provider
optimizer = PAGANSOptimizer(provider=Provider.GOOGLE)
# Anthropic as optimizer provider
optimizer = PAGANSOptimizer(provider=Provider.ANTHROPIC)
# Z.ai as optimizer provider
optimizer = PAGANSOptimizer(provider=Provider.ZAI)
CLI
PAGANS installs a CLI as pagans.
pagans --provider openrouter optimize \
--prompt "Explain quantum computing for beginners" \
--target-model gpt-4o
pagans --provider openai compare \
--prompt "Design an event-driven order system" \
--models "gpt-4o,claude-sonnet-4,gemini-2.5-pro"
pagans --provider anthropic batch \
--prompts-file ./prompts.txt \
--target-model gemini-2.5-pro
Model Family Series
PAGANS optimizes prompts for these model families and series:
- OpenAI GPT series
- Anthropic Claude series
- Google Gemini series
- xAI Grok series
PAGANS detects the target model family and applies the matching optimization strategy automatically.
Notebooks
Provider notebook examples are available in notebooks/:
pagans_quickstart.ipynbpagans_openrouter_optimizer.ipynbpagans_openai_optimizer.ipynbpagans_google_optimizer.ipynbpagans_anthropic_optimizer.ipynbpagans_zai_optimizer.ipynb
Links
- Source: https://github.com/abubakarsiddik31/pagans
- Issues: https://github.com/abubakarsiddik31/pagans/issues
License
MIT
Metadata
Release files for pagans 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pagans-0.1.4.tar.gz | 339.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pagans-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 386.9 kB
Release files / pagans-0.1.4.tar.gz
| Download URL | pagans-0.1.4.tar.gz |
|---|---|
| Size | 339.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
025deeeadb8b9f1d17eb96a0c60be00763cd63bbef5e3e709ca438367176ece9
|
|
BLAKE2b-256 checksum How to use checksums |
27df8a7916268fd4dbfc51f2086782d5308a95f179daa96a2d4b6f3e1c6e875e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / pagans-0.1.4-py3-none-any.whl
| Download URL | pagans-0.1.4-py3-none-any.whl |
|---|---|
| Size | 47.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8472726345b811769ae06bf770f2e9636e2ca1117cbdfc41e8a5ac3fa4979b36
|
|
BLAKE2b-256 checksum How to use checksums |
0370a44eadd3789624fa4b289ea5960ac5c220c6d4f474a09c5f2caf38379458
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for pagans 0.1.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.