A Python library for managing Riley AI personas
Project description
Rilerary 🤖
A Python library for managing Riley AI personas - a collection of specialized AI assistant personalities.
Features
- 🎭 Multiple Personas: Chef, Teacher, Finance, Tech, Motivation, Sustainability, Knowledge, and more
- 📦 Easy to Use: Simple API for loading and working with personas
- 🔧 Flexible: Use built-in personas or add your own
- 📝 Well-Structured: JSON-based persona definitions with rich metadata
Installation
pip install rilerary
Or install from source:
git clone https://github.com/NamaiBest/rilerary.git
cd rilerary
pip install -e .
Quick Start
from rilerary import load_persona, get_available_personas
# Get list of available personas
personas = get_available_personas()
print(f"Available personas: {personas}")
# Load a specific persona
chef = load_persona("chef_rile")
print(f"Persona: {chef['persona_name']}")
print(f"Description: {chef['description']}")
print(f"Specialties: {chef['specialties']}")
# Use the prompt template in your AI system
system_prompt = chef['prompt_template']
Available Personas
- 👨🍳 Chef Rile: Cooking, recipes, nutrition, and food safety
- 👨🏫 Teacher Rile: Education, learning strategies, and academic support
- 💰 Finance Rile: Personal finance, investing, and money management
- 💻 Tech Rile: Technology, programming, and software development
- 💪 Motivation Rile: Personal development and motivation
- 🌱 Sustainability Rile: Environmental awareness and sustainable living
- 📚 Knowledge Rile: General knowledge and research
- 👁️ Locket Visual Assistant: Quick visual analysis for locket mode
Advanced Usage
Using PersonaLoader Class
from rilerary import PersonaLoader
# Create loader instance
loader = PersonaLoader()
# Get all personas at once
all_personas = loader.get_all()
# Get basic info without loading full data
info = loader.get_persona_info("tech_rile")
print(f"{info['emoji']} {info['name']}: {info['description']}")
Building System Prompts
from rilerary import load_persona
from rilerary.utils import build_system_prompt
persona = load_persona("motivation_rile")
# Build complete system prompt with additional context
system_prompt = build_system_prompt(
persona,
additional_context="Focus on helping with morning routines."
)
Using Custom Persona Directory
from rilerary import PersonaLoader
# Load from custom directory
loader = PersonaLoader(custom_persona_dir="/path/to/your/personas")
custom_persona = loader.load("my_custom_persona")
Persona Structure
Each persona is defined in a JSON file with the following structure:
{
"persona_name": "Chef Rile",
"description": "Expert cooking assistant",
"tone": "Enthusiastic and knowledgeable",
"greeting": "Ready to cook!",
"emoji": "👨🍳",
"specialties": ["Cooking", "Recipes", "Nutrition"],
"prompt_template": "System instructions...",
"response_style": "Be friendly and practical...",
"rubric": {
"core_principles": {},
"response_guidelines": {}
}
}
Creating Custom Personas
- Create a JSON file with your persona definition
- Place it in a directory
- Load it using
PersonaLoaderwith custom directory
from rilerary import PersonaLoader
loader = PersonaLoader(custom_persona_dir="./my_personas")
my_persona = loader.load("my_persona_name")
API Reference
Functions
load_persona(persona_name: str)- Load a persona by nameget_available_personas()- Get list of all available personasget_persona_info(persona_name: str)- Get basic persona information
Classes
PersonaLoader- Main class for persona managementload(persona_name)- Load a personaget_available()- List available personasget_all()- Load all personasget_persona_info(persona_name)- Get basic info
Utility Functions
build_system_prompt(persona_data, additional_context)- Build complete system promptget_prompt_template(persona_data)- Extract prompt templateget_specialties(persona_data)- Get persona specialtiesvalidate_persona(persona_data)- Validate persona structure
License
MIT License - see LICENSE file for details
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rilerary-0.2.0.tar.gz.
File metadata
- Download URL: rilerary-0.2.0.tar.gz
- Upload date:
- Size: 28.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36fd3519a627830976aed0e90f3eeec6a927e5055d78d8f25453cafb1a5550de
|
|
| MD5 |
937a9dd399799f82906341748e79ca23
|
|
| BLAKE2b-256 |
73a019bac9bf655f6f5f44a54b93308448ec5512db3c4522f6c59d66d8cdc994
|
File details
Details for the file rilerary-0.2.0-py3-none-any.whl.
File metadata
- Download URL: rilerary-0.2.0-py3-none-any.whl
- Upload date:
- Size: 33.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13b6b84bfa2f281cefa04daf320f14a9fc0346e2af6f21bba135311cb0d43dc7
|
|
| MD5 |
8ae2000f60e6dfcad50b460fb80fa5eb
|
|
| BLAKE2b-256 |
1e70841f5413f69dd86ec413694d59b60b79f12a57c3cf2d3c36fabc4cbb3bc5
|