PAL Framework
Getting Started
Quick Start Guide
Installation
Your First PAL Prompt
Using the Prompt
Executing with an LLM
Using Component Libraries
CLI Usage
Next Steps
User Guide
Writing PAL Prompts
Basic Structure
Variables
Variable Types
Variable Definition
Templating with Jinja2
Basic Variable Substitution
Conditionals
Loops
Filters
Using Component Libraries
Importing Libraries
Using Components
Best Practices
1. Use Descriptive IDs
2. Version Your Prompts
3. Provide Clear Descriptions
4. Organize with Composition
5. Use Metadata
Advanced Patterns
Multi-line Content
Dynamic Component Selection
Nested Templates
Testing Your Prompts
Component Libraries
Creating a Library
Component Types
Example Libraries
Personas Library
Output Formats Library
Reasoning Strategies Library
Using Libraries in Prompts
Basic Import and Usage
Multiple Library Imports
Remote Library Import
Library Organization
Recommended Structure
Version Management
Best Practices
1. Single Responsibility
2. Descriptive Names
3. Documentation
4. Modularity
Testing Libraries
Sharing Libraries
API Reference
Compiler API
PromptCompiler
Example Usage
Internal Classes
ComponentTemplateLoader
Executor API
PromptExecutor
LLM Clients
MockLLMClient
OpenAIClient
AnthropicClient
Protocols
LLMClient
BaseLLMClient
Examples
Loader API
Loader
Supported File Types
Loading Methods
Examples
Error Handling
Data Models
Core Models
PromptAssembly
ComponentLibrary
EvaluationSuite
ExecutionResult
Component Models
PALComponent
PALVariable
Enums
ComponentType
VariableType
Examples
Exceptions
Base Exception
PALError
Specific Exceptions
PALValidationError
PALLoadError
PALCompilerError
PALExecutorError
PALResolverError
PALMissingVariableError
PALMissingComponentError
PALCircularDependencyError
Exception Handling Examples
PAL Framework
Index
Index